之前朋友推薦我用 eAccelerator ,後來用了,雖然確實起到加速的作用了,但是一直也沒有很在意它。
今天看到其他的一些資料,蠻推薦使用eAccelerator 的。今天再留意下服務器的運行情況。發現了一些問題。
在使用 eAccelerator 之前,CPU占用經常在50%左右。那時候環境是: FreeBSD 4.11 + apache 2.0.59 + PHP 5.1.5 + Squid 2.5 。
使用 eAccelerator 之後,CPU占用有所下降,在40%左右。後來升級Squid 2.5到Squid 2.6後,CPU 下降到20%左右。由於Squid 2.6在FreeBSD采用 Kqueue支持,所以對CPU消耗下降了。另外COSS的性能提高,對CPU消耗也有所改善。
經過上面的優化和升級後,CPU使用情況,維持在10-20%左右。
今天再仔細看看eAccelerator 的運行情況,發現內存使用已經是100%,只分配了16M內存來做緩存,只能緩存600個文件左右。
於是今天將內存設置為32M,運行10分鐘後,內存使用100%,緩存了1000個文件左右。而對CPU占用也有所下降,現在CPU在6-10%左右。
由此可見,如果有大內存,設置更多內存給 eAccelerator ,對性能優化有更大的幫助的。
下面是eAccelerator 和zend_optimizer 的設置:
zend_extension="/opt/modules/php/lib/PHP/extensions/no-debug-non-zts-20050922/eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
[Zend]
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer=/opt/modules/PHP/Zend/lib/Optimizer-2_6_0
zend_extension_manager.optimizer_ts=/opt/modules/PHP/Zend/lib/Optimizer_TS-2_6_0
zend_optimizer.version=2.6.0
zend_extension=/opt/modules/PHP/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/opt/modules/PHP/Zend/lib/ZendExtensionManager_TS.so