linux生產伺服器有關網路狀態的優化措施
本博文為老男孩linu培訓機構早期的培訓教案,特分享以供大家學習參考。
全部系列分為五篇文章,本博文為第五篇:
5.1高併發linux生產伺服器核心引數優化案例
高併發linux生產伺服器核心引數優化案例
說明:本優化適合apache,nginx,squid多種等web應用,特殊的業務也可能需要略作調整。
所謂核心優化,主要是在Linux系統中針對業務服務應用而進行的系統核心引數優化,優化並無特殊的標準,下面以常見生產環境linux的核心優化為例講解,僅供大家參考:
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 400065000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
#以下引數是對iptables防火牆的優化,防火牆不開會提示,可以忽略不理。
net.ipv4.ip_conntrack_max = 25000000
net.ipv4.netfilter.ip_conntrack_max=25000000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=120
將上面的核心引數值加入/etc/sysctl.conf檔案中,然後執行如下命令使之生效:sysctl -p
引數解釋找谷歌吧,大把大把。呵呵。
六、TCP 連線狀態
6.1三次握手建立連線
TCP是一個面向連線的協議,所以在連線雙方傳送資料之前,都需要首先建立一條連線。TCP連線的建立可以簡單的稱為三次握手,而連線的中止則可以叫做四次握手。
1.連線的建立
在建立連線的時候,客戶端首先向伺服器申請開啟某一個埠(用SYN段等於1的TCP報文),然後伺服器端發回一個ACK報文通知客戶端請求報文收到,客戶端收到確認報文以後再次發出確認報文確認剛才伺服器端發出的確認報文(繞口麼),至此,連線的建立完成。這就叫做三次握手。如果打算讓雙方都做好準備的話,一定要傳送三次報文,而且只需要三次報文就可以了。如果再加上TCP的超時重傳機制,那麼TCP就完全可以保證一個資料包被送到目的地。
1)客戶端傳送 SYN 訊息,其中包含伺服器的埠和客戶端的初始序列號(ISN)到伺服器(活動開啟)。
2)伺服器會傳送回SYN和ACK(其中包括的客戶端的 ISN + 1)。
3)客戶端傳送一個 ACK,(其中包括的伺服器的 ISN + 1)。
6.2四次揮手關閉連線
結束連線
TCP有一個特別的概念叫做half-close,這個概念是說,TCP的連線是全雙工(可以同時傳送和接收)連線,因此在關閉連線的時候,必須關閉傳和送兩個方向上的連線。客戶機給伺服器一個FIN為1的TCP報文,然後伺服器返回給客戶端一個確認ACK報文,並且傳送一個FIN報文,當客戶機回覆ACK報文後(四次握手),連線就結束了。
1)客戶端傳送一個FIN(活動收盤)。這是一個現在半關閉連線。客戶端不能再將資料傳送,但仍然能夠從伺服器接收資料。收到此 FIN 伺服器進入被動關閉狀態。
2)伺服器傳送一個ACK(這時客戶端 FIN 序列 + 1)
3)伺服器傳送其自身FIN。
4)客戶端傳送一個ACK(這是伺服器的 FIN 序列 + 1)。收到此 ACK 伺服器關閉連線。
6.3 win32 Netstat 輸出說明
狀態說明,Netstat 中所示:
狀態說明
------------ --------------------------------------------------------
SYN_SEND 指示活動開啟。
SYN_RECEIVED 伺服器只接收來自客戶端的 SYN。
建立的客戶端接收到伺服器的 SYN 和建立會話。
偵聽伺服器已準備好接受連線。
注: 請參閱文件 listen() 套接字呼叫。TCP 套接字偵聽狀態中的不會顯示-這是 NETSTAT 的限制。有關其他資訊,請參閱 Microsoft 知識庫中相應的文章:
134404NETSTAT。EXE 不顯示 TCP 偵聽套接字
FIN_WAIT_1 指示活動結束標記。
TIMED_WAIT 客戶端活動關閉後將進入此狀態。
CLOSE_WAIT 指示被動關閉。伺服器只是從客戶端接收到第一個 FIN。
FIN_WAIT_2 客戶端只是從伺服器接收其第一個 FIN 的確認。
當它傳送自己 FIN LAST_ACK 伺服器處於此狀態。
已關閉的伺服器從客戶端收到 ACK 並關閉連線。
例如,請考慮以下情形:
套接字應用程式已終止,但 Netstat 報告套接字處於 CLOSE_WAIT 狀態。這可能表明客戶端正確關閉 (已傳送 FIN) 的連線,但伺服器仍有開啟的套接字。這可能是一個例項(在所有執行緒或程式) 未關閉套接字的結果。
注: 很正常很長的一段時間內處於 TIME_WAIT 狀態有一個套接字。指定的時間是在 RFC793 中作為兩次最大段生存期 (MSL)。MSL 被指定為 2 分鐘。因此,套接字可能處於 TIME_WAIT 狀態長 4 分鐘。某些系統為 MSL 實施不同的值 (不超過 2 分鐘)。
來自http://support.microsoft.com/kb/137984/zh-cn
不容易啊,終於發完了,5篇文章竟然用了一個上午的時間。有不少內容還不夠細緻,請大家關注老男孩培訓或者老男孩的書籍吧。
本系列博文完整內容共5篇:
第一篇:詳解linux netstat輸出的網路連線狀態資訊
http://oldboy.blog.51cto.com/2561410/1184139
第二篇:庖丁解牛獲取連線狀態數的awk陣列命令
http://oldboy.blog.51cto.com/blog/2561410/1184165
第三篇:awk陣列命令經典生產實戰應用擴充
http://oldboy.blog.51cto.com/blog/2561410/1184177
第四篇:老男孩培訓第八節課前awk考試題案例(門戶面試題解答)
http://oldboy.blog.51cto.com/2561410/1184206
第五篇:linux生產伺服器有關網路狀態的優化措施(告一段落)
http://oldboy.blog.51cto.com/2561410/1184228
相關文章
- Tomcat 生產伺服器效能優化Tomcat伺服器優化
- 有關動態規劃的相關優化思想動態規劃優化
- 資料庫效能優化有哪些措施?資料庫優化
- Linux下用netstat檢視網路狀態、埠狀態Linux
- 網際網路商業模式的關鍵:打造核心產品與生態圈平臺模式
- 開發人員生產力狀態
- Linux 檢視網路連線狀態Linux
- linux啟動時間優化措施(4)Linux優化
- BAT呼籲建反網路“黑產”生態圈BAT
- 貼合生產的MySql優化思路MySql優化
- 檢測網路狀態
- 查詢網路狀態
- 工業網路交換機的保護措施有哪些?
- ss命令檢視網路狀態引數選項有哪些?linux運維Linux運維
- 優思學院|"豐田生產"和“福特生產”有哪些區別?
- 關於有狀態和無狀態會話bean的解釋 (轉)會話Bean
- mysql 優化:使用show status檢視MySQL伺服器狀態資訊MySql優化伺服器
- 關於WEB伺服器的安全措施有哪些?伺服器該如何防護?怎麼做好伺服器的安全措施?Web伺服器
- 如何防止網路監聽?防範措施有哪些?
- C++ 反彙編:關於Switch語句的優化措施C++優化
- 模擬網路狀態的利器TC
- 檢測網路狀態 - flutterFlutter
- iOS 檢測網路狀態iOS
- iOS判斷網路狀態iOS
- SAP-PP-CO 生產訂單狀態詳解
- Linux基礎命令---netstat顯示網路狀態Linux
- 在Linux中,如何檢視網路介面的狀態?Linux
- 有狀態和無狀態的區別
- 網路安全netstat監聽網路狀態。
- 網站常用的狀態碼有什麼?網路安全技學習什麼網站
- 一次生產的 JVM 優化案例JVM優化
- Eureka:生產環境優化總結。優化
- Android網路操作和優化相關Android優化
- Linux網路安全策略和保護措施Linux
- S/4HANA生產訂單的標準狀態和透明工廠原型狀態的對映原型
- 在Linux中,程序狀態有哪些?Linux
- Hadoop生態系統應用狀況大調查:網際網路篇!Hadoop
- KVM修改網路產生報錯