系統的基礎優化 1. 修改yum源(CentOS6.4 Mini) 2. 關閉不需要的服務 |必須的服務|描述| |: :|: :| |crond|計劃任務| |network|網路服務| |sshd|OpenSSH服務| |rsyslog|日誌服務(CentOS5.8以下為syslog)| 3. ...
系統的基礎優化
1. 修改yum源(CentOS6.4 Mini)
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS6-Base-163.repo CentOS-Base.repo
yum clean all
yum makecache
yum update
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
yum install yum-priorities
vim /etc/yum/pluginconf.d/priorities.conf
[main]
enabled=1
修改repo文件,設置
priority=n (1 ~ 99,1 最高)
2. 關閉不需要的服務
查看系統中已經啟動的服務
ntsysv 圖形界面
必須的服務 | 描述 |
---|---|
crond | 計劃任務 |
network | 網路服務 |
sshd | OpenSSH服務 |
rsyslog | 日誌服務(CentOS5.8以下為syslog) |
3. 關閉不必要的TTY
預設init開啟6個控制台,分別可用alt + F1~6切換訪問。6個控制台全部駐留記憶體。可以查看:
ps aux | grep tty | grep -v grep
通常保留2個就可以了
vim /etc/init/start-ttys.conf
env ACTIVES_ CONSOLES=/dev/tty[1-2]
vim /etc/sysconfig/init
ACTIVES_ CONSOLES=/dev/tty[1-2]
4. 調整TCP/IP網路參數
加強對抗SYN flood的能力
echo 'net.ipv4.tcp_syncookies = 1' >> /etc/sysctl.conf
sysctl -p
5. 修改history的記錄數
vim /etc/profile
HISTSIZE=100
source /etc/profile
6. 校準時間
yum install ntp
crontab -e
加入
* /5 * * * * /user/sbin/ntpdate ntp.api.bz
dig ntp.api.bz
7. 停止IPv6網路服務
查看內核模塊以確定是否支持IPv6
lsmod | grep ipv6
ifconfig -a
#每當系統需要載入IPv6模塊時使用/bin/true來替代
echo "install ipv6 /bin/true" > /etc/modprobe.d/disable-ipv6.conf
#禁用IPv6網路
echo "IPV6INIT=no" >> /etc/sysconfig/network-scripts/ifcfg-eth0
8. 調整Linux的最大文件打開數
/etc/security/limit.conf
最後一行添加
* soft nofile 65535
* hard nofile 65535
vim /etc/rc.local
添加
ulimit -SHn 65535
查看最大文件打開數
#!/bin/bash
for pid in `ps aux | grep nginx | grep -v grep | awk '{print $2}'`
do
cat /proc/${pid}/limits | grep 'Max open files'
done
9. 網卡配置
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:11:22:33:44:55
IPV6INIT=no
IPV6_AUTOCONF=yes
ONBOOT=yes #在系統啟動時啟動網卡
NETMASK=255.255.255.0
IPADDR=2.2.2.2
GATEWAY=1.1.1.1
TYPE=Ethernet
PEERDNS=yes #允許從DHCP獲得的DNS覆蓋本地DNS地址
USERCTL=no #不同意普通用戶修改網卡
10. 減少小文件分區的I/O
不修改小文件和目錄的atime
vim /etc/fstab
/dev/sda5 /data/pics ext3 noatime,nodiratime 0 0
11. 修改SSH登陸配置
sed -i 's@#PermitRootLogin yes@PermitRootLogin no@' /etc/ssh/sshd_config
sed -i 's@#PermitEmptyPasswords no@PermitEmptyPasswords no@' /etc/ssh/sshd_config
sed -i 's@#UseDNS yes@UseDNS no@' /etc/ssh/sshd_config
12. 增加具有sudo許可權的用戶
新建admin用戶
vim /etc/sudoers
admin ALL=(ALL) ALL
或者
admin ALL=(ALL) NOPASSWD:ALL
13. 優化TCP/IP參數
查看連接計數
netstat -n | awk '/^tcp/ {++S[$NF]} END{for(a in S) print a, S[a]}'
狀態 | 含義 |
---|---|
CLOSED | 無活動的或正在進行的連接 |
LISTEN | 伺服器正在等待呼叫 |
SYN_RECV | 一個連接請求已經到達,等待確認 |
SYN_SENT | 應用已經開始,打開一個連接 |
ESTABLISHED | 正常數據傳輸狀態 |
FIN_WAIT1 | 應用說她已經完成 |
FIN_WAIT2 | 另一邊已同意釋放 |
ITMED_WAIT | 等待所有分組死掉 |
CLOSING | 兩邊嘗試同時關閉 |
TIME_WAIT | 另一邊已初始化一個釋放 |
LAST_ACK | 等待所有分組死掉 |
修改參數:
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 = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
使內核配置立即生效
sysctl -p