日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

如何测试web服务器性能,如何执行Web服务器性能基准测试?

發(fā)布時(shí)間:2025/3/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何测试web服务器性能,如何执行Web服务器性能基准测试? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文概述

你知道你網(wǎng)站的平均響應(yīng)時(shí)間嗎?你知道你的網(wǎng)站可以處理多少個(gè)并發(fā)用戶嗎?

負(fù)載測(cè)試對(duì)于Web應(yīng)用程序了解網(wǎng)站容量至關(guān)重要。如果要選擇Web服務(wù)器, 那么要做的第一件事就是執(zhí)行負(fù)載測(cè)試, 然后看看哪一個(gè)對(duì)你來(lái)說(shuō)效果很好。

標(biāo)桿管理可以幫助你做出決定;

哪個(gè)Web服務(wù)器效果最好

你需要服務(wù)的服務(wù)器數(shù)量x請(qǐng)求數(shù)量

哪種配置可為你帶來(lái)最佳效果

有幾種在線工具可以進(jìn)行壓力測(cè)試。但是, 如果你正在尋找內(nèi)部解決方案或僅對(duì)Web服務(wù)器性能進(jìn)行基準(zhǔn)測(cè)試, 則可以使用ApacheBench以及下面列出的一些工具。

我已經(jīng)使用DigitalOcean上托管的Apache&Nginx Web服務(wù)器對(duì)其進(jìn)行了測(cè)試。

工具清單

ApacheBench

SIEGE

Gobench

Apache JMeter

wrk

Httpload

curl-loader

httperf

Tsung

ApacheBench

ApacheBench(ab)是可與任何Web服務(wù)器一起使用的開源命令行程序。在這篇文章中, 我將解釋如何安裝這個(gè)小程序并執(zhí)行負(fù)載測(cè)試以對(duì)結(jié)果進(jìn)行基準(zhǔn)測(cè)試。

Apache

讓我們使用yum命令安裝ApacheBench。

yum install httpd-tools

如果你已經(jīng)擁有httpd工具, 則可以忽略它。

現(xiàn)在, 讓我們看看它如何處理500個(gè)并發(fā)的5000個(gè)請(qǐng)求。

[[email?protected] ~]# ab -n 5000 -c 500 http://localhost:80/

This is ApacheBench, Version 2.3

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)

Completed 500 requests

Completed 1000 requests

Completed 1500 requests

Completed 2000 requests

Completed 2500 requests

Completed 3000 requests

Completed 3500 requests

Completed 4000 requests

Completed 4500 requests

Completed 5000 requests

Finished 5000 requests

Server Software:??????? Apache/2.2.15

Server Hostname:??????? localhost

Server Port:??????????? 80

Document Path:????????? /

Document Length:??????? 4961 bytes

Concurrency Level:????? 500

Time taken for tests:?? 13.389 seconds

Complete requests:????? 5000

Failed requests:??????? 0

Write errors:?????????? 0

Non-2xx responses:????? 5058

Total transferred:????? 26094222 bytes

HTML transferred:?????? 25092738 bytes

Requests per second:??? 373.45 [#/sec] (mean)

Time per request:?????? 1338.866 [ms] (mean)

Time per request:?????? 2.678 [ms] (mean, across all concurrent requests)

Transfer rate:???? ?????1903.30 [Kbytes/sec] received

Connection Times (ms)

min? mean[+/-sd] median?? max

Connect:??????? 0?? 42? 20.8???? 41??? 1000

Processing:???? 0? 428 2116.5???? 65?? 13310

Waiting:??????? 0? 416 2117.7???? 55?? 13303

Total:???????? 51? 470 2121.0??? 102?? 13378

Percentage of the requests served within a certain time (ms)

50%??? 102

66%??? 117

75%??? 130

80%??? 132

90%??? 149

95%??? 255

98%? 13377

99%? 13378

100%? 13378 (longest request)

[[email?protected] ~]#

因此, 你可以看到, Apache每秒處理373個(gè)請(qǐng)求, 并且總共花費(fèi)了13.389秒來(lái)處理所有請(qǐng)求。

現(xiàn)在你知道默認(rèn)配置可以滿足許多請(qǐng)求, 因此當(dāng)你進(jìn)行任何配置更改時(shí), 你可以再次進(jìn)行測(cè)試以比較結(jié)果并選擇最佳結(jié)果。

Nginx的

讓我們測(cè)試一下我們對(duì)Apache所做的工作, 以便你可以比較哪個(gè)性能更好。

[[email?protected] ~]# ab -n 5000 -c 500 http://localhost:80/

This is ApacheBench, Version 2.3

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)

