gpt4 book ai didi

postgresql - 调优 Postgresql 后,PgBench 结果更差

转载 作者:行者123 更新时间:2023-11-29 14:05:09 31 4
gpt4 key购买 nike

我正在 Digital Ocean 的 8gb Ram/4 CPUs/80gb SSD 云服务器上测试 PostgreSQL。我最初使用 postgresql.conf 中的默认设置运行 PgBench,然后更改了一些常用设置——shared_buffers、work_mem、maintenance_work_mem、effective_cache_size——以反射(reflect) 8gb 的 RAM。在运行第二组测试后,我注意到我的一些结果实际上更糟。关于为什么会这样有什么建议吗?一般来说,我对 PgBench 和调优 PostgreSQL 比较陌生。

设置:

  • shared_buffers = 2048mb
  • work_mem = 68mb
  • maintenance_work_mem = 1024mb
  • effective_cache_size = 4096mb

测试:

  • pgbench -i -s 100
  • pgbench -c 16 -j 2 -T 60 -U postgres postgres
  • pgbench -S -c 16 -j 2 -T 60 -U postgres postgres
  • pgbench -c 16 -j 4 -T 60 -U postgres postgres
  • pgbench -S -c 16 -j 4 -T 60 -U postgres postgres
  • pgbench -c 16 -j 8 -T 60 -U postgres postgres
  • pgbench -S -c 16 -j 8 -T 60 -U postgres postgres

这些测试的效果如何?这是使用 PgBench 的有效方法吗?我应该如何自定义测试以正确反射(reflect)我的数据和服务器实例?

最佳答案

“更糟”是什么意思?你运行 pgbench 多长时间?该测试应至少执行约 2 小时以获得实际值。你有什么版本的 PostgreSQL?

注意:您应该非常小心地解释 pgbench 结果。可能您应该优化应用程序的执行,而不是 pgbench。 pgbench 适用于硬件或软件检查,是优化 PostgreSQL 配置的糟糕工具。

提到的配置变量是配置的基础,你可能不会错(服务器永远不能主动使用交换 - 这些变量确保它)。

我使用的公式:

-- Dedicated server 8GB RAMshared_buffers = 1/3 .. 1/4 dedicated RAMeffecttive_cache_size = 2/3 dedicated RAMmaintenance_work_mem > higher than the most big table (if possible)                       else 1/10 RAM                       else max_connection * 1/4 * work_memwork_mem  = precious setting is based on slow query analyse             (first setting about 100MB)--must be truemax_connection * work_mem * 2 + shared_buffers           + 1GB (O.S.) + 1GB (filesystem cache) <= RAM size

通常 WAL 缓冲区大小和检查点段的默认值也太低了。你可以增加它。

关于postgresql - 调优 Postgresql 后,PgBench 结果更差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18413240/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com