1

现在我正在我的 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
4

1 回答 1

0

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

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

...然后您将缓存标头发送给客户端,说明缓存文件的有效期为多长时间?

...并且您正在使用操作码缓存?

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

您如何获得每个进程的内存使用情况?即使 10Mb 似乎也很高 - 你确定不是每次都计算 TXT 段吗?

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

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

您要在这里解决的问题是什么?(让网络服务更快?为其他事情释放资源?)

C。

于 2010-02-19T16:07:37.363 回答