Apache prefork optimizasyonu - Doğru `MaxRequestsPerChild` değerini seçme


9

Mümkün olduğunca fazla bağlantıyı işlemek için web sunucularımızı optimize etmeye çalışıyorum. Birçok yazı ve Apache notlarını okudum. Hangi değeri seçmem gerektiğini anlamaya çalışıyorum MaxRequestsPerChild.

İlk başta, bunu 4.000'e ayarlamayı denedim, ancak sunucu birçok isteği ele almada zorluk çekti, bu yüzden onu yükseltmeye başladım. Şu anda benim ayarım:

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  40000
</IfModule>

MaxRequestsPerChild40.000 olarak ayarlandıktan sonra sunucu, daha fazla bellek / işlemci kullanmadan daha fazla bağlantıyı yönetmeyi başardı.

Birisi bana bu değerin çok yüksek olup olmadığını veya yüksek bir değere sahip olup olmadığını söyleyebilir mi?

Teşekkürler!

İşletim Sistemi bilgisi:

[root@web06 ~]# uname -a
Linux web 2.6.18-164.el5PAE #1 SMP Thu Sep 3 04:10:44 EDT 2009 i686 i686 i386 GNU/Linux
[root@web06 ~]# free
             total       used       free     shared    buffers     cached
Mem:       3814660    3502968     311692          0     144368    2970468
-/+ buffers/cache:     388132    3426528
Swap:      5210104          0    5210104

Yanıtlar:


10

MaxRequestsPerChilddinamik komut dosyaları çalıştırırken zaman içinde bellek sızıntısı miktarını sınırlamak için gerçekten yararlıdır. Yalnızca statik içerik veya çok küçük / basit komut dosyaları sunuyorsanız, büyük olasılıkla 0 veya çok yüksek olarak ayarlayabilirsiniz. Daha büyük / karmaşık komut dosyaları çalıştırıyorsanız, 0 / yüksek olarak ayarlanması Apache işlemlerinizin daha fazla bellek tüketmesine neden olur. Tam olarak ne kadar çok özel uygulama bağlıdır.

Diğer taraftan, çok düşük ayarlanması, Apache süreçleri sürekli olarak yeniden başlatıldığından biraz daha fazla CPU kullanımına neden olabilir.

İşlemlerinizin ne kadar bellek kullanabileceğini görmek için basit bir test yapardım. MaxRequestsPerChild0 olarak ayarlayın ve Apache'yi yeniden başlatın. Birkaç sayfayı test edin ve Apache işlemlerinin başlangıç ​​boyutunun ne kullandığını görün top. Birkaç saat / gün / hafta sonra tekrar kontrol edin (uygulamanıza ve sayfa görünümlerinize bağlı olarak) ve nasıl büyüdüğünü görün. Çok fazla büyümezse, 0 veya çok büyük bir değer MaxRequestsPerChildiyi olmalıdır.

Apache işlemleriniz için belirlenmiş bir maksimum boyutunuz varsa (yani, 50 MB veya daha az olmasını istiyorsanız) MaxRequestsPerChild, Apache'yi bundan daha düşük tutan bir değer bulana kadar aynı testi çeşitli değerlerle yapabilirsiniz .


1
Windows Server'ı kullanarak sayfaları nasıl yükleyebilir ve Apache işlemlerinin boyutunu nasıl görebilirim?
Ahmad Alfy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.