模拟的访问不是很大,并发数500,请求数10000,效果还可以。
先是基本的apache,什么都没有做过,时间用了3点多秒
考虑一下需要优化什么,优化的作用是什么,优化完之后会有什么效果
优化apache自身:
修改配置文件,把prefork里最大进程数调高一些默认是256,我调到了500,最大连接数默认256也调到了500.
去掉了日志访问 ln -s /var/log/httpd/access_log >/dev/null
利用内存当做硬盘让客户端读取静态页面 mount -o size=500M =t tmpfs none /tmp/www
解决出现大量的TIME_WAIT
echo 1 >/proc/sys/net/ipv4/tcp_tw_recycle
echo 1 >/proc/sys/net/ipv4/tcp_tw_reuse
修改apache配置文件
打开 keepalive on
优化内核网络参数
增大处于established状态的数量,
echo 10000 > /proc/sys/net/core/somaxconn
syn的消息队列长度,使系统可以处理更多的并发连接
echo 10000 >/proc/sys/net/ipv4/tcp_max_syn_backlog
其他的一些考虑
1、apache要开启keepalive模式,减少连接的次数。
2、但是每增加一个连接,就会使用一个文件描述符,因此需要增加文件描述符的数量。