我们面临的问题是磁盘数据写入量极高,以及环回接口上的流量巨大。
环境: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