Menyambung posting terdahulu, saya baru ngeh kalau ada kelemahan yang signifikan di mod_php yaitu parser PHP yang built-in ke dalam process httpd menyebabkan jumlah memory yang dimakan oleh 1 proses httpd bisa sampai 15mb. Dan problem yang disebutkan om steven dimana hosting kebanyakan tidak menjalankan PHP sebagai modul karena alasan security dan privacy. Maka saya coba untuk menjalankan PHP tidak sebagai modul, tapi sebagai aplikasi CGI, lebih tepatnya FastCGI

Trik memakau FastCGI ini ternyata cukup mantab, 1 process httpd hanya memakan sekitar 6-7mb memory — tergantung dari module yang diaktifkan. Dan hasil benchmarknya:

  Request/Sec Time/Req (ms) Connection Time (ms) Failed Improvement
PHP FastCGI 5.66 176.688 175 0 0
FastCGI+APC 12.49 80.063 79 0 45.31%
FastCGI+XCACHE 12.47 80.219 79 0 45.38%

Ngga beda jauh dengan mod_php, sekitar 40-50% improvement. At least membuktikan kalau PHP-CGI bisa di cache. Walaupun pakai FastCGI. Beda yang paling signifikan adalah di mod_php, 1 process httpd berharga antara 10mb-15mb, sedangkan di php-fastcgi, 1 process httpd menghabiskan antar 6-8mb. Plus process PHP yang berjalan sebagai FastCgiServer sekitar 6mb. Improvementnya adalah kita bisa nambah MaxSpareServer nya apache seandainya kita jalankan secara prefork atau pilih solusi lain dengan menjalankan apache dengan Worker MPM yang diklaim oleh apache lebih handal untuk menangani banyak request.