最佳化:linux主機

G8bao7發表於2015-02-10
CPU方面 
關閉電源保護模式
記憶體
修改 /etc/sysctl.conf 後,使用 sysctl -p 來使得引數生效

關閉OOM
        // echo "1" > /proc/sys/vm/oom-kill, free -l 檢視 low memory,  `cat /proc/sys/vm/lowmem_reserve_ratio`((DMA Normal HighMem))
          
echo "vm.oom-kill = 0" >> /etc/sysctl.conf                
echo "vm.overcommit_memory=2" >> /etc/sysctl.conf
儘量不使用SWAP,但不能關閉. 原因:centos 7 之前,推薦設為0,但新版本中,會導致OOM(記憶體溢位),kernel會殺掉記憶體最多的程式(mysqld)         
echo "vm.swappiness = 1" >> /etc/sysctl.conf
儘量回收記憶體
echo "vm.zone_reclaim_mode=0" >> /etc/sysctl.conf 
作業系統關閉numa
echo "numa=off" >> /etc/grub.conf
增大每個訊號發生時的最大系統運算元目。提高高併發效能
echo "kernel.sem=250 32000 100 128″>>/etc/sysctl.conf

檔案系統: 
用noatime,nobarrier掛載系統 
檔案系統的mount引數上加上noatime,nobarrier兩個選項。
nobarrier
對於ext3, ext4和 reiserfs檔案系統可以在mount時指定barrier=0;對於xfs可以指定nobarrier選項。
IO排程策略修改為deadline。
實時設定: 
echo deadline >/sys/block/sda/queue/scheduler
永久生效:
/etc/grub.conf的kernel行最後新增elevator=deadline
echo "elevator=deadline" >> /etc/grub.conf

關閉 OOM
    # echo "1" > /proc/sys/vm/oom-kill
    在 /etc/sysctl.conf 中加入
    vm.oom-kill = 0

tcp 
# 表示開啟SYN Cookies。當出現SYN等待佇列溢位時,啟用cookies來處理,可防範少量SYN攻擊,預設為0,表示關閉;
net.ipv4.tcp_syncookies = 1
# 時間戳可以避免序列號的卷繞。一個1Gbps 的鏈路肯定會遇到以前用過的序列號。時間戳能夠讓核心接受這種“異常”的資料包。這裡需要將其關掉。
net.ipv4.tcp_timestamps = 1
# 表示開啟TCP連線中TIME-WAIT sockets的快速回收,預設為0,表示關閉;
net.ipv4.tcp_tw_recycle = 1
# 表示開啟重用。允許將TIME-WAIT sockets重新用於新的TCP連線,預設為0,表示關閉;
net.ipv4.tcp_tw_reuse = 1
# 如果套接字由本端要求關閉,保持在FIN-WAIT-2 狀態的時間。  
net.ipv4.tcp_fin_timeout = 30
### 一個tcp連線在空閒 tcp_keepalive_time 秒後,發起keepalive探測,超過 tcp_keepalive_intvl * tcp_keepalive_probes (秒)沒有回應,則被中斷 ###
# 當keepalive起用的時候,TCP傳送keepalive訊息的頻度。預設是2小時。
net.ipv4.tcp_keepalive_time = 120
# 當探測沒有確認時,探測包傳送間隔。預設是75秒。
net.ipv4.tcp_keepalive_intvl = 30
# 當探測沒有確認時,探測包傳送次數。預設是9
net.ipv4.tcp_keepalive_probes = 3


沃趣:LINUX上MYSQL最佳化三板斧  

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26250550/viewspace-1432004/,如需轉載,請註明出處,否則將追究法律責任。

相關文章