[]
Mühendis sorusu Özellikle Bilg.Müh
Şimdi bir web serverimiz var ve sık isteenn sayfalar cache'den nadir istenenler Harddiskten geliyor diyelim.
Eğer cacheden olursa 3ms, hdd'den gelirse ek 15ms zaman gerekiyor diyelim yanıt verme sürecinde. Tabii bu esnalarda I/O işlemi olduğu için prosessesler duruyor.
Şimdi diyoruzki bu olay böyle olmaz, thread kullanalım diyoruz.Threadın görevi istenen sayfa cachedenmi yoksa hddden mi ona bakacak, cachede yoksa hddden alacak ama bu esnada process'leri durduruyor transfer bitene kadar haliyle.
Bu Thread bloke olur olmaz, diğer thread bir sonraki sorgu ile ilgileniyor.
Şimdik biz kabul ediyoruzki kuyrukta birçok sorgu var ve işimizi kolaylaştırmak açısından thread geçişlerinde zaman kaybı olmadığını, haldırt diye geçtiğini kabul ediyoruz.
Bu Web server saniyede en fazla kaç tane sorguya
1.) Thread kullanılmayacaksa
2.) Birden fazla thread kullanacaksa
cevap verebilir.
Eğer cacheden olursa 3ms, hdd'den gelirse ek 15ms zaman gerekiyor diyelim yanıt verme sürecinde. Tabii bu esnalarda I/O işlemi olduğu için prosessesler duruyor.
Şimdi diyoruzki bu olay böyle olmaz, thread kullanalım diyoruz.Threadın görevi istenen sayfa cachedenmi yoksa hddden mi ona bakacak, cachede yoksa hddden alacak ama bu esnada process'leri durduruyor transfer bitene kadar haliyle.
Bu Thread bloke olur olmaz, diğer thread bir sonraki sorgu ile ilgileniyor.
Şimdik biz kabul ediyoruzki kuyrukta birçok sorgu var ve işimizi kolaylaştırmak açısından thread geçişlerinde zaman kaybı olmadığını, haldırt diye geçtiğini kabul ediyoruz.
Bu Web server saniyede en fazla kaç tane sorguya
1.) Thread kullanılmayacaksa
2.) Birden fazla thread kullanacaksa
cevap verebilir.
1) Threadsiz olacaksa demek ki her sorguya sirayla bakacak. ne oranda sorgularin cache ve hard diskten geldigini soylemediginiz icin ortalama 9 ms/sorgu alirsak (1000/9) = 111 sorguya cevap verebilir.
2) Burasi biraz karisik. processlerin bloklanma suresine bagli fazlasiyla. 15ms nin 12msi harddiskten cekmekle geciyorsa o zaman bottleneck 12msdir. Sunucu 3msde bir yeni sorguya bakabilir(gerci harddisk blogunun ne zaman araya girdigine bagli) ama bu sefer harddiskteki sira uzar gider. dolayisiyla 1000/12 adet sorguya bakabilir. Tabi hard diskin ayni anda birden fazla sorguya bakamadigini varsayarsak. Cache durumunu ele alamadim bile su an :).
2) Burasi biraz karisik. processlerin bloklanma suresine bagli fazlasiyla. 15ms nin 12msi harddiskten cekmekle geciyorsa o zaman bottleneck 12msdir. Sunucu 3msde bir yeni sorguya bakabilir(gerci harddisk blogunun ne zaman araya girdigine bagli) ama bu sefer harddiskteki sira uzar gider. dolayisiyla 1000/12 adet sorguya bakabilir. Tabi hard diskin ayni anda birden fazla sorguya bakamadigini varsayarsak. Cache durumunu ele alamadim bile su an :).
- natnan (08.05.12 16:34:46)
Soru ilk bakışta ne kadar kolay deyip sonra hafiften bir yamultuyor. Burda elemanın biri şöyle demiş ki diğerlerine de mantıklı gelmiş ama yine de ben anlamadım net olarak.
"Yeni istekleri kabul etmez ve gelen istekleri kalıcı bir şekilde sıraya atan bir senaryo düşünelim; cevap 2/3 3 ms ve 1/3. Bu yüzden, sadece verim Saniyede 2/3 * 1000/3 ile sınırlı. çoklu yada tekli thread modundayken
verimlilik 0 olur gibi birşey" demiş.
"Yeni istekleri kabul etmez ve gelen istekleri kalıcı bir şekilde sıraya atan bir senaryo düşünelim; cevap 2/3 3 ms ve 1/3. Bu yüzden, sadece verim Saniyede 2/3 * 1000/3 ile sınırlı. çoklu yada tekli thread modundayken
verimlilik 0 olur gibi birşey" demiş.
- beholderrulez (08.05.12 16:52:03)
asdajfsfkd ben de anlamadim. direk cevap vermis ama bir mantiga dayandirmamis ki. 2/3 3ms ne ki hem?
- natnan (08.05.12 17:43:25)
@natnan,
Bilmiyorum işte.
Sizin ilk soru mantıken doğru ama ikinci konusunda kararsız kaldım. Özellikle yazdığım cevap mesajı sebebi ile.
Bilmiyorum işte.
Sizin ilk soru mantıken doğru ama ikinci konusunda kararsız kaldım. Özellikle yazdığım cevap mesajı sebebi ile.
- beholderrulez (08.05.12 17:50:03)
1