Şu anda 512M gerçek / 1024M burstable RAM (takas yok) ile bir OpenVZ VPS ile mpm-prefork
ve mod_php
üzerinde çalışan bir Apache2 sunucum var . Bazı testleri yaptıktan sonra, Apache'nin aldığı maksimum işlem boyutunun 23M olduğunu buldum, bu yüzden MaxClients
25'e ayarladım (23M x 25 = 575 MB, benim için tamam). Sunucumda bazı yük testleri yapmaya karar verdim ve sonuçlar beni şaşırttı.
Ben kullanıyorum ab
bir wordpress blogdan ana sayfayı isteyen masaüstü makinede.
Ben çalıştırdığınızda ab
24 eşzamanlı bağlantı ile, her şey yolunda görünüyor. Tabii, CPU artar, boş RAM düşer ve sonuç istek başına yaklaşık 2-3 saniye tepki süresidir.
Ancak ab
25 eşzamanlı bağlantıyla (sunucu sınırım) çalışırsam , Apache birkaç saniye sonra takılır. İstekleri işlemeye başlar, ardından yanıt vermeyi durdurur, CPU% 100 boşta kalır ve ab
zaman aşımına uğrar . Apache günlüğüne ulaşıldığını söylüyor MaxClients
.
Bu olduğunda, Apache 25 çalışan işlemle kilitli kalmaya devam eder (sunucu durumunu kontrol edersem hepsi "W" 'dadır) ve ancak TimeOut
ayarlardan sonra süreçler ölmeye başlar ve sunucu tekrar yanıt vermeye başlar (benim durumumda ayarlanır) 45).
Benim sorum: beklenen davranış bu mu? Apache neden ulaştığında neden ölüyor MaxClients
? 24 bağlantı ile çalışıyorsa, 25 ile çalışmamalı, her bir talebi yanıtlamak ve geri kalanları kuyruğa almak için daha fazla zaman ayırabilir mi?
Çalışan herhangi bir çocuğun ab
sadece sunuculara eşzamanlı bağlantıları ayarlayarak bir web sunucusunu öldürebileceği garip geliyor MaxClients
.