5

给Apache做压力测试时遇到的问题

 3 years ago
source link: https://blogread.cn/it/article/3959?f=hot1
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

给Apache做压力测试时遇到的问题

浏览:5056次  出处信息

最近,在Linux上对Apache-2.1.16做了一下压力测试;只访问一个简单的hello world静态文件,做了多次,每秒处理请求次数才700左右;

    一定是哪里出现了问题,因为:

     1. 虽然load很高,但是cpu和io都很低,这种现象就比较奇怪

     2. client端的负载很低

     3. 曾经有过 2000/s的测试,而且当时的机器配置比现在的要差的多

    当我使用同样的方法对nginx做测试的时候,nginx可以达到 2.2w/s 。

    无奈之下,只好又把strace请出来了,发现写日志的地方很慢。

    于是怀疑是磁盘问题; 使用hdparm测试了一下磁盘,没有问题; 又用 time dd ... 测试了一下,写的速度也 700+MB/s ; 回头想想,确认了一下nginx也是记日志的,而且都是同一块磁盘,大概不是磁盘问题了。

    修改Apache 配置文件,把记日志的配置注释掉, 重新测试,发现可以达到 7k+/s 了;仔细观察Apache的配置,是这样写的:

    TransferLog "|/data1/apache2/bin/rotatelogs /path/to/logfile"

    于是,我想怀疑rotatelogs 这个程序了,但是似乎也没有道理; 那么就只剩下那个管道了,恩, 大概问题就出现在管道上了。

    因为管道的大小为4k, 多进程写管道,单进程读管道,也难免会出现阻塞的情况;另外,load高的时候,io是很低的,所以说磁盘不是瓶颈。 管道是瓶颈

    ----------

    如何利用管道来模拟一个cpu、io都很低,但是load很高的实例呢?

觉得文章有用?立即:

和朋友一起 共学习 共进步!

建议继续学习:

QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK