1. 程式人生 > >centos6 內核優化

centos6 內核優化

如果 字數 保持 ignore comm nginx 能力 系統負載 共享內存

CPU E5-2630 *2 內存64G 單服務器5萬頻發

vi /etc/sysctl.conf

net.ipv4.ip_forward = 0 # 路由轉發
net.ipv4.conf.all.rp_filter= 1 #啟用源路由核查功能
net.ipv4.conf.default.rp_filter = 0 #禁用所有IP源路由
kernel.sysrq = 0 #使用sysrq組合鍵是了解系統目前運行情況,為安全起見設為0關閉
kernel.core_uses_pid = 1 #控制core文件的文件名是否添加pid作為擴展
net.ipv4.tcp_syncookies = 1 #開啟SYN 防禦SYN

kernel.msgmnb = 65536 #每個消息隊列的大小限制
kernel.msgmax = 65536 #整個系統最大消息隊列數量限制
kernel.shmmax = 68719476736 #單個共享內存段的大小限制,計算公式64G102410241024(字節)
kernel.shmall = 4294967296 #所有內存大小(單位:頁,1頁 = 4Kb),計算公式16G
102410241024/4KB(頁)
【優化】
net.ipv4.tcp_synack_retries = 2 #對於遠端SYN連接請求,內核會發送SYN+ACK數據包來確認收到了上一個SYN連接請求包,然後等待遠端的確認(ack數據包)。該值則指定了內核會向遠端發送tcp_synack_retires次SYN+ACK數據包。默認設定值是5,可以調整為2
net.ipv4.tcp_syn_retries = 2 #新建TCP連接請求,需要發送一個SYN包,該值決定內核需要嘗試發送多少次syn連接請求才決定放棄建立連接。默認值是5. 對於高負責且通信良好的物理網絡而言,調整為2
vm.overcommit_memory = 1 #表示內核在分配內存時候做檢查的方式,函數直接 return 0,分配成功。
net.ipv4.tcp_max_syn_backlog = 1638400 #SYN隊列的長度,可容納更多等待連接的網絡連接數
net.core.somaxconn = 32768 #增加該值有助於網絡性能
net.core.netdev_max_backlog = 20000 #表示進入包的最大設備隊列
net.ipv4.tcp_max_tw_buckets = 6000 #系統同時保持TIME_WAIT套接字的最大數量,如果超過這個數字,TIME_WAIT套接字將立刻被清除並打印警告信息。對於Apache、Nginx等服務器,減少TIME_WAIT套接字數量
net.ipv4.conf.all.send_redirects = 0 #關閉發送重定向信息包,用戶使用IP重定向修改路由表
net.ipv4.conf.all.accept_redirects = 0 #關閉接收重定向信息包
net.ipv4.tcp_fin_timeout = 10 #表示如果套接字由本端要求關閉,這個參數決定了它保持在FIN-WAIT-2狀態的時間。
net.ipv4.tcp_keepalive_time = 90 #TCP發送keepalive消息的頻度
net.ipv4.ip_local_port_range = 1024 65000 #外部連接的端口範圍
net.ipv4.tcp_window_scaling = 1 #啟用該功能,可以使tcp/ip滑動窗口大小增大數個數量級,從而提高數據傳輸的能力
net.ipv4.icmp_echo_ignore_all = 0 #禁止ICMP包通行
net.ipv4.icmp_echo_ignore_broadcasts = 1 #開啟忽略icmp ping廣播包,避免放大***
net.ipv4.tcp_sack = 0 (1表示啟用),通過有選擇地應答亂序接收到的報文來提高性能,讓發送者只發送丟失的報文段,(對於廣域網通信來說)這個選項應該啟用,但是會增加對CPU的占用。
net.ipv4.tcp_keepalive_probes = 3 #probe 3次(每次30秒)不成功,內核才徹底放棄
net.ipv4.tcp_keepalive_intvl = 30 #probe (每次30秒)
net.ipv4.tcp_retries2 = 5 #TCP失敗重傳次數,默認值15,意味著重傳15次才徹底放棄.可減少到5,以盡早釋放內核資源.
net.ipv4.tcp_max_orphans = 262144 #該參數用於設定系統中最多允許存在多少tcp套接字不被關聯到任何一個用戶文件句柄上。如果超過這個數字,沒有與用戶文件句柄關聯的tcp套接字符將立即被復位,同時給出警告信息。這個限制只是為了防止簡單的DoS工具。一般在系統內存比較充足的情況下,可以增大這個參數的賦值
net.ipv4.tcp_orphan_retries = 3 #關閉TCP連接之前重試多少次。缺省值是7,減少套接字消耗很多重要的資源。
net.ipv4.tcp_reordering = 5 #該文件表示TCP流中重排序的數據報最大數量,缺省3
net.ipv4.tcp_retrans_collapse = 0 #禁用兼容打印機設置的“將錯就錯”選項
net.ipv4.tcp_wmem = 51200 131072 4194304 #為自動調優定義每個 socket 使用的內存。第一個值是為 socket 的發送緩沖區分配的最少字節數,第二個值是默認值(該值會被 wmem_default 覆蓋),緩沖區在系統負載不重的情況下可以增長到這個值,第三個值是發送緩沖區空間的最大字節數(該值會被 wmem_max 覆蓋)
net.ipv4.tcp_rmem = 51200 131072 4194304 #與 tcp_wmem 類似,不過它表示的是為自動調優所使用的接收緩沖區的值。
net.ipv4.tcp_timestamps = 1 # 即啟用時間戳,如果應大量用戶nat端口重復使用的頻率高,無法訪問時因修改為0關閉
net.ipv4.tcp_tw_reuse = 1 #開啟重用允許將TIME-WAIT sockets重新用於新的TCP
net.ipv4.tcp_tw_recycle = 1 #開啟TCP連接中TIME-WAIT sockets的快速回收

net.netfilter.nf_conntrack_max = 655350 #修改最大連接數
net.netfilter.nf_conntrack_tcp_timeout_established = 90 #縮短established時間
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 30 #關閉的等待時間
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 60 #發送包時間
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 60 #等待時間

打開文件描述符的個數
echo ‘* - nofile 65535‘ >> /etc/security/limits.conf

centos6 內核優化