最佳化Linux生產伺服器的經驗之談(1)

來源:互聯網
上載者:User

BKJIA獨家特稿】如何最佳化自己的Linux生產伺服器?本文結合實際的工作經驗,總結了最佳化Linux生產伺服器的九大要點。如果有些方法您尚未採用,不妨一試。

一、時間同步

生產環境下的伺服器對時間的要求是精準的,我的郵件伺服器的dovecot服務,以前經常因為時間問題自動停止服務,建議編輯

vim /etc/crontab

至今每天跟ntp時間伺服器自動對時一次:

14 04 * * * root /usr/sbin/ntpdate ntp.api.bz > /dev/null 2>&1

參考閱讀:Linux新手學堂 Crontab命令的實用方法

二、啟用核心中的SYN cookie保護

echo "1" > /proc/sys/net/ipv4/tcp_syncookies

執行以下命令使核心配置立馬生效:

/sbin/sysctl -p

參考閱讀:SYN 攻擊原理以及防範技術

三、Squid伺服器變慢的解決方案

如果自己的生產伺服器是squid快取服務器,當發現系統變慢或開啟網頁變慢時可輸入下列命令:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

這條命令可以把當前系統的網路連接狀態分類匯總,由此分析出系統變慢的原因。

BKJIA編輯精選:七大實用命令列工具 玩轉Linux網路設定

Linux下高並發的Squid伺服器,TCP TIME_WAIT通訊端數量經常達到兩、三萬,伺服器很容易被拖死。通過修改Linux核心參數,可以減少Squid伺服器的TIME_WAIT通訊端數量。

vim /etc/sysctl.conf

增加以下幾行:

 
  1. net.ipv4.tcp_fin_timeout = 30 
  2. net.ipv4.tcp_keepalive_time = 1200 
  3. net.ipv4.tcp_tw_reuse = 1 
  4. net.ipv4.tcp_tw_recycle = 1 
  5. net.ipv4.ip_local_port_range = 1024 65000 
  6. net.ipv4.tcp_max_syn_backlog = 8192 
  7. net.ipv4.tcp_max_tw_buckets = 5000 
  8.  

說明:

net.ipv4.tcp_tw_reuse = 1 表示開啟重用。允許將TIME-WAIT sockets重新用於新的TCP串連,預設為0,表示關閉;

net.ipv4.tcp_tw_recycle = 1 表示開啟TCP串連中TIME-WAIT sockets的快速回收,預設為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 表示用於向外串連的連接埠範圍。預設情況下很小,改為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

四、Nginx伺服器的情況

如果伺服器是Nginx負載平衡器或用於Nginx+PHP5的web伺服器,此二項也必須開啟:

 
  1. net.ipv4.tcp_tw_reuse = 1 #允許將TIME-WAIT sockets重新用於新的TCP串連  
  2. net.ipv4.tcp_tw_recycle = 1 #開啟TCP串連中TIME-WAIT sockets的快速回收  
  3.  

執行以下命令使核心配置立馬生效:

/sbin/sysctl -p


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.