我正在改变一个巨大的数据库表,磁盘利用率提高到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设置迫使他们使用磁盘而不是将数据保存在内存中?
答案 0 :(得分:0)
如果您想更快地存储生成的响应,您应该考虑某种缓存。这是webdev中的一个重要主题,并且在这里很好地解释了(对于nginx):
https://www.nginx.com/blog/nginx-caching-guide/
请记住在回复中设置缓存HTTP标头,例如max-age
,cache-control
。在此处阅读标题:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control