LAMP 系统性能调优之内核调优措施

2011-03-18 11:21 Sean A. Walberg 网络转载 字号:T | T

在对系统的 Apache、PHP 和 MySQL 组件进行调优之前,应该花一些时间确保底层 Linux 组件的运行正常。这点是非常重要的!

AD:2014WOT全球软件技术峰会北京站 课程视频发布

LAMP

LAMP的一些快速的内核调优措施

大多数 Linux 发布版都定义了适当的缓冲区和其他 Transmission Control Protocol(TCP)参数。可以修改这些参数来分配更多的内存,从而改进网络性能。设置内核参数的方法是通过 proc 接口,也就是通过读写 /proc 中的值。幸运的是,sysctl 可以读取 /etc/sysctl.conf 中的值并根据需要填充 /proc,这样就能够更轻松地管理这些参数。清单 2 展示在互联网服务器上应用于 Internet 服务器的一些比较激进的网络设置。

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

  1. # Use TCP syncookies when needed
  2. net.ipv4.tcp_syncookies = 1
  3. # Enable TCP window scaling
  4. net.ipv4.tcp_window_scaling: = 1
  5. # Increase TCP max buffer size
  6. net.core.rmem_max = 16777216
  7. net.core.wmem_max = 16777216
  8. # Increase Linux autotuning TCP buffer limits
  9. net.ipv4.tcp_rmem = 4096 87380 16777216
  10. net.ipv4.tcp_wmem = 4096 65536 16777216
  11. # Increase number of ports available
  12. 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 发送和接收缓冲区。这使应用程序可以更快地丢掉它的数据,从而为另一个请求服务。还可以强化远程客户机在服务器繁忙时发送数据的能力。

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

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

通过文章的描述和代码的分析,我们可以通过内核调优措施来对LAMP进行调优!

【编辑推荐】

最新文章

  1. 需要了解的 Linux 网络和监控命令
  2. SQL操作大全
  3. JSON的简单例子
  4. 关于Function.prototype.bind
  5. Eclipse系列: 在Eclipse中用TODO标签管理任务(Task)(ZZ)
  6. Android实现网络访问
  7. .Net 把网页Html转PDF文件
  8. URAL 1525 Path
  9. 老李分享:为何要使用 Web Services
  10. Makefile的obj-y 和 obj-m
  11. c#连接oracle数据库底层方法
  12. JAVA 8 主要新特性 ----------------(六)集合Stream API
  13. 【Codeforces 212E】Restaurants
  14. 微信小程序——引入背景图片【六】
  15. Factory——工厂方法
  16. eureka client服务续约源码分析
  17. Java11实战:模块化的 Netty RPC 服务项目
  18. Golang依赖管理工具:glide从入门到精通使用
  19. [NOIp2010提高组]关押罪犯
  20. mui---父页面跳子页面刷新子页面

热门文章

  1. mesh重叠闪烁问题
  2. ansible自动化运维管理工具
  3. 运行RGB-DSLAM的一些报错及处理方法
  4. python线程池--threadpool
  5. 2031 HDOJ 进制转换
  6. 【Qt开发】QTableWidget的详细设置
  7. DIY兼容机装苹果系统
  8. Maven - Maven3实战学习笔记(2)坐标和依赖
  9. Spring(一)--Spring简介
  10. idea工具