我在 CentOS 上有一个 Apache Web 服务器。它没有做任何出色或复杂的工作,但出于某种原因,它确实会间歇性地经历高负载(4 个 CPU 负载为 120)。在此期间,我看到等待时间和写入持续时间很长。我已将其缩小到将脏页刷新到磁盘以腾出空间来存储新数据。
我尝试了很多方法,也和开发人员交流过,他们也对此感到困惑。我被难住了。
详细信息:vmware 虚拟客户服务器 4 CPU 12G RAM Apache PHP
这个集群中有 40 台服务器共享相同的磁盘结构。只有 Web 服务器遇到了这个问题。
我认为发生的情况是脏页已满且溢出。因此刷新将切换到同步写入并阻止所有其他 I/O,直到完成。
我在 sysctl.conf 中设置了以下内容:
vm.dirty_background_ratio = 5
vm.dirty_ratio = 10
但没有什么实际影响。我添加了更多 RAM,但仍然没有什么实际影响。
有任何想法吗?
答案1
尝试在 vm.dirty_ratio 和 vm.dirty_background_ratio 之间设置更大的差异。例如,vm.dirty_ratio=40 和 vm.dirty_background_ratio = 5。无论如何,奇怪的是,Web 服务器向磁盘写入了这么多内容。检查写入的内容和位置。