閱讀157 返回首頁    go 阿裏雲 go 技術社區[雲棲]


LAMP 係統性能調優之內核調優措施

LAMP


LAMP的一些快速的內核調優措施
大多數 Linux 發布版都定義了適當的緩衝區和其他 Transmission Control??Protocol(TCP)參數。可以修改這些參數來分配更多的內存,從而改進網絡性能。設置內核參數的方法是通過 proc 接口,也就是通過讀寫??/proc 中的值。幸運的是,sysctl 可以讀取 /etc/sysctl.conf 中的值並根據需要填充??/proc,這樣就能夠更輕鬆地管理這些參數。清單 2 展示在互聯網服務器上應用於 Internet 服務器的一些比較激進的網絡設置。
清單 2. 包含較為激進的網絡設置的 /etc/sysctl.conf

  • # Use TCP syncookies when needed??
  • net.ipv4.tcp_syncookies = 1??
  • # Enable TCP window scaling??
  • net.ipv4.tcp_window_scaling: = 1??
  • # Increase TCP max buffer size??
  • net.core.rmem_max = 16777216??
  • net.core.wmem_max = 16777216??
  • # Increase Linux autotuning TCP buffer limits??
  • net.ipv4.tcp_rmem = 4096 87380 16777216??
  • net.ipv4.tcp_wmem = 4096 65536 16777216??
  • # Increase number of ports available??
  • net.ipv4.ip_local_port_range = 1024 65000??

將這些設置添加到 /etc/sysctl.conf 的現有內容中。第一個設置啟用 TCP SYN cookie。當從客戶機發來新的 TCP??連接時,數據包設置了 SYN 位,服務器就為這個半開的連接創建一個條目,並用一個 SYN-ACK??數據包進行響應。在正常操作中,遠程客戶機用一個 ACK 數據包進行響應,這會使半開的連接轉換為全開的。有一種稱為 SYN 泛濫(SYN??flood) 的網絡攻擊,它使 ACK 數據包無法返回,導致服務器用光內存空間,無法處理到來的連接。SYN cookie??特性可以識別出這種情況,並使用一種優雅的方法保留隊列中的空間(細節參見 參考資料??一節)。大多數係統都默認啟用這個特性,但是確保配置這個特性更可靠。
啟用 TCP 窗口伸縮使客戶機能夠以更高的速度下載數據。TCP 允許在未從遠程端收到確認的情況下發送多個數據包,默認設置是最多 64 KB,在與延遲比較大的遠程客戶機進行通信時這個設置可能不夠。窗口伸縮會在頭中啟用更多的位,從而增加窗口大小。
後麵四個配置項增加 TCP 發送和接收緩衝區。這使應用程序可以更快地丟掉它的數據,從而為另一個請求服務。還可以強化遠程客戶機在服務器繁忙時發送數據的能力。
最後一個配置項增加可用的本地端口數量,這樣就增加了可以同時服務的最大連接數量。
在下一次引導係統時,或者下一次運行 sysctl -p /etc/sysctl.conf 時,這些設置就會生效。
通過文章的描述和代碼的分析,我們可以通過內核調優措施來對LAMP進行調優!

原文發布時間為:2011-03-20

本文來自雲棲社區合作夥伴“Linux中國”

最後更新:2017-05-10 19:32:00

  上一篇:go 《雲周刊》第121期:機器學習PAI眼中的《人民的名義》
  下一篇:go 5月10日雲棲精選夜讀:阿裏專家直擊前端盛會JSConf2017 Day2:見證Moment.js精彩分享