LAMPcookie
LAMP的一些快速的內核調優措施網絡
大多數 Linux 發佈版都定義了適當的緩衝區和其餘 Transmission Control Protocol(TCP)參數。能夠修改這些參數來分配更多的內存,從而改進網絡性能。設置內核參數的方法是經過 proc 接口,也就是經過讀寫 /proc 中的值。幸運的是,sysctl 能夠讀取 /etc/sysctl.conf 中的值並根據須要填充 /proc,這樣就可以更輕鬆地管理這些參數。清單 2 展現在互聯網服務器上應用於 Internet 服務器的一些比較激進的網絡設置。架構
清單 2. 包含較爲激進的網絡設置的 /etc/sysctl.conftcp
- # 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 發送和接收緩衝區。這使應用程序能夠更快地丟掉它的數據,從而爲另外一個請求服務。還能夠強化遠程客戶機在服務器繁忙時發送數據的能力。網站
最後一個配置項增長可用的本地端口數量,這樣就增長了能夠同時服務的最大鏈接數量。spa
在下一次引導系統時,或者下一次運行 sysctl -p /etc/sysctl.conf 時,這些設置就會生效。
經過文章的描述和代碼的分析,咱們能夠經過內核調優措施來對LAMP進行調優!
【編輯推薦】