我没有看到 Postgres 写入性能的提高,我认为我会使用单个 SSD 与 (16) 15k RPM SAS 驱动器的硬件 RAID 10 阵列。
我有一个戴尔 R820,带有 PERC H700 硬件 RAID 卡和 RAID 10 阵列中的 16 个 15k RPM SAS 驱动器,以及一个 800GB 的 Intel s3700 SSD。该服务器具有 128GB 的 RAM 和 64 核的 Xeon E5-4640,频率为 2.40GHz,运行 CentOS 6.4 和 Postgres 9.2.4。
我正在使用 pgbench 将 RAID 10 阵列中的 SAS 驱动器与单个 SSD 进行比较。
15k RPM SAS RAID 10 结果
pgbench -U postgres -p 5432 -T 50 -c 10 pgbench 开始真空……结束。 交易类型:TPC-B(有点) 比例因子:1 查询方式:简单 客户数量:10 线程数:1 …
我们在 CentOS 6.5 上运行 Postgres 9.4.4 并且有一个已经工作多年的 SELECT 查询,但在我们从 9.2 升级后停止工作并挂起(花了一段时间才注意到它,所以我不知道它是否是我们升级与否后立即)。
SELECT id || ':' || group_number AS uniq_id
FROM table_one
WHERE id || ':' || group_number NOT IN (
SELECT id || ':' || group_number
FROM table_two
)
AND id NOT IN (
SELECT id
FROM table_three
WHERE timestamp > NOW() - INTERVAL '30 days'
AND client_id > 0
);
Run Code Online (Sandbox Code Playgroud)
在所有表中id都是一个整数,但存储为character varying (15)(旧系统)。group_number存储为smallint.
table_two 的子查询返回大约 250 万条记录。的子查询table_three返回大约 2,500 条记录。如果单独运行,两者都在大约 …
我们的 Postgres 性能下降到原来的 1/4,我们不知道为什么。
我们有两台具有相同硬件的机器(我们称它们为 A 和 B):
Intel(R) Xeon(R) CPU E5-4640 0 @ 2.40GHz (64 cores)
384 GB RAM
15k SAS, 16 disk RAID 10 array
Run Code Online (Sandbox Code Playgroud)
每台机器都有基本相同的 Postgres 集群,大约有 100 GB 的数据库,具有以下设置:
version: PostgreSQL 9.4.4 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11), 64-bit
bytea_output: escape
checkpoint_completion_target: 0.7
checkpoint_segments: 256
checkpoint_timeout: 30min
client_encoding: UTF8
cpu_index_tuple_cost: 0.001
cpu_operator_cost: 0.0005
cpu_tuple_cost: 0.003
DateStyle: ISO, MDY
default_text_search_config: pg_catalog.english
dynamic_shared_memory_type: posix
effective_cache_size: 128GB
from_collapse_limit: 4
hot_standby: on
join_collapse_limit: 4
lc_messages: …Run Code Online (Sandbox Code Playgroud) performance database-tuning postgresql-9.4 performance-tuning postgresql-performance