lnmp压力测试
最近在自己的臺式機上搭了個lnmp,想用壓力壓一壓,看看結(jié)果怎么樣。
由于nginx只是個靜態(tài)web服務(wù)器,并發(fā)能力超強,因此lnmp的性能瓶頸在于php的處理能力,即php-fpm。
硬件
CPU AMD Phenom(tm) II X4 945
內(nèi)存 4G x 4
硬盤 西數(shù)綠盤 7200rpm
網(wǎng)卡 realtek 8169 千兆自適應(yīng)
軟件版本
nginx 1.4.0
mysql 5.5.31
php 5.4.14
重新編譯的rpm包有
nginx
mysql
php
php-pecl-zendopcache
libevent
lnmp的優(yōu)化手段主要有
內(nèi)核參數(shù) 文件句柄數(shù) php緩存 nginx編譯 nginx?pagespeed nginx緩存 nginx壓縮 nginx?CPU綁定
采用autobench ,模擬300至1000個并發(fā),每次并發(fā)持續(xù)2分鐘,之后并發(fā)遞增100,每個連接5次請求。
命令
autobench --single_host --host1 192.168.1.101 --port1 80 --uri1 /phpinfo.php --low_rate 300 --high_rate 1000 --rate_step 100 --num_call 5 --const_test_time 120 --timeout 2 --file result.tsv
結(jié)果
連接數(shù)?????請求速度req/s???????????連接速度conn/s??????????總連接數(shù) 300?????????291.4???????????????????287.9???????????????????1500 400?????????374.4???????????????????383.9???????????????????2000 500?????????384?????????????????????394.3???????????????????2500 600?????????389.9???????????????????399.2???????????????????3000 700?????????385.7???????????????????397.2???????????????????3500 800?????????390.8???????????????????399.7???????????????????4000 900?????????389.3???????????????????399.1???????????????????4500 1000????????379.8???????????????????391.9???????????????????5000
結(jié)果分析,
并發(fā)在300開始,php處理能力逐漸加強,在800時達到最高峰390.8req/s,之后逐漸下降,可見,php整體處理請求能力在每秒380左右,理論上全天訪問量約3千萬(380x60x60x24=32832000).
根據(jù)二八原理,80%的請求完成在20%的時間段里,20%的時間為4.8小時,可承受的請求數(shù)為650萬(380x60x60x4.8=6566400),換算成實際全天訪問量就是820萬(6566400/0.8=8208000)。
根據(jù)大牛張宴的博客,他能達到700req/s(理論上折合日訪問量6千萬),不過他是全程編譯,而我這里全程是rpm,只對部分核心軟件包進行了srpm重新編譯,硬件也只是普通臺式機。
總之,還有很大的優(yōu)化空間,繼續(xù)加油!
update 2015-10-12
由于phpinfo 頁面比較大,一次獲取會有幾十k的數(shù)據(jù),連接數(shù)一多,網(wǎng)卡會成為瓶頸。
建議同時使用別的頁面進行測試,比如hello world,或者計算1-100求和。
hello world
<html><head><title>First?program</title></head><body><?phpecho?"hello,?world\n";?></body> </html>0-100求和
<?php$i=1;?$sum=0;while?(?$i<=100)?{$sum?=?$sum?+$i;?$i++;}echo?$sum; ?>總結(jié)
- 上一篇: 教你如何用vbs实现微信自动发送消息功能
- 下一篇: Fiddler的钩子hook导致电脑无法