優(yōu)化 Linux 服務器的 9 個小技巧,讓 Linux 服務器效率起來
至今每天跟ntp時間服務器自動對時一次:
14 04 * * * root /usr/sbin/ntpdate ntp.api.bz > /dev/null 2>&1
執(zhí)行以下命令使內(nèi)核配置立馬生效:
/sbin/sysctl -p
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
這條命令可以把當前系統(tǒng)的網(wǎng)絡連接狀態(tài)分類匯總,由此分析出系統(tǒng)變慢的原因。
Linux下高并發(fā)的Squid服務器,TCP TIME_WAIT套接字數(shù)量經(jīng)常達到兩、三萬,服務器很容易被拖死。通過修改Linux內(nèi)核參數(shù),可以減少Squid服務器的TIME_WAIT套接字數(shù)量。
vim /etc/sysctl.conf
增加以下幾行:
net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_max_tw_buckets = 5000
說明:
net.ipv4.tcp_tw_reuse = 1 表示開啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接,默認為0,表示關閉;
net.ipv4.tcp_tw_recycle = 1 表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認為0,表示關閉。
net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求關閉,這個參數(shù)決定了它保持在FIN-WAIT-2狀態(tài)的時間。
net.ipv4.tcp_keepalive_time = 1200 表示當keepalive啟用的時候,TCP發(fā)送keepalive消息的頻度。缺省是2小時,改為20分鐘。
net.ipv4.ip_local_port_range = 1024 65000 表示用于向外連接的端口范圍。缺省情況下很小,改為1024到65000。
net.ipv4.tcp_max_syn_backlog = 8192 表示SYN隊列的長度,默認為1024,加大隊列長度為8192,可以容納更多等待連接的網(wǎng)絡連接數(shù)。
net.ipv4.tcp_max_tw_buckets = 5000表示系統(tǒng)同時保持TIME_WAIT套接字的最大數(shù)量,如果超過這個數(shù)字,TIME_WAIT套接字將立刻被清除并打印警告信息。默認為180000,改為5000。對于Apache、Nginx等服務器,上幾行的參數(shù)可以很好地減少TIME_WAIT套接字數(shù)量,但是對于Squid,效果卻不大。此項參數(shù)可以控制TIME_WAIT套接字的最大數(shù)量,避免Squid服務器被大量的TIME_WAIT套接字拖死。
執(zhí)行以下命令使內(nèi)核配置立馬生效:
/sbin/sysctl -p
net.ipv4.tcp_tw_reuse = 1 #允許將TIME-WAIT sockets重新用于新的TCP連接
net.ipv4.tcp_tw_recycle = 1 #開啟TCP連接中TIME-WAIT sockets的快速回收
執(zhí)行以下命令使內(nèi)核配置立馬生效:
/sbin/sysctl -p
vim /etc/security/limit.conf
* soft nofile 60000 * hard nofile 65535
值得注意的是,通過命令ulimit -SHn是改變不了linux系統(tǒng)的最大文件打開數(shù)的,寫進/etc/rc.d/rc.local也是不行的。
crond irqbalance microcode_ctl network random sshd syslog
下面的命令可檢查運行在5級別的服務,3級以此類推
chkconfig -- list | awk '{print $1 " " $7}' | grep 5:on
檢查下打印服務,此服務經(jīng)常成漏網(wǎng)之魚,關掉它。
service cups stop chkconfig cups off
chkconfig這條命令會關掉3和5級別的服務。
vim /etc/modprobe.conf
修改此配置文件,添加如下行到文尾:
alias net-pf-10 off alias ipv6 off echo "IPV6INIT=no" >> /etc/sysconfig/network-scripts/ifcfg-eth0
vim /etc/sysconfig/network-scripts/ifcfg-eth0,eth1
eth1為第二網(wǎng)卡,其它依此類推。
ONBOOT=YES
然后重啟網(wǎng)絡服務生效
service network restart
END
鏈接:https://zhuanlan.zhihu.com/p/649836503
(版權歸原作者所有,侵刪)
評論
圖片
表情

