對於廣大的編程人員來說壓力測試是永遠不會避免的一步,正如測試虐我千百遍我待測試如初戀下面小弟說一下自己遇到的壓力測試的問題,個人拙見,僅供參靠!!!
一般情況下我們在windows平台上進行開發,那么開發環境的要么是Lnmp 要么就是 Lamp 也有的人用環境的集成包,不管用什么只要是apache就好,正如所說小弟使用的就是apache,下面就是我在用apache進行壓力測試的時候的問題,通過 cmd命令行進行測試如下圖報錯
看見這個報錯之后只聽大腦中嗡的一聲,我了個日,為啥報錯啊,但是經過查詢之后感覺自己這個問題很好解決
這個問題的原因就在於我們的參數問題,首先普及一下參數,正如大家所見我們在命令中使用了 -r -n -c 那么他們的具體含義如下
-r 指定接收到錯誤信息時不退出程序
-n 即requests,用於指定壓力測試總共的執行次數
-c 即concurrency,用於指定壓力測試的並發數
那么經過這幾個參數我們就能總結出這個問題的原因應該就是我們設置的並發參數過大造成的所以進行更改
更改之后完美執行壓力測試!!!
再說一下其他的參數
-t 即timelimit,等待響應的最大時間(單位:秒)
-d 不顯示百分比
-h 顯示用法信息,其實就是ab -help
其實這種情況下還有另一種的解決辦法
1、停止Apache服務;
2、找到apache/conf/httpd.conf文件,用文本編輯器打開找到這兩行:
# Server-pool management (MPM specific)
# Include conf/extra/httpd-mpm.conf
把第二行include........這行的注釋去掉。
3、找到apache/conf/extra/httpd-mpm.conf文件,打開,找到:
<IfModule mpm_winnt_module>
ThreadsPerChild 150
MaxRequestsPerChild 0
</IfModule>
把上面的150調大,Windows下最大為1920.
注意:尖括號里的名字是winnt,不要看錯了
以上就是小弟在自己測試的時候遇到的問題並且解決的方法,以上是自己拙見希望幫助大家