Completed 500 requests

Completed 1000 requests

Completed 1500 requests

Completed 2000 requests

Completed 2500 requests

Completed 3000 requests

Completed 3500 requests

Completed 4000 requests

Completed 4500 requests

Completed 5000 requests

Finished 5000 requests

Server Software:??????? nginx/1.10.1

Server Hostname:??????? localhost

Server Port:??????????? 80

Document Path:????????? /

Document Length:??????? 3698 bytes

Concurrency Level:????? 500

Time taken for tests:?? 0.758 seconds

Complete requests:????? 5000

Failed requests:??????? 0

Write errors:?????????? 0

Total transferred:????? 19660000 bytes

HTML transferred:?????? 18490000 bytes

Requests per second:??? 6593.48 [#/sec] (mean)

Time per request:?????? 75.832 [ms] (mean)

Time per request:?????? 0.152 [ms] (mean, across all concurrent requests)

Transfer rate:????? ????25317.93 [Kbytes/sec] received

Connection Times (ms)

min? mean[+/-sd] median?? max

Connect:??????? 0??? 6? 11.0????? 2????? 53

Processing:???? 5?? 19?? 8.2???? 17????? 53

Waiting:??????? 0?? 18?? 8.2???? 16????? 47

Total:???????? 10?? 25? 17.4???? 18????? 79

Percentage of the requests served within a certain time (ms)

50%???? 18

66%???? 21

75%???? 21

80%???? 22

90%???? 69

95%???? 73

98%???? 75

99%???? 76

00%???? 79 (longest request)

[[email?protected] ~]#

哇!你看到了嗎? Nginx每秒處理6593個(gè)請(qǐng)求!贏家。

因此, 你只需要與兩臺(tái)Web服務(wù)器進(jìn)行比較, 便會(huì)了解為Web應(yīng)用程序選擇哪一臺(tái)。

以上測(cè)試是在CentOS 6.8(64位)上進(jìn)行的。你可以嘗試OS和Web Server版本的多種組合以獲得最佳結(jié)果。

SIEGE

SIEGE是UNIX支持的HTTP負(fù)載測(cè)試實(shí)用程序。你可以在一個(gè)文本文件中放入多個(gè)URL, 以進(jìn)行測(cè)試。你可以使用yum安裝圍攻。

# yum install siege

讓我們以500個(gè)并發(fā)請(qǐng)求運(yùn)行測(cè)試5秒鐘。

[[email?protected] ~]# siege -q -t 5S -c 500 http://localhost/

Lifting the server siege...????? done.

Transactions:?????????????? ??????? 4323 hits

Availability:???????? ????? 100.00 %

Elapsed time:?????????????? ??????? 4.60 secs

Data transferred: ?????? 15.25 MB

Response time:??????????? ??????? 0.04 secs

Transaction rate: ????? 939.78 trans/sec

Throughput:???????????????? ??????? 3.31 MB/sec

Concurrency:?????????????? ?????? 37.97

Successful transactions:??????? 4323

Failed transactions:???? ?????????? 0

Longest transaction:??? ??????? 1.04

Shortest transaction:??? ??????? 0.00

[[email?protected] ~]#

分解參數(shù)。

-q –安靜運(yùn)行(不顯示請(qǐng)求詳細(xì)信息)

-t –運(yùn)行5秒鐘

-c – 500個(gè)并發(fā)請(qǐng)求

如你所見, 可用性為100%, 響應(yīng)時(shí)間為0.04秒。你可以根據(jù)你的目標(biāo)調(diào)整負(fù)載測(cè)試參數(shù)。

Gobench

Gobench用Go語(yǔ)言和簡(jiǎn)單的負(fù)載測(cè)試實(shí)用程序編寫, 以基準(zhǔn)測(cè)試Web服務(wù)器的性能。它支持超過(guò)20, 000個(gè)并發(fā)用戶, 而ApacheBench不支持。

Apache JMeter

JMeter是衡量Web應(yīng)用程序性能的最受歡迎的開源工具之一。 JMeter是基于Java的應(yīng)用程序, 不僅是Web服務(wù)器, 而且你可以將其用于PHP, Java。 ASP.net, SOAP, REST等

JMeter擁有不錯(cuò)的友好GUI, 并且最新版本3.0需要Java 7或更高版本才能啟動(dòng)該應(yīng)用程序。如果你的目標(biāo)是優(yōu)化Web應(yīng)用程序性能, 則必須嘗試JMeter。

wrk

wrk是另一個(gè)現(xiàn)代的性能評(píng)估工具, 可將負(fù)載加到你的Web服務(wù)器上, 并為你提供延遲, 每秒請(qǐng)求, 每秒傳輸?shù)仍敿?xì)信息。

