Linux Web服务器优化(CentOS篇)

①修改服务器可以打开的最大文件数open files,由于linux socket用的也是file,所以这个参数对网络连接数有直接的影响,一般机器是1024,可以设置为65536
#vi /etc/security/limits.conf
最后两行加入以下内容
* soft nofile 65536
* hard nofile 65536

修改此文件在重启后就又还原了,正确做法是在/etc/rc.local文件中加入ulimit -SHn 65536
#vi /etc/rc.local
末尾增加
ulimit -SHn 65536

②关闭IPv6,目前为止我们还不需要IPv6,系统安装完之后是自带并且开启了的,需要我们关闭。

查看有没有IPv6
#ifconfig  #如果出现inet6 addr…的字样,说明就是安装了
或者
#lsmod | grep ipv6  #会显示内核加载的ipv6相关模块

通过以下命令禁用
#vi /etc/sysconfig/network
修改
NETWORKING_IPV6=yes

NETWORKING_IPV6=no

然后关闭其模块
#vi /etc/modprobe.d/dist.conf
在文件结尾处添加以下两行
alias net-pf-10 off
alias ipv6 off

禁用ipv6的iptables
#chkconfig ip6tables off

修改完成后需重启机器使之生效

③对TCP/IP网络参数进行调优
#vi /etc/sysctl.conf
增加或修改以下配置
net.ipv4.tcp_syncookies = 1    #表示开启SYN Cookies,当出现SYN等待队列溢出时启用cookies来处理,可防范少量SYN攻击
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  #修改系統默认的TIMEOUT时间,单位为秒,默认为240秒

④修改shell命令的history命令记录个数
#vi /etc/profile
找到HISTSIZE=1000,修改为HISTSIZE=100
#source /etc/profile

⑤停止打印服务
检查打印服务是是否开启
#chkconfig –list cups        #如果 0~6全是关闭则服务未开启
#/etc/rc.d/init.d/cups stop   #停止打印服务
#chkconfig cups off           #禁止打印服务自启动

⑥关闭磁盘IO对文件访问时间的记录
在大多数情况下我们不需要记录文件的访问时间,尤其是多个小文件或频繁访问的文件上,禁止记录访问时间会带来很大的IO性能提升,比如图片服务器或数据库系统
#mount #可以查看文件类型和一些类似rw权限,noatime,nodiratime的属性,看是否启用
编辑/etc/fstab文件,修改以下命令
UUID=XXXXXXXXXXXXXXX /nfs         ext4    defaults        1 2

UUID=XXXXXXXXXXXXXXX /nfs         ext4    defaults,noatime,nodiratime        1 2
然后重新mount分区
#mount -o remount /nfs
最后可以通过mount命令(不带任何参数)查看是否生效,如果生效,能看到类似
/dev/sda7 on /nfs type ext4 (rw,noatime,nodiratime)
而未生效之前是
/dev/sda7 on /nfs type ext4 (rw)

⑦修改用户最大进程数

今天对服务器进行了一次压测,结果服务器的ssh就无法登录了,已有登录正常可以使用,查看sshd的日志发现是资源不可用,想到可能是open files或proc超过限制,用ulimit -a看了下max user pocesses是1024,原来proc数也会对服务器造成瓶颈。

RHEL6内核的系统,修改配置文件/etc/security/limits.d/90-nproc.conf

RHEL5及其以下内核的系统,修改配置文件/etc/security/limits.conf

增加或修改以下配置(默认root用户是无限制的,其它用户是1024):

*      soft    nproc      65535
root   soft    nproc      unlimited