我正在 Digital Ocean 的 8gb Ram/4 CPUs/80gb SSD 云服务器上测试 PostgreSQL。我最初在 postgresql.conf 中使用默认设置运行 PgBench,然后更改了一些常用设置——shared_buffers、work_mem、maintenance_work_mem、effective_cache_size——以反映 8gb 的 RAM。在运行第二组测试后,我注意到我的一些结果实际上更糟。关于为什么会这样的任何建议?我对 PgBench 和一般的 PostgreSQL 调优比较陌生。
设置:
- shared_buffers = 2048mb
- work_mem = 68mb
- 维护工作内存 = 1024mb
- 有效缓存大小 = 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 的有效方法吗?我应该如何自定义测试以正确反映我的数据和服务器实例?