我正在寻找免费/低成本的方法,使在我们的 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 进行全面比较)