給Apache做壓力測試時遇到的問題

發表于:2013-12-14來源:IT博客大學習作者:phpor 點擊數: 標簽:壓力測試
給Apache做壓力測試時遇到的問題.最近,在Linux上對Apache-2.1.16做了一下壓力測試;只訪問一個簡單的hello world靜態文件,做了多次,每秒處理請求次數才700左右; 一定是哪里出現了問題,因為: 1. 雖然load很高,但是cpu和io都很低,這種現象就比較奇怪

  最近,在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很高的實例呢?

原文轉自:http://blogread.cn/it/article/3959?f=sa

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97