您好,登錄后才能下訂單哦!
如圖顯示了基本的優化思路,能夠更多的socket連接和能打開更多的文件。
1、從打開文件的角度
系統層面:
先用ulimit -n看下默認一個進程能夠打開的文件數默認是128,ulimit -n 50000更改打開文件數為50000
nginx層面:
在nginx中配置worker_rlimit_nofile(圖中參數有些問題) worker_rlimit_nofile 20000
2、從建立sorket連接角度
系統層面:
a、更改最大連接數:echo 20000 > /proc/sys/net/core/somaxconn
b、加快tcp連接的回收 echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
c、空的tcp是否允許回收利用 echo 1 /proc/sys/net/ipv4/tcp_tw_reuse
d、不做洪水抵御 echo 0 > proc/sys/net/ipv4/tcp_syncookies
nginx層面:
worker_connections 20000;
keepalive_timeout 0; 長連接在高并發情況下需要慎用。會讓更多的請求處于等待狀態
實驗環境:拿vmware開了一個虛擬機 6g內存 20g硬盤 4個核心
實驗結果:
在未優化之前拿ab測試3000并發的時候還行 但是超過3000并發有大量失敗的情況
優化后10000并發0個失敗 80%在一秒多響應完成
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。