前些天一个Nginx+PHP项目上线后遭遇了性能问题,于是打算练练手,因为代码并不是我亲自写的,所以决定从系统层面入手看看能否做一些粗线条的优化。首先,我发现服务的Backlog设置过小,可以通过ss命令查询Send-Q来确认:shell> ss -ln Recv-Q Send-Q Local Address:Port Peer Address:Port 0 511 *:80 *:* 0 128 127.0.0.1:9000 *:*明显看出,Nginx的Backlog是511;PHP的Backlog是128,在高并发时易成为瓶颈。关于TCP队列的详细介绍,推荐阅读「TCP queue 的一些问题」,此外,大家有兴趣的可以关注一下在Linux中全连接和半连接队列长度是如何计算的。其次,我发现服务的进程数设...
查看详细内容 >>