[Linux-programlama] Re: Web Browser'ların domain başına 2 request limiti

---------

[Linux-programlama] Re: Web Browser'ların domain başına 2 request limiti

From: Necmettin Begiter <necmettin.begiter_at_gmail.com>
Date: Tue, 8 Apr 2008 01:33:33 +0300
Message-ID: <3787dfa80804071533x1cdb0aa6v13d55e3e02e6b068@mail.gmail.com>

07.04.2008 tarihinde Azer Koculu <azer_at_kodfabrik.com> yazmýþ:
> Verdiðin bilgiler için teþekkür ederim.Peki gmail bu problemi aþmýþ
> olabilir? Ýlk mesajýmda bundan biraz sözetmiþtim.

Verdiðim [1] adreste de söylendiði üzere, HTTP/1.1 kullandýðýnýzda,
iki sistem arasýndaki tek bir TCP baðlantýsýnda istediðiniz sayýda
istek gönderebilirsiniz. Ýsteklerin gönderilmesi ile cevaplarýn
alýnmasý arasýnda baþka istek veya cevaplar olabilir, istek
gönderildikten sonra cevap gelene kadar baþka istekler gönderilebilir
veya baþka isteklerin cevaplarý alýnabilir. Kalýcý baðlantý
(persistent connection) zaten bu iþe yarýyor. Ýki sistem arasýnda
kalýcý bir baðlantý kurulduðunda, isterseniz arka arkaya 100 istek
gönderin, sonra 15 nci isteðin, 22 nci isteðin, 1 nci isteðin
cevaplarýný, sonra da diðerlerini alýn, birþey farketmiyor.

Sunucu tarafýnda KeepAliveTimeout deðerini yüksek tutarsanýz, gelen
istekler arasýndaki süre baðlantýnýn kesilmesini engeller, böylece,
iki sistem arasýndaki TCP baðlantýsý açýk kalacaðý için, iki istek ile
sýnýrlý kalmazsýnýz. Ancak bu yöntemin kötü tarafý, siteye gelen
istekler uzun süre Apache'nin iþçilerini (worker thread) meþgul
edeceðinden, Apache'nin MaxClients deðeri 100 ise, iþçilerden biri
boþalana kadar 101 nci isteðe cevap veremeyecek olmanýz. Bu iþçilerin
her biri hafýzadan biraz aldýðý için de, iþçilerin sayýsýný çok fazla
arttýramazsýnýz. KeepAliveTimeout deðerini düþük tutmak bu açýdan daha
mantýklýdýr, eðer iki sistem arasýndaki bant geniþliði yüksek ise
(sunucunun internet "çýkýþ"ýnýn gönderme (upload) hýzý yüksekse).

Ayrýca [2] adresini de incelemek isteyebilirsiniz.

HTTP/1.1 belirtiminin tam metnine de [3] adresinde ulaþabilirsiniz.

"Apache KeepAlive nedir, ne iþe yarar, nerede kullanýlýr?" sorusunun
cevabý [4] baðlantýsýnda; biraz daha detaylý bir anlatýmý [5]
baðlantýsýnda.

[2] http://www.research.att.com/~bala/papers/h0vh1.html
[3] http://www.faqs.org/rfcs/rfc2616.html
[4] http://httpd.apache.org/docs/1.3/keepalive.html
[5] http://virtualthreads.blogspot.com/2006/01/tuning-apache-part-1.html

Özetle, sunucuya ayný anda kaç istemcinin baðlandýðý, istemcilerden
gelen istekler arasýndaki ortalama süre gibi deðerlere bakýlarak
verilmesi gereken bir karar. Ayný anda sisteme baðlý olan istemci
sayýsý yüksekse, KeepAliveTimeout deðeri düþük tutulmalýdýr bence,
çünkü aksi taktirde iþçiler boþ kalmaz, bazý isteklere cevap
veremezsiniz. Ayný anda sisteme baðlý olan istemci sayýsý düþükse, bu
istemcilerin kalýcý baðlantýlarýný koruyarak istedikleri sayýda
pencere açabilmeleri için KeepAliveTimeout deðeri yüksek tutulabilir.

Uygulamanýzýn tam olarak ne uygulamasý olduðunu, ve ortalama anlýk
kullanýcý sayýsý ve kullanýcýlardan dakikada gelen ortalama istek
sayýsýný ve giden cevaplarýn tahmini uzunluðunu belirtirseniz size
(yukarýda saydýklarýna dayanarak) bir rakam verebilirim.

Necmettin
_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Tue 08 Apr 2008 - 00:48:50 EEST

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.