lnmp壓力測試

2021-09-03 10:45:54 字數 2282 閱讀 7771

最近在自己的台式電腦上搭了個lnmp,想用壓力壓一壓,看看結果怎麼樣。

由於nginx只是個靜態web伺服器,併發能力超強,因此lnmp的效能瓶頸在於php的處理能力,即php-fpm。

硬體

cpu amd phenom(tm) ii x4 945

記憶體 4g x 4

硬碟 西數綠盤 7200rpm

網絡卡 realtek 8169 千兆自適應

軟體版本

nginx 1.4.0

mysql 5.5.31

php 5.4.14

重新編譯的rpm包有

nginx

mysql

phpphp-pecl-zendopcache

libevent

lnmp的優化手段主要有

核心引數

檔案控制代碼數

php快取

nginx編譯

nginx pagespeed

nginx快取

nginx壓縮

nginx cpu繫結

採用autobench ,模擬300至1000個併發,每次併發持續2分鐘,之後併發遞增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

結果

連線數     請求速度req/s           連線速度conn/s          總連線數

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

結果分析,

併發在300開始,php處理能力逐漸加強,在800時達到最高峰390.8req/s,之後逐漸下降,可見,php整體處理請求能力在每秒380左右,理論上全天訪問量約3千萬(380x60x60x24=32832000).

根據二八原理,80%的請求完成在20%的時間段裡,20%的時間為4.8小時,可承受的請求數為650萬(380x60x60x4.8=6566400),換算成實際全天訪問量就是820萬(6566400/0.8=8208000)。

根據大牛張宴的部落格,他能達到700req/s(理論上折合日訪問量6千萬),不過他是全程編譯,而我這裡全程是rpm,只對部分核心軟體包進行了srpm重新編譯,硬體也只是普通台式電腦。

總之,還有很大的優化空間,繼續加油!

update 2015-10-12

由於phpinfo 頁面比較大,一次獲取會有幾十k的資料,連線數一多,網絡卡會成為瓶頸。

建議同時使用別的頁面進行測試,比如hello world,或者計算1-100求和。

hello world

<?php

echo "hello, world\n";

?>

0-100求和

<?php

$i=1; $sum=0;

while ( $i<=100) 

echo $sum;

?>

lnmp壓力測試

最近在自己的台式電腦上搭了個lnmp,想用壓力壓一壓,看看結果怎麼樣。由於nginx只是個靜態web伺服器,併發能力超強,因此lnmp的效能瓶頸在於php的處理能力,即php fpm。硬體 cpu amd phenom tm ii x4 945 記憶體 4g x 4 硬碟 西數綠盤 7200rpm ...

ab壓力測試 mysql MySQL壓力測試

1.什麼是壓力測試 壓力測試是針對系統的一種效能測試,但是測試資料與業務邏輯無關,更加簡單直接的測試讀寫效能 2.壓力測試的指標 qps 每秒鐘處理完請求的次數 tps 每秒鐘處理完的事務次數 併發量 系統能同時處理的請求數 3.壓力測試工具 mysqlslap sysbench jmeter 長時...

mysql 壓力測試 golang 壓力測試

1.壓力測試 1.1.1.go怎麼寫測試用例 開發程式其中很重要的一點是測試,我們如何保證 的質量,如何保證每個函式是可執行,執行結果是正確的,又如何保證寫出來的 效能是好的,我們知道單元測試的重點在於發現程式設計或實現的邏輯錯誤,使問題及早暴露,便於問題的定位解決,而效能測試的重點在於發現程式設計...