您的位置:首页 > 其它

针对Web服务器总体优化

2008-06-09 14:06 274 查看
       [align=left]一、文件系统
在fstab里加入noatime,如
#cat /etc/fstab
/dev/sda1          /home                  ext3    noatime,defaults        1 2
reboot或者重新mount生效
二、Tcp优化
在/etc/sysctl.conf里加入
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 3
net.ipv4.tcp_syncookies = 1 #启用syncookies
        net.ipv4.tcp_max_syn_backlog = 8192 #定义backlog队列容纳的最大半连接数
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_window_scaling = 0
net.ipv4.tcp_sack = 0
net.ipv4.tcp_timestamps = 0
[color=blue]老实说,对于sysctl.conf究竟能不能用起来还真不知道,因为我是没用起来,虽然内核里面是支持的 = =b[/color]
三、虚拟内存优化
/etc/sysctl.conf
        vm.lower_zone_protection = 100
四、I/O调度器
在grub.conf的相应启动选项里加入elevator=deadline,如:
kernel /vmlinuz-2.6.6 ro root=/dev/sda6 elevator=deadline
这里用了Deadline的I/O调度器,它比系统默认的AnticipatoryI/O调度器更为小巧,在数据吞吐量非常大的数据库系统中表现得更有优势。
五、内核源代码参数修改
修改/usr/src/linux/include/linux/posix_types.h
#define __FD_SETSIZE 1024 ?nbsp;65536 
设置fd_set支持的最大数量
修改/usr/src/linux/include/linux/fs.h
#define INR_OPEN 1024 ?nbsp;65536
#define NR_FILE 8192 ?nbsp;65536
#define NR_RESERVED_FILES 10 ?nbsp;128
设置最大打开文件数量(TCP连接数量)
修改/usr/src/linux/include/net/tcp.h
#define TCP_TIMEWAIT_LEN (60*HZ) ?nbsp;1*HZ
#define TCP_SYNACK_RETRIES  5 ?nbsp;3 
设置在backlog队列里的半连接的重试次数,每次都会花相应的时间,本质上
也是减少重试时间
make menuconfig中,去掉没用的选项,打开以下选项的开关:
High Memory Support (支持4GB以上内存)
Symmetric multi-processing support (支持多CPU)
TCP syncookie support (可以防DOS)
设置文件打开数等的其他方法(好处就是可以不重新编译内核)
在 /etc/init.d/sshd里加入(统一加在. /etc/rc.d/init.d/functions行后面) [/align][align=left]ulimit -n 65535 >;/dev/null 2>;&1[/align][align=left]ulimit -u 16384 >;/dev/null 2>;&1[/align][align=left]重起sshd:nohup /etc/init.d/sshd restart &
BTW:其实limits.conf不好,因为他需要root su - user遗传给普通用户
如果直接远程登陆是没效果的
六、apache
1、安装:采用worker线程工作模式 [/align][align=left]./configure --prefix=/prefix [/align][align=left]--enable-mods-shared=all [/align][align=left]--enable-deflate [/align][align=left]--with-mpm=worker[/align][align=left][color=blue]chmod +s /prefix/bin/httpd [/color]#允许普通用户也可以启动apache
2、配置:httpd.conf [/align][align=left]Timeout 60[/align][align=left]KeepAlive On[/align][align=left]MaxKeepAliveRequests 150[/align][align=left]KeepAliveTimeout   5[/align][align=left]StartServers         3[/align][align=left]MaxClients         3200   #支持3200个客户端哦[/align][align=left]ServerLimit        32[/align][align=left]MinSpareThreads     50[/align][align=left]MaxSpareThreads     250[/align][align=left]ThreadLimit   200[/align][align=left]ThreadsPerChild     100[/align][align=left]MaxRequestsPerChild 0[/align][align=left]#上面的几个参数对机器要求比较高,如果是比较差的机器,每台机1000个连接最多了,你可能要重新设置参数,我的机器是DELL 2850[/align][align=left]UseCanonicalName Off[/align][align=left]HostnameLookups Off[/align][align=left]ServerSignature Off[/align] 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: