背景:最近要寫一部分關于linux調優的文檔,此處隻列出一些常用調優選項,随時備查。參考了南非螞蟻的文檔。
1、關注ulimit指令
ulimit –n(最大打開檔案數)
常見案例日志:java.net.SocketException: Too many openfiles
相關配置檔案:
/etc/security/limits.conf
/etc/security/limits.d/90-nproc.conf(centos6.x版本)
* soft nofile 65536
* hard nofile 65536
ulimit -u(最大使用者數)
* soft nproc 65536
root soft nproc unlimited
2、系統核心參數調優
常見案例日志:kernel: ip_conntrack: table full, droppingpacket
ip_conntrack_max參數
/proc/sys/net/ipv4/netfilter/ip_conntrack_max 或者
/proc/sys/net/ipv4/ip_conntrack_max (centos5.x)
/proc/sys/net/netfilter/nf_conntrack_max(centos6.x)
在/etc/sysctl.conf加入
net.ipv4.netfilter.ip_conntrack_max = 655360(centos5.x)
net.nf_conntrack_max = 100000(centos6.x)
swappiness參數
表示使用swap的機率,此值越大,表示使用swap的機率越大。推薦配置如下:
檢視目前配置:cat /proc/sys/vm/swappiness
添加如下内容到/etc/sysctl.conf
vm.swappiness=10
表示當記憶體使用率超過(100-10)90%時,才開始使用swap。
使配置檔案生效
sysctl -p
我們線上web伺服器配置參考(每天3億的量)
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_max_syn_backlog = 20000
net.core.netdev_max_backlog = 32768
net.core.somaxconn = 32768
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_keepalive_time = 120
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_max_tw_buckets = 80000
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_max_tw_buckets = 500000
net.ipv4.tcp_keepalive_time = 60
net.nf_conntrack_max = 2097152
3.精簡系統服務和開機程序
原則:隻開啟需要的。
線上伺服器建議開啟的服務
crond,network,syslog,sshd、iptables、udev-post、sysstat
快捷開啟方法:
先關閉所有
for serv in `chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig--level 3 $serv off;done
然後開啟需要的服務:
for serv in `crond network syslog sshd iptables udev-post sysstat`;dochkconfig --level 3 $serv on;done
4、可删除的系統使用者群組
#删除不必要的使用者
userdel adm
userdel lp
userdel sync
userdel shutdown
userdel halt
userdel news
userdel uucp
userdel video
userdel games
userdel gopher
userdel ftp
#删除不必要的群組
groupdel adm
groupdel lp
groupdel news
groupdel uucp
groupdel games
groupdel dip
也可以直接用for循環來删除.
for i in adm lp sync shutdown halt news uucp video games gopher ftp; do userdel $i;done
for i in adm lp sync shutdown halt news uucp video games gopher ftp; do groupdel $i;done
5.Linux下性能評估工具彙總
Cpu: vmstat、 iostat、 uptime
Vmstat 2 3
每2秒更新一次cpu輸出資訊,輸出3次。
Iostat–c 2 3 (需要安裝sysstat包,參數-c顯示CPU狀态, -d顯示磁盤使用狀态)
Uptime
系統現在時間、上次開機到現在運作多長時間、目前登入使用者數、系統在1,5,15分鐘内的平均負載.
記憶體: free、sar/pidstat
Free –m
以M為機關顯示目前記憶體的使用狀況。
sar/pidstat(它們有三個公用參數: -u 顯示cpu資訊; -r顯示記憶體資訊;-d顯示磁盤資訊)
sar –u 3 5
輸出cpu 3秒内的狀态,輸出5次.
Pidstat –r –p 1 3 5
輸出程序号是1的記憶體3秒内的狀态,輸出5次.
磁盤: iostat 、 pidstat、sar
Iostat -d 2 3
每2秒更新一次磁盤輸出資訊,輸出3次。
Pidstat –d –p 556 3 5
輸出程序号是556的磁盤3秒内的狀态,輸出5次.
Sar –d 3 5
輸出磁盤3秒内的狀态,輸出5次.
網絡:ping 、 netstat 、mtr/traceroute(yum install mtr traceroute包)、dig、nslookup
系統性能的一個參考表
<a href="http://s5.51cto.com/wyfs02/M02/80/DC/wKioL1dEFtnjGRs7AAFGyCpY1wU473.png" target="_blank"></a>
6. 檔案系統的選擇
Ext2:linux下标準的檔案系統,無日志記錄(inode)功能。
Ext3:在ext2的基礎上增加了日志記錄功能(inode),僅支援32000個子目錄.
Ext4:ext3的後續更新版本,核心2.6.28開始支援,無限子目錄支援,快速fsck
Xfs: 高性能的檔案系統,核心3.10開始預設支援。
建議:讀操作頻繁,小檔案衆多,首選ext4,接下來是xfs,ext3.
寫操作頻繁,首選xfs,接下來是ext4,ext3.
對性能要求不高,對資料安全要求不高的業務,ext3可以選擇。
本文轉自pizibaidu 51CTO部落格,原文連結:http://blog.51cto.com/pizibaidu/1775433,如需轉載請自行聯系原作者