使用wrk, 你可以指定運(yùn)行帶有多個(gè)線程的負(fù)載測(cè)試。

讓我們舉一個(gè)例子, 對(duì)500個(gè)并發(fā)用戶和8個(gè)線程進(jìn)行5分鐘的測(cè)試。

wrk –t8 –c500 -d300s http://localhost

Httpload

Httpload可以從文件中讀取多個(gè)URL, 也可以在命令參數(shù)中指定它。最新版本支持SSL / TLS, 這意味著你可以查詢啟用HTTPS(SSL)的網(wǎng)頁(yè)URL。

測(cè)試啟用SSL的URL時(shí), 可以選擇指定密碼, 簡(jiǎn)單的test命令如下所示。

httpload -cipher AES256-SHA -parallel 200 -seconds 120 URL_LIST.txt

為了更好地理解它, 上面將針對(duì)200個(gè)并發(fā)用戶運(yùn)行測(cè)試2分鐘。

curl-loader

curl-loader用C編寫, 可以模擬應(yīng)用程序負(fù)載, 它支持SSL / TLS。除了網(wǎng)頁(yè)測(cè)試外, 你還可以使用此開源工具在FTP服務(wù)器上執(zhí)行加載。

你可以在單個(gè)批處理配置中創(chuàng)建包含HTTP, HTTPS, FTP和FTPS的測(cè)試計(jì)劃。

httperf

httperf是一種高性能工具, 專注于微觀和宏觀水平的基準(zhǔn)測(cè)試。它支持HTTP / 1.1和SSL協(xié)議。

如果你期望并發(fā)用戶數(shù), 并且希望測(cè)試Web服務(wù)器是否可以滿足一定數(shù)量的請(qǐng)求, 則可以使用以下命令。

httperf --server localhost --port 80 --num-conns 1000 --rate 100

上面的命令將以每秒100個(gè)請(qǐng)求的速度測(cè)試1000個(gè)HTTP請(qǐng)求。

Tsung

Tsung是一種多協(xié)議分布式壓力測(cè)試工具, 可以對(duì)HTTP, SOAP, PostgreSQL, LDAP, XAMP, MySQL服務(wù)器進(jìn)行壓力測(cè)試。它支持HTTP / 1.0, HTTP / 1.1, 并且cookie被自動(dòng)處理。

使用Tsung生成報(bào)告是可行的。

總結(jié)

我希望以上基準(zhǔn)測(cè)試工具能使你對(duì)Web服務(wù)器的性能有所了解, 并幫助你確定最適合你的項(xiàng)目的工具。

總結(jié)

以上是生活随笔為你收集整理的如何测试web服务器性能,如何执行Web服务器性能基准测试?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。