Kaç php-cgi süreçleri çalıştırmak gerekir?

1 Cevap php

Ben fastcgi aracılığıyla erişilen PHP süreçleri ile, (benim durumumda nginx) hafif bir ön çalışan bir web sunucusu hakkında soruyorum.

Ben yöntemli PHP CGI süreçleri makinede çalışan gerektiğini kaç hesaplamak için bir yol bulmaya çalışıyorum.

Bunu düşünmek için bir yolu bir sürecin ortalama bellek izi anlamaya ve mevcut RAM sınırları içinde mümkün olduğu kadar çok çalıştırılır. Ancak, bu sorunun içine CPU kullanımını getirmez.

CPU (DB ve memcache kullanılan, ancak darboğazlar değillerdir) benim uygulamada gerçek bir darboğaz olduğu, php işlemleri için üs sayısı kullanılabilir CPU sayısı olması gerektiğini düşünüyorum.

Örneğin -. 8 çekirdekli makinesinde, baz sayısı 8 olacak bazı işlemler veritabanı veya ağ bekle varsayarsak, ben alltogether fazla 20 PHP süreçleri çalıştırmak için herhangi bir neden göremiyorum.

Düşünce bu şekilde mantıklı mı? Nasıl çalıştırmak için kaç süreçleri hesaplanır?

1 Cevap

Option 1: pik saatlerde süresini belirlemek için apache günlükleri kullanın.

Log formatında süresini ekleyin. (Gibi bir şey)

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" duration:%T/%D 

Sonra bazı log dosyası aynı anda işleme istekleri sayısını analiz etmek ayrıştırma yok.

Option 2 (uygulama apache adanmış sunucu varsa): apache süreçlerin sayısını oturum açmak için bir cron işi yazın:

# Quick hack to log apache processes 
* * * * * date -R >> /tmp/apache_count &&  ps -A | grep httpd | grep -v grep | wc -l > /tmp/apache_count