系统基础优化
-
关闭不需要的TTY
```
vim /etc/init/start-ttys.conf文件
env ACTIVE_CONSOLES=/dev/tty[1-6]修改为[1-2],然后重启机器即可。
vim /etc/sysconfig/init
ACTIVE_CONSOLES=/dev/tty[1-6]修改为[1-2] ```
-
对TCP/IP网络参数进行调整
```
echo \"net.ipv4.tcp_syncookies = 1\">>/etc/sysctl.conf
sysctl -p
增强对抗SYN Flood的能力。
```
-
修改history记录数
```
vim /etc/profile
修改HISTSIZE值
source /etc/profile
刷新环境变量
```
-
每当系统加载IPv6模块是强制执行/bin/true来代替实际加载的模块
```
echo "install ipv6 /bin/true">/etc/modprobe.d/disable-ipv6.conf
```
-
禁用基于ipv6网络
echo "IPV6INIT=no">>/etc/sysconfig/network-scripts/ifcfg-eth0
-
调整Linux最大文件打开数,否则允许squid服务的机器在高负载时执行性能将会很差;有时在部署应用时,会遇到“Too many open files”这样的问题,这个值也会影响服务器的最大并发数。
```
vim /etc/security/limit.conf
在文件尾部添加
soft nofile 65535 hard nofile 65535
vim /etc/rc.local
在开机时执行命令
ulimit -SHn 65535
```
-
在web服务器的页面上有很多小图片,通常是没有必要记录的,这样就可以减少写磁盘的I/O值。
```
修改/etc/fstab,然后,在包含大量小文件的分区中使用noatime,和nodiratime命令
/dev/sda5 /data/pics ext3 noatime,nodiratime 0 0
```
-
配置SSH登录
```
不允许root用户通过远程登录
将 PermitRootLogin yes 修改为 PermitRootLogin no
禁止空密码登录
取消掉 PermitEmptyPasswords no 的注释
关闭SSH反向查询,加快SSH的访问速度
将 UseDNS yes修改 UseDNS no ```
-
增加具有sudo权限的用户
```
visudo
给admin用户所有root权限
添加 admin ALL=(ALL) ALL
```
优化Linux下的内核TCP参数提高系统性能
-
内核的优化和服务器优化一样,在Linux下高并发的Squid服务器中,TCP TIME_WAIT套接字的数量经常可达到两三万,服务器很容易被拖死。可以通过修改Linux内核参数来减少Squid服务器的TIME_WAIT数量,命令如下:
```
vim /etc/sysctl.conf 添加以下参数:
net.ipv4.tcp_syncookies = 1 # 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用Cookie来处理,可防范少量的SYN攻击。该参数默认为 0。 net.ipv4.tcp_fin_timeout = 30 # 表示如果套接字由本端要求关闭,那么这个参数将决定它保持在FIN-WAIT-2状态的时间 net.ipv4.tcp_keepalive_time = 1200 # 表示当keepalived启用时,TCP发送Keepalived消息的频度改为20分钟 net.ipv4.tcp_tw_reuse = 1 # 表示开启重用,即允许将TIME-WAIT套接字重新用于新的TCP连接。该参数默认为0,表示关闭。 net.ipv4.tcp_tw_recycle = 1 # 表示开启TCP连接中TIME-WAIT套接字的快速回收,该参数默认为0,表示关闭。 net.ipv4.tcp_local_port_range = 10000 65000 表示向外连接的接口范围。 net.ipv4.tcp_max_syn_backlog = 8192 表示SYN队列的长度,默认值为1024,此处修改为8192,可以容纳更多等待连接的网络连接数。 net.ipv4.tcp_max_tw_buckets = 5000 表示系统同时保持TIME_WAIT套接字的最大数量,TIME_WAIT套接字将立即清除并打印警告信息,默认值为180000,此处修改为5000(此参数对Squid来说,效果较为理想) ```
对于Apache或Nginx等Web服务器,则只需要修改以下几项即可:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_local_port_range = 10000 65000
对于postfix邮件服务器,则建议内核优化方案如下:
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_local_port_range = 10000 65000
kernel.shmmax = 134217728
Linux下CPU使用率与机器负载的关系与区别
CPU负载和CPU利用率虽然是两个不同的概念,但它们的信息可以显示在同一个top命令中。 > CPU利用率显示的是在运行期间实时占用的CPU百分比 CPU负载显示的则是一段时间内正在使用和等待使用CPU的平均任务数。CPU利用率高,并不意味着负载就一定大。