Linux系統的一些優化

1、關閉不需要的服務

使用命令如下:

#ntsysv

關閉iptables的代碼如下:

service iptables stop && #chkconfig iptables off

關閉SELinux的方法如下:

vim /etc/selinux/config

然後將文件中的selinux=""改爲disabled,並重啓。如不想重啓系統,使用命令setenforce 0,此命令可暫時關閉selinux,重啓後失效。

2、對TCP/IP網絡參數進行調整

調整參數,可以增強SYN Flood的能力,命令如下:

#echo ‘net.ipv4.tcp_syncookies = 1’ >>/etc/sysctl.conf
#sysctl -p

3、修改shell命令的history記錄個數

#vi /etc/profile

找到HISTSIZE = 1000,修改其值爲需要的數字。

不重啓系統就可以生效,如下所示:

#source /etc/profile

4、定時校正服務器的時間。

#yum install ntp
#crontab -e

加入一行:

*/5 * * * * ntpdate ntp.api.bz

5、停止打印服務

[root@localhost ~]# /etc/rc.d/init.d/cups stop --停止打印服務
停止 cups:                                                [確定]
[root@localhost ~]# chkconfig cups off --禁止打印服務自動啓動
[root@localhost ~]# chkconfig --list cups
cups            0:關閉  1:關閉  2:關閉  3:關閉  4:關閉  5:關閉  6:關閉

6、優化內核TCP參數

Linux高併發的服務器中,TCP TIME_WAIT套接字數量經常很高,服務器很容易被拖死,我們通過修改Linux內核參數減少TIME_WAIT套接字數量,命令如下:

#vim /etc/sysctl.conf
然後添加以下參數:
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_syncookies = 1
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_syncookies = 1	表示開啓SYN Cookies。當出現SYN等待隊列溢出時,啓用cookies來處理,可防範少量SYN攻擊,默認爲0,表示關閉;
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	表示如果套接字由本端要求關閉,這個參數決定了它保持在FIN-WAIT-2狀態的時間。
net.ipv4.tcp_keepalive_time = 1200	表示當keepalive起用的時候,TCP發送keepalive消息的頻度。缺省是2小時,改爲20分鐘。
net.ipv4.ip_local_port_range = 1024 65000	表示用於向外連接的端口範圍。缺省情況下很小:32768到61000,改爲1024到65000。
net.ipv4.tcp_max_syn_backlog = 8192	表示SYN隊列的長度,默認爲1024,加大隊列長度爲8192,可以容納更多等待連接的網絡連接數。
net.ipv4.tcp_max_tw_buckets = 5000	表示系統同時保持TIME_WAIT套接字的最大數量,如果超過這個數字,TIME_WAIT套接字將立刻被清除並打印警告信息。默認爲180000,改爲 5000。對於Apache、Nginx等服務器,上幾行的參數可以很好地減少TIME_WAIT套接字數量,但是對於Squid,效果卻不大。此項參數可以控制TIME_WAIT套接字的最大數量,避免Squid服務器被大量的TIME_WAIT套接字拖死。

執行以下命令使其內核配置立即生效:

/sbin/sysctl -p

如果四Apache或Nginx等web服務器,或Nginx的反向代理,則自需要改一下幾項即可:

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65000

如果是郵件服務器,則建議修改方案爲:

net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65000
kernel.shmax = 134217728


 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章