为什么页面生成速度快但NGINX + PHP-FPM服务缓慢?

时间:2017-08-28 08:46:21

标签: php nginx

我正在改变一个巨大的数据库表,磁盘利用率提高到90-100%。

NGINX像往常一样快速提供静态内容,但PHP页面加载时间为10-20秒而不是通常的0.2秒。

我有

echo 'Generated in ' . microtime( true ) - $start . ' sec.';

在每个页面的末尾,它显示页面是在0.1秒内生成的,而其加载时间为10秒以上:

Request sent    0.22 ms
Waiting (TTFB)  12.84 s
Content Download    59.33 ms

平均页面大小为30-40 kb,NGINX缓冲区为:

fastcgi_buffers 32 32k;
fastcgi_buffer_size 64k;

因此NGINX不应该使用磁盘来提供页面。

为什么会发生这种情况?是否有一些NGINX或PHP-FPM设置迫使他们使用磁盘而不是将数据保存在内存中?

1 个答案:

答案 0 :(得分:0)

如果您想更快地存储生成的响应,您应该考虑某种缓存。这是webdev中的一个重要主题,并且在这里很好地解释了(对于nginx):

https://www.nginx.com/blog/nginx-caching-guide/

请记住在回复中设置缓存HTTP标头,例如max-agecache-control。在此处阅读标题:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control