平均负载峰值导致 Web 应用程序响应非常慢

平均负载峰值导致 Web 应用程序响应非常慢

我们在 Azure 中有一个 D11(2 核,14GB RAM)大小的虚拟机来托管我们公司的新 Web ERP 系统,该系统由安装在 CentOS 7 上的 jboss 和 Postgresql 组成,只有 14 个用户同时登录。

我们有时会遇到响应缓慢的情况,用户需要等待一分钟甚至几分钟才能加载页面。使用 free -h 检查内存,有超过 8GB 的​​可用空间,检查 Azure 门户中的 CPU 使用率,它始终低于 10%。但是,在延迟响应期间,负载平均值会增加。

当平均负载低于 1.0 时,Web 应用程序响应很快,而当平均负载高于 1.0 时,响应会变得非常迟钝。我检查了 iotop,发现 Web 应用程序不响应通常发生在高 postgresql 更新和提交期间。我可以知道 IO> for Postgres: jboss wsemp 127.0.0.1(40291) COMMIT 下的 99.99% 是什么意思吗?瓶颈是否发生在这里?引起我注意的另一个 99.99% 是 Postgres: checkpointer process i.imgur.com/XINJhwN.png

答案1

是的,这听起来很容易就是检查点活动。配置 PostgreSQL 以执行扩展检查点。请参阅:

确保该值checkpoint_segments足够高,可以满足您的工作量要求,并设置checkpoint_completion_target为 0.8 左右,以鼓励尽早完成大部分检查点工作。这会通过减少可以进行的写入组合量来降低整体性能,但会使活动更加平稳,从而减少停顿。

相关内容