nginx + php-fpm 大量数据写入磁盘

nginx + php-fpm 大量数据写入磁盘

我们面临的问题是磁盘数据写入量极高,以及环回接口上的流量巨大。

环境:Debian 10.3(4.19.0.8)-在 hyper-v nginx/1.14.2 php-fpm 7.3 mariadb Ver 15.1 Distrib 10.3.22-MariaDB 中虚拟化

该机器为 5 个 php Laravel 门户提供服务,其中包含一些动态但大部分是静态的内容(包含大量资产的电子书 - 图片、音频、视频材料)。总共有 300-1500 个并发用户,磁盘写入速度一直在 50 - 200 MB/s 之间变化(使用 iotop 测量),数据读取量几乎为 0。一天内可能会有超过 1 TB 的数据写入磁盘,eth0 上的入站流量仅为 10 GB 左右。硬盘上的可用空间几乎没有变化。磁盘写入与通过环回接口的流量相关。看起来 nginx/fpm 一直在“重写”磁盘上的数据。

该机器有专用的 48 个核心、48 GB 的 RAM、raid-6 SSD,从未触及过交换分区。

到目前为止,我们已经尝试了许多可能的 cfg(将 php-fpm 从套接字切换到 tcpip、关闭/打开 sendfile、调整 nginx fastcgi_cache),但都没有成功。这是当前的 cfg:https://pastebin.com/S6rdjbvE

有人经历过这样的行为吗?我们完全没有主意了。

谢谢。Nejc

答案1

运行以下命令并尝试根据 www.conf 中的结果设置值

ps --no-headers -o "rss,cmd" -C php-fpm7.3 | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"Mb") }'

计算值

min_spare_servers + (max_spare_servers - min_spare_servers) / 2

相关内容