Chain of thoughts (to be continued....):
First I would test if the problem is triggered by or significantly worsened by concurrency. With your -n 1000 -c 100
test you had a ratio of 22/4500. What about -n 1000 -c 10
or -n 1000 -c 1
?
Sonra bellek tüketimi, disk I / O ve CPU kullanımı takip + tekrar aynı denemek istiyorsunuz. Bu herhangi bir clearly sınırlayıcı faktördür?
Sonra basit bir PHP komut test ediyorum:
- boş bir komut dosyası
- ?
- hiçbir komut, ancak
test.html
test.php
üzerine kopyalanan içeriği
- sadece küçük bir Memcached öğe hizmet. Mümkün olduğunca, Memchached nesne oluşturmak ve bir öğeyi, hayır testi, hiçbir sona erme, hiçbir eklenti, sadece
echo $mc->get(string $key)
almak gibi basit bir betik
Nasıl bu test.html farklar nelerdir?
Edit:
Adlı bir karşılaştırma noktası olarak Web Server Performance Comparison: LiteSpeed 2.0 VS alalım. Gösterge başka bir web sunucusu ürün "rakip" "için" yapılan, ancak şu an için Hadi onlar ;-) (çok) önyargılı değildi varsayalım edildi
Bir vardı
- İşlemci: Tek Intel Xeon 2.4 GHz/533 MHz FSB/512 KB L2 Cache
- Hafıza: 256 MB ECC PC2700
- Sabit Disk: 36 GB 10K RPM SCSI disk Seagate ST336607LW
- NIC: kurulu Intel PRO/1000 Gigabit Bağdaştırıcısı'nda
LightHTTPD 15475 100 bayt saniyede dosyaları, komut ikinci ve saniyede 399 kez phpinfo.php başına helloworld.php
1593 kez (iki FastCGI). Görev Bu bir ~ 1:10 (merhaba dünya) oranı 1:40 (Phpinfo) bulunuyor. "Sizin" oranı 22:4500 ~ 1:200 olduğunu. Script değiştiğinde Ve hatta yabancı o değişmez. Sizin "gerçek" komut dosyası veya boş bir PHP komut dosyası olursa olsun, her zaman 01:22. Bu "tuhaflık faktörü" biraz (testler aynı olmasa bile) yükseltir.
First of all I would double-check if PHP was compiled with FastCGI support, see http://www.fastcgi.com/docs/faq.html#PHP.
Then I'd test "my" lighthttpd with a simple C/C++ FastCGI program as mentioned in the test, a real simple "hello world". There's an example at http://www.fastcgi.com/devkit/doc/fastcgi-prog-guide/ch2c.htm#4263. If this scales "well", i.e. significantly better than your PHP FastCGI, I'd try it with a "barely running" PHP version, i.e. compiled with --disable-all
and only those modules (re)actived and built-in that are necessary to start PHP and let it print "hello world". Also use the default php.ini
. Does this change anything?