php-cgi消耗cpu過多導致機器負責過高

簡述:機器爲一臺虛擬機 兩個cpu(Intel(R) Xeon(R) CPU           E5410  @ 2.33GHz)、2G內存。

     併發小於3w。用一臺機器應該足以抗住。

配置:nginx 1.06 + php_cgi (PHP 5.2.13) +mysql (5.1.42-log MySQL Community Server)


1.問題截圖:php_cgi消耗cpu過高導致機器很卡 查看內存也不足。

wKiom1MG9Qji8o4hAAaQplE0k3k969.jpg

2.做出調整:

1. nginx少開兩個進程:

 

user  nobody nobody;
worker_processes  2;
worker_rlimit_nofile 51200;

2.調整php_cgi的子進程數:

 

/usr/local/nginx/sbin/spawn-fcgi -a 127.0.0.1 -p 1026 -C 12 -u nobody -f /usr/local/php-fcgi/bin/php-cgi
/usr/local/nginx/sbin/spawn-fcgi -a 127.0.0.1 -p 1027 -C 12 -u nobody -f /usr/local/php-fcgi/bin/php-cgi

3.重啓php_cgi和nginx發現效果 不佳。查資料發現有可能eAccelerater模塊不兼容,(http://zhangxugg-163-com.iteye.com/blog/873378)

4.修改/usr/local/php-fcgi/lib/php.ini 禁止eaccelerator模塊 改爲apc加速:

 

[apc]
extension = "apc.so"
apc.enabled = 1
apc.cache_by_default = on
apc.shm_segments = 1
apc.shm_size = 128M
apc.ttl = 7200
apc.user_ttl = 7200
apc.num_files_hint = 1024
apc.write_lock = On
apc.gc_ttl=3600
apc.ttl=0
apc.mmap_file_mask=/tmp/apc.XXXXXX

 5.重啓nginx和php_cgi

 

[root@hj sbin]# cat restart.sh
#!/bin/sh
killall -9 nginx
killall -9 php-cgi
ulimit -HSn 655350
ulimit -a
sleep 3
/usr/local/nginx/sbin/spawn-fcgi -a 127.0.0.1 -p 1026 -C 12 -u nobody -f /usr/local/php-fcgi/bin/php-cgi
/usr/local/nginx/sbin/spawn-fcgi -a 127.0.0.1 -p 1027 -C 12 -u nobody -f /usr/local/php-fcgi/bin/php-cgi
/usr/local/nginx/sbin/nginx

6.效果圖:

wKiom1MG92vxNfTVAAV9RaDecRA399.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章