某项目8
一.问题:
接口压力测试时发现,服务器各接口响应时间非常慢,问题在于程序需要做优化,sql查询要优化。
与开发商量过,程序优化后再进行测试。
以下是:购买商品在不同并发下的服务器响应时间变化。
1并发 0.111秒
2并发 0.186秒
3并发 0.258秒
10并发 0.544秒
50并发 2.755秒
100并发 5.285秒
150并发 7.55秒
现象:
1.服务器tps压不上去。
2.TPS波动很大,每次测试都会出现服务器有一段时间不能处理事务的情况。
3.服务器资源情况是:cpu占用极低,且cs上下文切换极高。
4.好友列表接口,服务器响应时间很强,需要优化程序。(开发重新修改接口代码)
二.解决:
主要修改如下:
修改参数为:
1.php-fpm max_children 200
2.nginx: worker 2 access_log off, keep_alive 60s
3.php关闭xhprof (解决cs上下文切换问题)
4.selinux = disabled
-------------------------------------------------------
还有就是sysctl调整参数 (解决服务器有一段时间不能处理事务的情况)
net.ipv4.tcp_max_syn_backlog = 65536
net.core.netdev_max_backlog = 32768
net.core.somaxconn = 32768
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_tw_recycle = 1
#net.ipv4.tcp_tw_len = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800
#net.ipv4.tcp_fin_timeout = 30
#net.ipv4.tcp_keepalive_time = 120
net.ipv4.ip_local_port_range = 1024 65535
-------------------------------------------------------
mysql服务器调整参数
connect_timeout=60
innodb_buffer_pool_size = 4G
innodb_flush_method = O_DIRECT
注:php关闭xhprof,后cs上下文切换下降很多。
三.测试结果:
最后问题解决,测试通过。
阅读(1280) | 评论(0) | 转发(0) |