Apache 2.2 mpm_worker: daha fazla iş parçacığı veya daha fazla işlem?


17

Apache'de Çalışan MPM'yi kullanırken, alt işlemlerin sayısı ve alt işlem başına sunucu iş parçacığı sayısıyla uğraşabilirsiniz.

Her birinin avantajları ve dezavantajları nelerdir? Hangi koşullar altında birini veya diğerini arttırırsınız?

Yanıtlar:


25

Şimdiye kadar, Konular ve Süreçleri belirlerken en çok dikkat ettiğim konular şunlardı:

  1. İş parçacıkları, İşlemlerden çok daha az yerleşik bellek kullanır. Evet, dinamik olarak bağlı kütüphanelerle Apache Kontrol Süreci ve alt Süreçleri arasında çok fazla bellek paylaşılır, ancak her yeni İşlemin etkinleştirdiğiniz tüm modülleri somutlaştırması gerekir.

    Bu, örneğin 5 İşlem ve 1 İş parçacığı veya her biri 5 İşlem ve 25 İş Parçacığına sahip olduğunuz her bir İşlemin bellek kullanımını karşılaştırarak kolayca test edilebilir. Burada benim durumumda, her çocuk Süreci Konu miktarı ne olursa olsun yaklaşık 7 MB alır.

    + Konular için

  2. Yeni bir İşlem yüklemek için zaman ve cpu döngüleri açısından başlaması bir İş parçacığından daha uzun sürer. Bu, 'ab' ile sunulan ortalama sayfa sayısını doğrulayarak test edilebilir.

    + Konular için

  3. A Süreçler İş parçacıklarının tümü Sürece bağlıdır .. Buradaki en büyük endişe, İşleme bir şey olursa, onunla ilişkili tüm Konuları etkileyeceğidir. Bir grup İş Parçacığına sahip tek bir İşlem ile çalışıyorsanız, İşlem sona erdiğinde İş Parçacıkları da olur. Bu nedenle daha fazla işlem daha iyi bir ayrılığa ve dolayısıyla daha fazla "hata" toleransına neden olur.

    + Süreçler İçin

  4. (3) ile ilgili olarak, PHP gibi modüller için, bellekleri İşlem tarafından yüklenir ve tüm Konularda paylaşılır. Bu, aşağıdaki 25 Threads ile 100Mbs olarak memory_limit olarak ayarlanmış php'niz varsa, o zaman maksimum yükte teknik olarak her bir Konu her biri için en fazla 4MB ayırabilecektir (elbette bu şekilde olmayacak, bazıları domuz tutacak, bazıları açlık).

Sonuçta, bu gerçekten sizin kullanım durumunuza bağlıdır. Ancak, daha iyi hata toleransı için bunu uygun miktarda Proses ile dengelemeniz gerekir.

Tabii burada uzman değilim, çünkü son zamanlarda bununla ilgilenmek zorunda kaldım, bu yüzden burada hangi cevapların ortaya çıkabileceğini görmek için sabırsızlanıyorum!


1
Bazı iyi genel bilgiler için +1. Yine de mümkünse daha fazla derinlik / somut detay görmek istiyorum.
sh-beta
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.