我的应用程序使用Postgres作为DBMS,我使用的Postgres版本是10.3,安装了扩展名Postgis。
有时,我注意到dbms在随机的时间间隔内变慢并陷入一些SELECT查询中。
在pg_stat_activity
中,我注意到这些查询中的wait_event_type
和wait_event
如下:
select wait_event_type, wait_event from pg_stat_activity where state='active';
wait_event_type | wait_event
-----------------+--------------
IO | DataFileRead
IO | DataFileRead
IO | DataFileRead
IO | DataFileRead
LWLock | buffer_io
LWLock | buffer_io
IO | DataFileRead
LWLock | buffer_io
LWLock | buffer_io
IO | DataFileRead
IO | DataFileRead
LWLock | buffer_io
LWLock | buffer_io
IO | DataFileRead
LWLock | buffer_io
IO | DataFileRead
LWLock | buffer_io
LWLock | buffer_io
LWLock | buffer_io
LWLock | buffer_io
LWLock | buffer_io
LWLock | buffer_io
LWLock | buffer_io
LWLock | buffer_io
LWLock | buffer_io
LWLock | buffer_io
LWLock | buffer_io
IO | DataFileRead
IO | DataFileRead
|
IO | DataFileRead
LWLock | buffer_io
LWLock | buffer_io
(33 rows)
在检查docs之后,我的假设是下面的硬件有问题,然后我所面临的问题与应用程序或查询类型无关,而与硬件本身有关。
有人遇到过这种问题吗?
答案 0 :(得分:-1)
一般故障排除建议:
开始收集服务器的运行时统计信息 - 有多种工具可供选择 - https://munin-monitoring.org/、https://grafana.com/ + influx db + telegraf 等等。无论采用哪种解决方案,您都应该保留以下历史统计数据:
还可以获取有关 postgresql 的统计信息 - https://www.percona.com/downloads/pmm2 在这里可能会有所帮助
基于这些统计数据 - 在有问题的查询发生之前查看是否有任何累积。
偶尔的减速可能是由以下原因造成的: