Linux Web Server 内核参数调整

基本系统调节
在对系统的 Apache、PHP 和 MySQL 组件进行调优之前,应该花一些时间确保底层Linux组
件的运行正常。还应该对正在运行的服务进行缩减,只运行需要的那些服务。这不但是一种
良好的安全实践,而且可以节省内存和CPU时间。

一些快速的内核调优措施
大多数Linux发布版都定义了适当的缓冲区和其他TCP参数。
可以修改这些参数来分配更多的内存,从而改进网络性能。设置内核参数的方法是通过
proc接口,也就是通过读写/proc中的值。幸运的是:sysctl可以读取/etc/sysctl.conf
中的值并根据需要填充/proc,这样就能够更轻松地管理这些参数。

清单2展示在互联网服务器上应用于Internet服务器的一些比较激进的网络设置。

清单2. 包含较为激进的网络设置的/etc/sysctl.conf

# Use TCP syncookies when needed
net.ipv4.tcp_syncookies = 1

# Enable TCP window scaling
net.ipv4.tcp_window_scaling: = 1

# Increase TCP max buffer size
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

# Increase Linux autotuning TCP buffer limits
net.ipv4.tcp_rmem = 4096 87380 16777216 
net.ipv4.tcp_wmem = 4096 65536 16777216

# Increase number of ports available
net.ipv4.ip_local_port_range = 1024 65000

将这些设置添加到/etc/sysctl.conf的现有内容中。

第一个设置启用TCP SYN cookie。
当从客户机发来新的TCP连接时,数据包设置了SYN位,服务器就为这个半开的连接创建一个
条目,并用一个SYN-ACK数据包进行响应。在正常操作中,远程客户机用一个ACK数据包进
行响应,这会使半开的连接转换为全开的。
有一种称为SYN泛滥(SYN flood)的网络攻击,它使ACK数据包无法返回,导致服务器用光内存空间,无法处理到来的连接。SYN cookie特性可以识别出这种情况,并使用一种优雅的方法
保留队列中的空间(细节参见 参考资料 一节)。
大多数系统都默认启用这个特性,但是确保配置这个特性更可靠。

启用TCP窗口伸缩使客户机能够以更高的速度下载数据。
TCP允许在未从远程端收到确认的情况下发送多个数据包,默认设置是最多64KB,在与延迟比
较大的远程客户机进行通信时这个设置可能不够。窗口伸缩会在头中启用更多的位,从而增加窗口大小。

后面四个配置项增加TCP发送和接收缓冲区。这使应用程序可以更快地丢掉它的数据,从而
为另一个请求服务。还可以强化远程客户机在服务器繁忙时发送数据的能力。

最后一个配置项增加可用的本地端口数量,这样就增加了可以同时服务的最大连接数量。

[b]在下一次引导系统时,或者下一次运行sysctl -p /etc/sysctl.conf时,这些设置就会生效。[/b]

你可能感兴趣的:(linux,Web,应用服务器,.net,网络应用)