lnmp壓力測試

2021-09-21 23:40:43 字數 3571 閱讀 9015

最近在自己的台式電腦上搭了個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的優化手段主要有

1

2

3

4

5

6

7

8

核心引數

檔案控制代碼數

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

結果

1

2

3

4

5

6

7

8

9

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

300291.4287.91500

400374.4383.92000

500384394.32500

600389.9399.23000

700385.7397.23500

800390.8399.74000

900389.3399.14500

1000379.8391.95000

結果分析,

併發在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

1

2

3

4

5

6

7

8

9

10

<html>

<head>

<title>first program

<body>

<?php

echo "hello, world\n";

?>

0-100求和

1

2

3

4

5

6

7

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