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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

压力测试与提升服务器能力的几个方法

發布時間:2025/4/16 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 压力测试与提升服务器能力的几个方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一般來說,壓力測試用的都是apache軟件自帶的ab命令,這個命令可以自己手動規定模擬多少個人同時訪問目標網址同時這些人訪問多少次。ab的格式如下:

#ab -c 1000 -n 50000 http://192.168.1.202/index.html

這句話的意思是模擬3000個用戶同時訪問192.168.1.202的主頁,訪問50000次。注意url一定要寫全,不可以就寫一個192.168.1.202。


但是ab有一點缺憾,那就是只能訪問靜態網頁,如果是動態網頁比如是聊天室那種網頁就訪問不了,這種情況需要搭配shell腳本來搞定。


?ab的結果如下:

這份報告里面顯示了 目標服務器軟件是1.2.7的nginx,并發1000,請求了50000次,其中50000次請求有3700多個失敗了(不算優秀)。總共花了13秒多,一共交換了多少個字節,其中80%的請求反應只花費了100ms,18%的請求響應花費了1秒以上,剩余2%的響應用了3秒。


當我們需要提升并發值的時候,可能服務器在默認的配置下就會顯示大量的連接錯誤。這些主要是因為四點,1)socket需要高的內存,服務器本身硬件能力是否夠用;2)能否一口氣建立多個socket;3)建立了多個socket之后能否同時打開多個文件,同時文件能按socket返回,4)網卡給力,是萬兆以太網卡。


提升高并發性能以及優化nginx的招數如下:

1)#ulimit -n 20000:默認值是1024,這個值代表一個進程最多能開啟幾個文件;

2)/proc/sys/net/ipv4/tcp_tw_recycle 這個文件默認為0,改成1的話表示系統會快速回收tcp連接;

3)/proc/sys/net/ipv4/tcp_tw_reuse 這個文件默認為0,改成1的話表示系統快速利用tcp;

4)/proc/sys/net/ipv4/tcp_syncookies 這個文件默認是1,改成0的話表示系統不會進行“洪水防御”;

5)nginx.conf里的keep_timeout=0,即請求結果之后不保留tcp鏈接,因為在高并發之下,keepalive會占用大量的socket鏈接時間,當這個值改成0之后,通過/status看,waiting值會大幅度減少,http的響應頭里沒有keep_alive而是connection:close;(keep_alive這個是在http的響應頭看到的,這個東西指的是用戶在訪問forum.php的時候就會保持連接,然后只要是在規定時間內再訪問css,js等東西的時候,就可以繼續使用這個鏈接,這個對于大用戶的網站來說,弊端是有的,讓人趕快把坑讓出來。)

6)nginx.conf里的 event{}中的work_connections,默認是1024,可以臭不要臉的改成10240;

7)/proc/sys/net/core/somaxcon,監聽隊列的長度,默認值是128,可以改成50000左右。

8)nginx.conf的全局設定里添加一句話:worker_rlimit_nofile 10000;,指的是一個工作進程可以打開10000個文件。


壓力測試最好是多臺機器一起ab,二三臺就夠了,而不是一臺機器自己孤獨的壓,畢竟客戶端也是有瓶頸的。客戶端更改瓶頸的主要方式就是#ulimit -n和擴大somanconn的值。

轉載于:https://blog.51cto.com/chenx1242/1773210

總結

以上是生活随笔為你收集整理的压力测试与提升服务器能力的几个方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。