首页 > 解决方案 > Postgres 的 GCC/Clang 中的锁争用很高

问题描述

使用的硬件和软件:

RAM size: 512 GB
SSD: 1TB
CPU(s): 256(0-255)
PostgreSQL version: 13.3
Operating system: RHEL8.4

24vu(TPCC) 的性能数据示例

  14.99% postgres postgres [.] LWLockAcquire
  7.09% postgres postgres [.] _bt_compare
  8.66% postgres postgres [.] LWLockRelease
  2.28% postgres postgres [.] GetSnapshotData
  2.25% postgres postgres [.] hash_search_with_hash_value
  2.11% postgres postgres [.] XLogInsertRecord
  1.98% postgres postgres [.] PinBuffer

Postgres.conf

shared_buffers = 64000MB
huge_pages = on
temp_buffers = 4000MB
work_mem = 4000MB
maintenance_work_mem = 512MB
autovacuum_work_mem = -1
max_stack_depth = 7MB
dynamic_shared_memory_type = posix
max_files_per_process = 4000
effective_io_concurrency = 32
wal_level = minimal
synchronous_commit = off
wal_buffers = 512MB
#checkpoint_segments = 256
checkpoint_timeout = 1h
checkpoint_completion_target = 1
checkpoint_warning = 0
log_min_messages = error
log_min_error_statement = error
log_timezone = ‘GB’
autovacuum = off
datestyle = ‘iso, dmy’
timezone = ‘GB’
lc_messages = ‘en_GB.UTF-8’
lc_monetary = ‘en_GB.UTF-8’
lc_numeric = ‘en_GB.UTF-8’
lc_time = ‘en_GB.UTF-8’
default_text_search_config = ‘pg_catalog.english’
max_locks_per_transaction = 64
max_pred_locks_per_transaction = 64

运行 TPCC(HammerDB 工作台环境)时,GCC/Clang 中的 LWLockAcquire(锁竞争)很高
有没有办法调整锁竞争?
有什么建议可以调整/减少锁争用吗?

标签: postgresqldatabase-performance

解决方案


推荐阅读