優化TCP IP連線,減少TIME WAIT

2021-08-27 10:36:37 字數 1236 閱讀 5118

(一)tcp/ip連線的狀態和對應的個數:

# netstat -an | awk '/^tcp/ end '

(二)提公升伺服器的負載能力:

# vim /etc/sysctl.conf

然後,在這個檔案中,加入下面的幾行內容:

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_fin_timeout = 5

最後輸入下面的命令,讓核心引數生效:

# /sbin/sysctl -p

引數說明:

(三)優化tcp/ip的可使用埠範圍,進一步提公升伺服器的併發能力(針對tcp流量比較大的伺服器)

# vim /etc/sysctl.conf,新增如下引數:

net.ipv4.tcp_keepalive_time = 1200

net.ipv4.ip_local_port_range = 10000 65000

net.ipv4.tcp_max_syn_backlog = 8192

net.ipv4.tcp_max_tw_buckets = 5000

引數說明:

(四)修改 linux kernel 的 tcp time wait的時間(適用於大量短連線的情況)

在 $kernel/include/net/tcp.h裡面,有下面的行:

#define tcp_timewait_len (60*hz) /* how long to wait to destroy time-wait

* state, about 60 seconds */

而這個巨集是真正控制 tcp time_wait 狀態的超時時間的。如果我們希望減少 time_wait 狀態的數目(從而節省一點點核心操作時間),那麼可以把這個數值設定低一些,根據我們的測試,設定為 10 秒比較合適,也就是把上面的修改為:

#define tcp_timewait_len (10*hz) /* how long to wait to destroy time-wait

* state, about 60 seconds */

然後重新編譯核心,重啟系統即可發現短連線造成的time_wait狀態大大減少:

netstat -ant | grep -i time_wait |wc -l

一般情況都可以至少減少2/3。也能相應提高系統應對短連線的速度

mybatis效能優化之減少資料庫連線

做效能優化的最重要的功能就是減少資料庫的互動,很多程式設計師一般在開發的時候只考慮簡單的實現功能,不管業務簡單複雜,只要實現就行。mybatis有個重要的功能就是考慮在聯合查詢時技巧 jdbctype varchar select t.id,t.name,s.t s id,s.sid,s.sname...

mybatis效能優化之減少資料庫連線

做效能優化的最重要的功能就是減少資料庫的互動,很多程式設計師一般在開發的時候只考慮簡單的實現功能,不管業務簡單複雜,只要實現就行。mybatis有個重要的功能就是考慮在聯合查詢時技巧 jdbctype varchar select t.id,t.name,s.t s id,s.sid,s.sname...

mybatis效能優化之減少資料庫連線

做效能優化的最重要的功能就是減少資料庫的互動,很多程式設計師一般在開發的時候只考慮簡單的實現功能,不管業務簡單複雜,只要實現就行。mybatis有個重要的功能就是考慮在聯合查詢時技巧 select t.id,t.name,s.t s id,s.sid,s.sname from teacher t j...