LAMP服务器性能技巧

什么性能提示可以提供给运行LAMP服务器的人?

在某些特定分发的情况下,我的目标是Debian。

这真的取决于你的工作量。

  • L部分

    • 得到很多的记忆,
    • 如果你可以超过4GB,去64位。
    • 对于你的内容,日志和mysql数据使用挂载选项的分区:noatime,nodiratime。
    • 使用单独的物理驱动器/ RAID组,理想情况下保持SQL数据,日志,你服务的内容 – 每个在不同的主轴上。
  • 对于你的堆栈一部分 – 也许你想完全用nginx或lighthttpdreplace它,或者只是留下apache的dynamic内容,并有静态内容单独的服务器(如这两个或mathopd )。 看看这里更多的select。 如果你打算在同一个盒子上运行Apache和其他服务器 – 第二个IP地址将是方便的。 以减less最终用户使用http / 1.1保持活跃的延迟。 考虑使用cdn静态内容。

  • 为你的灯的M部分 – 看看mysqlperformanceblog 。 从我的头顶开始:

    • logging缓慢的查询,
    • 给予足够的记忆,
    • 考虑使用innodb。
    • 如果你有很多的文字search – 使用狮身人面像,并有重build索引的批处理作业。
    • 考虑杀死运行时间超过XYZ秒的查询。 让1%的用户失望比在高峰时间把整个网站降下来更好。 但这真的取决于如果你处理现金交易或显示漂亮的图片。
    • 如果可以caching更多“昂贵”的sql查询结果,请使用memcached。 请记住在更改sql的内容时使caching无效。 另一方面,我有很less的网站,所有的数据适合内存舒适,并为此MySQL快速发展,并没有需要额外的caching。
  • P

    • 为脚本设置执行超时。
    • 考虑使用一些PHP加速器 /操作码caching。 我对xcache很满意,但现在我不使用它。
    • 如果您有cpu密集型处理 – caching结果并将其存储在sql或memcached中

不是真正的性能提示 – 而是采取离线备份。 真。

我真的build议在两台不同的机器上分开MySQL和Apache / PHP。

例如,我有一台机器(C2D E6600),总是加载到2.0以上的平均负载。 我把MySQL放在第二台机器上(P4C 3Ghz),之后两个负载平均值都没有超过0.2-0.3。 所以我从一个非常慢的网站去了一个快速的网站,两台服务器有很大的性能差距。

对于P部分,您可以考虑使用APC进行操作码caching。 也可以考虑用mod_fastcgi而不是默认的mod_php。