繁体   English   中英

未记录表上的 WALWriteLock

[英]WALWriteLock on Unlogged table

我们在连接到 postgres 数据库的 pgbouncer 上遇到了一些连接高峰。 当我们在这些峰值期间查询 pg_stat_activity 时,我们会看到大量带有wait_event WALWriteLock的活动查询。

我们将一些高度插入的表更改为未记录,但在峰值期间仍然显示插入到这些表中,并带有wait_eventWALWriteLock 我认为如果一个表没有记录,那么插入它就不会被赶上等待WALWriteLock 是什么赋予了?

此外,有关如何阻止这些峰值的任何建议?

WALWriteLock:在 WAL 记录刷新到磁盘或 WAL 段切换期间由 PostgreSQL 进程产生。 synchronous_commit=off 删除等待磁盘刷新,full_page_writes=off 减少要刷新的数据量。 您可以尝试以上 dec 中提到的:- https://www.percona.com/blog/2018/10/30/postgresql-locking-part-3-lightweight-locks/

一种可能的答案是,尽管没有将表本身写入 WAL,但 COMMIT 仍会写入 WAL,如果您进行了大量小事务,这可能会出现。 看看您是否可以将插入分组到较少数量的事务中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM