Şu anda 512M gerçek / 1024M burstable RAM (takas yok) ile bir OpenVZ VPS ile mpm-preforkve 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 MaxClients25'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 abbir wordpress blogdan ana sayfayı isteyen masaüstü makinede.
Ben çalıştırdığınızda ab24 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 ab25 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 abzaman 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 TimeOutayarlardan 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 absadece sunuculara eşzamanlı bağlantıları ayarlayarak bir web sunucusunu öldürebileceği garip geliyor MaxClients.