<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    優化Linux下的內核TCP參數以提高系統性能

     內核的優化跟服務器的優化一樣,應本著穩定安全的原則。下面以64位的Centos5.5下的Squid服務器為例來說明,待客戶端與服務器端建立TCP/IP連接后就會關閉SOCKET,服務器端連接的端口狀態也就變為TIME_WAIT了。那是不是所有執行主動關閉的SOCKET都會進入TIME_WAIT狀態呢?有沒有什么情況使主動關閉的SOCKET直接進入CLOSED狀態呢?答案是主動關閉的一方在發送最后一個ACK后就會進入TIME_WAIT狀態,并停留2MSL(Max Segment LifeTime)時間,這個是TCP/IP必不可少的,也就是“解決”不了的。

      TCP/IP的設計者如此設計,主要原因有兩個:

      防止上一次連接中的包迷路后重新出現,影響新的連接(經過2MSL時間后,上一次連接中所有重復的包都會消失)。

      為了可靠地關閉TCP連接。主動關閉方發送的最后一個ACK(FIN)有可能會丟失,如果丟失,被動方會重新發FIN,這時如果主動方處于CLOSED狀態,就會響應RST而不是ACK。所以主動方要處于TIME_WAIT狀態,而不能是CLOSED狀態。另外,TIME_WAIT并不會占用很大的資源,除非受到攻擊。

      在Squid服務器中可輸入查看當前連接統計數的命令,如下所示:

  • netstat -n| awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'  
  • LAST_ACK 14  
  • SYN_RECV 348  
  • ESTABLISHED 70  
  • FIN_WAIT1 229  
  • FIN_WAIT2 30  
  • CLOSING 33  
  • TIME_WAIT 18122
  •   CLOSED:無連接是活動的或正在進行中的。

      LISTEN:服務器在等待進入呼叫。

      SYN_RECV:一個連接請求已經到達,等待確認。

      SYN_SENT:應用已經開始,打開一個連接。

      ESTABLISHED:正常數據傳輸狀態。

      FIN_WAIT1:應用說它已經完成。

      FIN_WAIT2:另一邊已同意釋放。

      CLOSING:兩邊同時嘗試關閉。

      TIME_WAIT:另一邊已初始化一個釋放。

      LAST_ACK:等待所有分組死掉。

      也就是說,這條命令可以把當前系統的網絡連接狀態分類匯總。

      在Linux下高并發的Squid服務器中,TCP TIME_WAIT套接字數量經??蛇_兩三萬,服務器很容易就會被拖死。不過,我們可以通過修改Linux內核參數來減少Squid服務器的TIME_WAIT套接字數量,命令如下所示:

    vim /etc/sysctl.conf

      然后,增加以下參數:

  • net.ipv4.tcp_fin_timeout = 30 
  • net.ipv4.tcp_keepalive_time = 1200 
  • net.ipv4.tcp_syncookies = 1 
  • net.ipv4.tcp_tw_reuse = 1 
  • net.ipv4.tcp_tw_recycle = 1 
  • net.ipv4.ip_local_port_range = 1024 65000  
  • net.ipv4.tcp_max_syn_backlog = 8192 
  • net.ipv4.tcp_max_tw_buckets = 5000



  • 其中:

      net.ipv4.tcp_syncookies=1表示開啟SYN Cookies。當出現SYN等待隊列溢出時,啟用cookie來處理,可防范少量的SYN攻擊。默認為0,表示關閉。

      net.ipv4.tcp_tw_reuse=1表示開啟重用。允許將TIME-WAIT套接字重新用于新的TCP連接。默認為0,表示關閉。

      net.ipv4.tcp_tw_recycle=1表示開啟TCP連接中TIME-WAIT套接字的快速回收。默認為0,表示關閉。

      net.ipv4.tcp_fin_timeout=30表示如果套接字由本端要求關閉,這個參數決定了它保持在FIN-WAIT-2狀態的時間。

      net.ipv4.tcp_keepalive_time=1200表示當keepalive啟用時,TCP發送keepalive消息的頻度。默認是2小時,這里改為20分鐘。

      net.ipv4.ip_local_port_range=1024 65000表示向外連接的端口范圍。默認值很?。?2768~61000,改為1024~65000。

      net.ipv4.tcp_max_syn_backlog=8192表示SYN隊列的長度,默認為1024,加大隊列長度為8192,可以容納更多等待連接的網絡連接數。

      net.ipv4.tcp_max_tw_buckets=5000表示系統同時保持TIME_WAIT套接字的最大數量,如果超過這個數字,TIME_WAIT套接字將立刻被清除并打印警告信息。默認為180000,改為5000。對于Apache、Nginx等服務器,前面介紹的幾個參數已經可以很好地減少TIME_WAIT套接字數量,但是對于Squid來說,效果卻不大。有了此參數就可以控制TIME_WAIT套接字的最大數量,避免Squid服務器被大量的TIME_WAIT套接字拖死。

      執行以下命令使內核配置立即生效:

    /sbin/sysctl -p

      如果是用于Apache或Nginx等的Web服務器,或Nginx的反向代理,則只需要更改以下幾項即可:

  • net.ipv4.tcp_syncookies=1 
  • net.ipv4.tcp_tw_reuse=1 
  • net.ipv4.tcp_tw_recycle = 1 
  • net.ipv4.ip_local_port_range = 1024 65000
  •   執行以下命令使內核配置立即生效: /sbin/sysctl -p如果是郵件服務器,則建議內核方案如下:

  • net.ipv4.tcp_fin_timeout = 30 
  • net.ipv4.tcp_keepalive_time = 300 
  • net.ipv4.tcp_tw_reuse = 1 
  • net.ipv4.tcp_tw_recycle = 1 
  • net.ipv4.ip_local_port_range = 5000 65000  
  • kernel.shmmax = 134217728
  •   執行以下命令使內核配置立即生效: /sbin/sysctl -p當然這些都只是最基本的更改,大家還可以根據自己的需求來更改內核的設置,同樣也要本著穩定的原則,如果服務器不穩定的話,一切工作和努力都會白費。如果以上優化仍無法滿足你的要求,有可能你需要定制你的服務器內核或升級服務器硬件。至于服務的配置優化,超出了本章的內容,大家可根據自己的需求有針對性地進行更改。

    posted on 2011-12-08 14:30 順其自然EVO 閱讀(1144) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2011年12月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产偷国产偷亚洲清高APP| 中文字幕第13亚洲另类| 亚洲综合小说久久另类区| 羞羞视频免费网站在线看| 亚洲色欲久久久久综合网| 一级人做人爰a全过程免费视频| 亚洲&#228;v永久无码精品天堂久久| 中文字幕a∨在线乱码免费看 | 亚洲国产精品一区二区三区在线观看| 亚洲成人免费在线观看| 久久精品国产亚洲AV大全| 亚洲免费闲人蜜桃| 亚洲色精品VR一区区三区| 卡一卡二卡三在线入口免费| 国产成人精品日本亚洲语音| 亚洲成A人片在线观看中文| 国产精品一区二区三区免费| 亚洲乱亚洲乱妇无码麻豆| 一区二区免费视频| 亚洲午夜精品在线| 国产无遮挡又黄又爽免费视频| 黄色三级三级免费看| 精品国产综合成人亚洲区| 日韩免费的视频在线观看香蕉| 亚洲熟妇无码爱v在线观看| 日韩不卡免费视频| 美女被爆羞羞网站免费| 亚洲精品无码成人AAA片| 永久黄色免费网站| 在线亚洲v日韩v| 亚洲精品无码永久中文字幕| 黄网站色在线视频免费观看| 亚洲AV无码一区二区三区久久精品| 亚洲国产成人精品女人久久久| 一级毛片免费观看| 亚洲av无码成人精品国产| 国产亚洲av片在线观看16女人| 无码日韩人妻av一区免费| www成人免费视频| 亚洲六月丁香六月婷婷蜜芽| 亚洲国产激情一区二区三区|