如何在LAMP服务器上有效地提供PHP动态图像?

时间:2010-02-15 18:03:20

标签: apache optimization gd lamp preforking

现在我在我的LAMP(CentOS / Apache / MySQL / PHP)堆栈上运行PHP脚本,使用GD生成动态图像。我将它们缓存在硬盘上5分钟。如果存在缓存版本,我将其拉出而不是生成新版本。这节省了CPU时间,但由于Apache仍在运行PHP文件,因此会为每个映像生成一个新的Apache进程。

Apache通常以大约30MB的速度运行,我重写了大部分配置并将其降低到每个进程大约10MB。但是,通过约30个并发进程,这种情况很快就会增加。此服务器还必须提供正常的网站内容。我想知道是否有一个很好的方法来设置另一个轻量级服务器,或进一步优化Apache / PHP?这是我在500MB RAM上的prefork设置:

StartServers         10
MinSpareServers      20
MaxSpareServers      30
ServerLimit         128
MaxClients          128
MaxRequestsPerChild 256

1 个答案:

答案 0 :(得分:0)

  

但由于Apache仍在运行PHP文件,因此会为每个映像生成一个新的Apache进程。

...当然,您的PHP脚本会检查是否存在缓存版本之前它是否会加载渲染新图像所需的所有PHP代码?

...然后你向客户端发送缓存标题,说明缓存文件有多长时间有效?

...你正在使用操作码缓存吗?

...而且您正在压缩所有非图像内容?

如何获得每个进程内存使用情况的数据?即使10Mb看起来也很高 - 你确定每次都不计算TXT段吗?

您已向我们展示了部分配置 - 但您使用的是SSL吗?你有keepAlives配置吗?如果是这样,到底是什么?

您的负载配置文件是什么样的?

你想在这里解决的问题是什么? (让网络服务更快?为其他东西腾出资源?)

下进行。