读了郭欣的《构建高性能站点指南》,收获颇丰,这里算是一点读后感、总结+小体验,向作者致敬
这篇讲的是服务器的并发处理能力,从哪几点来评测服务器的并发处理能力呢?吞吐率、CPU并发处理能力、系统调用、内存分配、持久连接、I/O模型、服务器并发策略,这里的每一点都是非常值得深究的
1. 吞吐率
定义:web服务器单位时间内处理的请求个数
工具:apache的ab压力测试工具,详情见http://blog.csdn.net/fly_heart_yuan/article/details/6970509
分析:压力测试中,不断增大并发数,从1开始到1000,我们会得到一系列结果,在结果中,应重点关注四个数据:并发用户数、吞吐率、请求等待时间、请求处理时间,后三项的时间都会随着并发用户数的增多而发生变化,或增或减,我们会在这四个数据之间权衡,找到一个平衡点,具体这个平衡点在哪里,根据自己的情况去确定
2. CPU并发计算
定义:无
工具:top命令
分析:
参考:http://www.slideshare.net/myw58/jiangjiangwei
3 系统调用
工具:strace 命令
strace命令可以跟踪某一个进程,列出该进程所有调用的系统函数
做这个实验的时候,为了方便,我把php-cgi的数目配成一个,使用 ps aux|grep php-cgi 可以查看到php-cgi的进程号,后使用strace -p XXX(进程号)可以跟踪该进程
4. 内存分配
5. 持久连接
建立一次TCP链接的操作是很一项不小的开销,所以链接的次数越少,越有利于性能的提升,适用于密集型图片或网页等小数据请求处理
6. I/O模型
7. 服务器并发策略