CentOS 6.X 服务器优化
1.I/O调度器
在grub.conf的相应启动选项里加入参数,例如elevator=deadline
Anticipatory 适用于大多数环境,特别是写入较多的(比如文件服务器)Web,App等应用,但不太合适数据库应用,
Deadline 通常与Anticipatory相当,但更简洁小巧,更适合于数据库应用
CFQ 为所有进程分配等量的带宽,适合于桌面多任务及多媒体应用,适用于有大量进程的多用户系统
NOOP 对于闪存设备,RAM,嵌入式系统是最好的选择.适用SCSI的TCQ和SSD等。
2.文件系统
当文件被创建,修改和访问时,Linux系统会记录这些时间信息。当系统的读文件操作频繁时,记录文件最近一次被读取的时间信息,将是一笔不少的开销。为了提高系统的性能,可以在读取文件时不修改文件的atime属性,通过在加载文件系统时使用notime选项来做到这一点。当以noatime选项加载(mount)文件系统时,对文件的读取不会更新文件属性中的atime信息。设置noatime的重要性是消除了文件系统读取文件时候对文件atime的写操作,文件只是简单地被系统读取。注意wtime信息仍然有效,任何时候文件被写,该信息仍被更新。
在fstab里加入noatime,如
#cat /etc/fstab
/dev/sda1 /home ext3 noatime,defaults 1 2
reboot或者重新mount生效
3.虚拟内存优化
4.TCP优化
首先tcp的队列有两个:
1、未完成三次握手队列
2、已完成三次握手队列
当客户端连接服务端时先在“未完成三次握手队列”里面建立一条记录,
等tcp三次握手完成后把记录从“未完成三次握手队列”中移到“已完成三次握手队列”。
在Linux下,未完成三次握手队列通常为半连接队列,
也就是syn队列,其长度由/proc/sys/net/ipv4/tcp_max_syn_backlog指定,默认值为1024。
在linux下,已完成三次握手队列,我们称之为accept队列,
其最大长度由/proc/sys/net/core/somaxconn指定,默认值为128,大多数服务器需要增大此值。
在服务器程序开发时,listen(fd, backlog) 参数的backlog对应的也是accept队列,调用listen的时候系统会检查。
禁用selinux和ipv6
vi /boot/grub/grub.conf
增加 ipv6.disable=1 selinux=0