postgresql - 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(锁竞争)很高
有没有办法调整锁竞争?
有什么建议可以调整/减少锁争用吗?
解决方案
推荐阅读
- api - Rest api url 设计异常
- android - 使用 Intent ActivityResult 的 Google 登录始终带有 RESULT_CANCELED
- sql - WHERE 字符串 IN 字符串 SQL Server
- systemd - 执行su命令时如何防止systemd将进程移动到其他cgroup
- sql - 使用横向视图展开后的字段无法插入新表
- mysql - 每当数据库发生更改时,如何使用 Web 套接字从 mySQL 生成表?
- python - 如何获取币安的买卖数据?
- python - 使用函数将值应用于 Dask 数据帧映射
- typescript - 如何模拟在被测试服务使用的同一类中定义的函数的返回值
- java - 使用递归计算字符出现在字符串java中的次数