LAMPcookie
LAMP的一些快速的内核调优措施网络
大多数 Linux 发布版都定义了适当的缓冲区和其余 Transmission Control Protocol(TCP)参数。能够修改这些参数来分配更多的内存,从而改进网络性能。设置内核参数的方法是经过 proc 接口,也就是经过读写 /proc 中的值。幸运的是,sysctl 能够读取 /etc/sysctl.conf 中的值并根据须要填充 /proc,这样就可以更轻松地管理这些参数。清单 2 展现在互联网服务器上应用于 Internet 服务器的一些比较激进的网络设置。架构
清单 2. 包含较为激进的网络设置的 /etc/sysctl.conftcp
- # 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 容许在未从远程端收到确认的状况下发送多个数据包,默认设置是最多 64 KB,在与延迟比较大的远程客户机进行通讯时这个设置可能不够。窗口伸缩会在头中启用更多的位,从而增长窗口大小。优化
后面四个配置项增长 TCP 发送和接收缓冲区。这使应用程序能够更快地丢掉它的数据,从而为另外一个请求服务。还能够强化远程客户机在服务器繁忙时发送数据的能力。网站
最后一个配置项增长可用的本地端口数量,这样就增长了能够同时服务的最大链接数量。spa
在下一次引导系统时,或者下一次运行 sysctl -p /etc/sysctl.conf 时,这些设置就会生效。
经过文章的描述和代码的分析,咱们能够经过内核调优措施来对LAMP进行调优!
【编辑推荐】