淘寶tengine
1) 安裝及性能優(yōu)化(健康檢查模塊使用)
#相關(guān)下載地址:
?? wget http://tengine.taobao.org/download/tengine-2.1.0.tar.gz
#jemalloc 內(nèi)存管理
?? git clone https://github.com/jemalloc/jemalloc.git
#編譯項目(執(zhí)行腳本時會生成configure文件坠狡,tengine編譯的時候就可以加載)
cd jemalloc
./autogen.sh
#tengine編譯配置參數(shù)
./configure --prefix=/usr/local/tengine \
--with-http_stub_status_module \
--with-openssl=/usr/local/src/openssl-1.0.2l \
--with-jemalloc=/usr/local/src/jemalloc \
--with-pcre=/usr/local/src/pcre-8.41 \
--with-zlib=/usr/local/src/zlib-1.2.11
#nginx配置信息:
upstream websocket {
ip_hash;
server localhost:3000;
server localhost:3001;
server localhost:3002;
check interval=3000 rise=2 fall=5 timeout=1000 type=http;
}
為tengine配置一下系統(tǒng)的TCP設(shè)置凭峡,優(yōu)化一下
/etc/syscrl.conf net.ipv4.tcp_syncookies=1? #表示開啟SYNCookies。當出現(xiàn)SYN等待隊列溢出時际看,啟用cookies來處理猪腕,可防范少量SYN攻擊鸵膏,默認為0朴艰,表示關(guān)閉霎褐;
net.ipv4.tcp_tw_reuse=1? ? ? #表示開啟重用址愿。允許將TIME-WAITsockets重新用于新的TCP連接,默認為0冻璃,表示關(guān)閉响谓;
net.ipv4.tcp_tw_recycle=1? #表示開啟TCP連接中TIME-WAITsockets的快速回收,默認為0省艳,表示關(guān)閉娘纷。
net.ipv4.tcp_fin_timeout #修改系統(tǒng)默認的TIMEOUT時間s
api/fpm/init.d.php-fpm net.ipv4.tcp_fin_timeout=1 #表示如果套接字由本端要求關(guān)閉,這個參數(shù)決定了它保持在FIN-WAIT-2狀態(tài)的時間
net.ipv4.tcp_keepalive_time=1200 #表示當keepalive起用的時候,tcp發(fā)送keepalive消息的頻度跋炕,缺省是2小時赖晶,改為20分鐘 net.ipv4.tcp_mem=94500000915000000927000000 #當tcp使用低于該值的內(nèi)存頁面數(shù)時,tcp不會考慮釋放內(nèi)存
net.ipv4.tcp_tw_reuse=1 #表示開啟重用.允許將TIME-WAITsockets重新用于新的TCP連接,默認為0,表示關(guān)閉
net.ipv4.tcp_timestamps=0 #時間戳可以避免序列號的卷繞辐烂。1個1Gbps的鏈路肯定會遇到以前用過的序列號遏插。時間戳能讓內(nèi)核接受這種“異常”的數(shù)據(jù)包纠修,這里需要將其關(guān)閉