Apache并发数计算
首先,Apache工作在prefork模式下的时候,并发数仅仅取决于内存数量。
公式如下:
最大并发数 = 系统可用内存 / 每个Apache进程占用内存数
若要套用此公式,则需要解决几个问题,Apache是否工作在prefork模式,系统可用内存大小,以及每个Apache进程占用内存大小。下面逐个解决这几个问题。
1. 如何判断Apache的工作模式呢:
使用这个命令
httpd -l
如果输出中有prefork字样,就是工作在prefork模式。
2. 如何计算每个Apache进程占用内存大小呢:
ps aux|grep -v grep|awk '/httpd/{sum+=$6;n++};END{print sum/n}
可以计算出每个Apache进程占用的内存大小,以KB为单位。
3. 系统可用内存大小:
free -k
可以看到以KB为单位的系统可用内存。注意不要计入swap的大小。
然后,根据开始的公式,计算系统能够支持的最大并发数。就可以啦。
参考:
1. Apache2文档。调整Apache2性能
2. 一个例子