可以为运行 LAMP 服务器的人提供哪些性能技巧?
如果某些东西是特定于发行版的,那么我的目标是 Debian。
答案1
这确实取决于你的工作量。
为了大号部分
- 获得大量记忆,
- 如果可以超过 4GB,就使用 64 位。
- 对于内容、日志和 MySQL 数据所在的分区,使用挂载选项:noatime、nodiratime。
- 使用单独的物理驱动器/ RAID 集,理想情况下将 SQL 数据、日志、您提供的内容保存在单独的主轴上。
为了A堆栈的一部分 - 好吧,也许你想用nginx或者轻量httpd或者干脆把 Apache 留给动态内容,并有单独的服务器(像这两个或数学) 静态内容。查看这里了解更多选项。如果您要在同一台机器上运行 Apache 和另一台服务器,则第二个 IP 地址会很方便。要减少最终用户的延迟,请使用具有 keep-alive 的 http/1.1。考虑使用 CDN 来处理静态内容。
为了米你的灯的一部分-看看mysql性能博客我首先想到的是:
- 记录慢速查询,
- 提供足够的内存,
- 考虑使用 innodb。
- 如果你有大量文本需要搜索——请使用狮身人面像并有一个重建索引的批处理作业。
- 考虑终止运行时间超过 XYZ 秒的查询。让 1% 的用户感到不快总比在高峰时段让整个网站瘫痪要好。但这实际上取决于您是处理现金交易还是展示精美的图片。
- 如果可以,请使用 memcached 来缓存更“昂贵”的 SQL 查询的结果。请记住,更改 SQL 内容时使缓存无效。另一方面,我有几个网站,所有数据都可以轻松地放在内存中,而 MySQL 的速度非常快,不需要额外的缓存。
为了磷
这其实不是一个性能技巧,但确实需要进行异地备份。真的。
答案2
我确实建议将 MySQL 和 Apache/PHP 分开在两台不同的机器上。
例如,我有一台机器(C2D E6600)总是达到 2.0 甚至更高的平均负载。我将 MySQL 放在第二台机器(P4C 3Ghz)上,之后两台平均负载都没有超过 0.2-0.3。因此,我从一个非常慢的网站变成了一个快速的网站,两台服务器具有很大的性能裕度。
答案3
对于 P 部分,你可以考虑使用 ie 进行操作码缓存亚太经合组织. 也可以考虑mod_fastcgi使用 php 而不是默认的 mod_php。