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



我正在更改一个巨大的数据库表,磁盘利用率提高到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设置迫使他们使用磁盘而不是将数据保存在内存中?

如果你想更快地存储生成的响应,你应该考虑某种缓存。这是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

最新更新