成都創(chuàng)新互聯(lián)專業(yè)為企事業(yè)單位提供成都網(wǎng)站建設(shè)公司、成都網(wǎng)站設(shè)計,網(wǎng)站優(yōu)化、微信開發(fā)、手機(jī)網(wǎng)站建設(shè)、域名注冊、虛擬主機(jī)、企業(yè)郵箱等互聯(lián)網(wǎng)基礎(chǔ)服務(wù)。從2013年成立,我們先后簽約近千家中小型企業(yè)和科技發(fā)展公司的網(wǎng)站建設(shè)和網(wǎng)站推廣項目。通過多年的創(chuàng)新發(fā)展,已發(fā)展成為專業(yè)能力較強(qiáng),服務(wù)較好的建站公司。
如圖顯示了基本的優(yōu)化思路,能夠更多的socket連接和能打開更多的文件。
1、從打開文件的角度
系統(tǒng)層面:
先用ulimit -n看下默認(rèn)一個進(jìn)程能夠打開的文件數(shù)默認(rèn)是128,ulimit -n 50000更改打開文件數(shù)為50000
nginx層面:
在nginx中配置worker_rlimit_nofile(圖中參數(shù)有些問題) worker_rlimit_nofile 20000
2、從建立sorket連接角度
系統(tǒng)層面:
a、更改最大連接數(shù):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; 長連接在高并發(fā)情況下需要慎用。會讓更多的請求處于等待狀態(tài)
實驗環(huán)境:拿vmware開了一個虛擬機(jī) 6g內(nèi)存 20g硬盤 4個核心
實驗結(jié)果:
在未優(yōu)化之前拿ab測試3000并發(fā)的時候還行 但是超過3000并發(fā)有大量失敗的情況
優(yōu)化后10000并發(fā)0個失敗 80%在一秒多響應(yīng)完成