如何使 PHP 在 Unix Apache 上更具可扩展性

如何使 PHP 在 Unix Apache 上更具可扩展性

我正在寻找免费/低成本的方法,使在我们的 Unix Solaris 服务器(Apache 下)上运行的 PHP 更具可扩展性和可靠性。您推荐 Zend Server 的免费版本吗?还有其他解决方案吗?

这是针对一个网站而言的,该网站有时每天的点击量超过 200 万次,同期的数据传输量为 10GB。谢谢。

答案1

这取决于您当前的瓶颈和 PHP 的当前行为。

  • 如果您的 PHP 脚本相当小,响应速度快,并且没有任何外部依赖项(例如 SQL 查询,在这种情况下,数据库服务器很容易成为真正的瓶颈),您通常不需要任何花哨的技术。在 httpd.conf 中适当调整进程限制,并可能添加操作码缓存,例如缓存可能是个好主意。

  • 如果您的网站大量使用数据库,那么适当的缓存和memcached可以成为你的朋友。但是不要盲目地安装 memcached —— 只有在负载巨大或 SQL 查询耗时很长的情况下才有必要,在这种情况下 memcached 可以帮上大忙。如果你只有小型数据库,并且 SQL 查询总是很快,那么 memcached 对你帮助不大,甚至根本帮不上什么忙。每天 200 万次点击是一个不错的数字,但对于一个不错的服务器来说,这绝不是巨大的数字,除非你的网站重的(或者每日 WTF 材料 :-))在资源/代码方面。

  • 您网站上的内容是否可缓存?它是否提供偶尔更改的新闻之类的内容,还是像 Facebook 一样非常动态的内容?如果可缓存,请考虑使用前端代理,例如乌贼或者如果您有能力并且您的业务确实需要,可以采用一些硬件解决方案。

答案2

如果您尚未使用诸如 Zend 之类的操作码缓存系统,那么这可能是一个巨大的胜利,但您需要执行一些分析来找出平台的瓶颈所在,以便选择合适的解决方案。

执行了多少 IO?CPU 有多忙?你的内存使用情况如何?网站是否有数据库支持?如果是,该数据库是否在同一主机上?数据库主机的利用率如何?Web 服务器和数据库服务器之间的带宽是多少?等等。

答案3

您可以考虑尝试一下 APC。我们最近在公司的服务器上安装了它。该服务器服务于高负载的网站,结果非常好 - 负载提高了近 40%。

关于使用不同的解决方案:NGINX + PHP-FPM被认为是 Apache 的一个很好的替代品(我们公司实际上也在使用它,而且效果很好,但目前我无法与 Apache 进行全面比较)

相关内容