某项目7
一.问题:4.1单接口测试用户数据初始化,服务器足够,TPS一直上不去,因此怀疑服务器参数有问题:
修改以下参数终于问题解决,修改如下
php-fpm的配置参数 PHP_FCGI_CHILDREN从128改到800.
4.2单个接口测试时,发现服务器波动很大,中间有一段时间服务器响应慢,50,100,500,700并发都出现此现象,此时发现数据库服务器cpu存在大量对列,后台数据库报错:
info: Can not connect to MySQL server
Time: 2011-8-08 10:37am
ScriptError: Can't connect to MySQL server on '10.168.21.86' (99)
Errno.: 2003
此时把数据库连接调成最大,还是报上述错误,从vmstat监控结果看数据库cpu对列都在等待,但io并不高:
二.解决:
最后修改如下:增加个两个DB一个主数据库用来写另一个从用来读,读写分离,这样对cpu对列就进行分担. 测试验证后问题解决, 总结:如果DB的cpu对列是瓶颈,其它如cpu,io,内存,数据库连接数不是问题时,读写分离是一种不错的办法.
注意:三种方法php-cgi:
1.最强悍的FPM, 功能最强大, 只要配置php-fpm.conf即可;
2.使用 spawn-fcgi, 启动命令: env – PHP_FCGI_CHILDREN=3 PHP_FCGI_MAX_REQUESTS=1000 spawn-fcgi -a
127.0.0.1 -p 9000 -u www-data -g www-data -f php-cgi -P /var/run/spawn-fcgi.pid
3.直接启动php-cgi, 使用命令: php-cgi -b 127.0.0.1:9000
阅读(1476) | 评论(0) | 转发(0) |