PG性能调校(二):数据库硬件及基准评测
一、CPU:更多的核心还是更快的核心?
最好方法是使用类似top的工具监控目前现有的服务器。
如果每一个CPU所运行的进程数量不多,那么对于这种类型的工作负荷则使用速度更快的核心会更好。这种情况经常在以批处理的方式运行大量查询的情况下发生,例如,在大批量的数据需要进行排序形成报表时。
如果所有的CPU都与并发进程处于活动状态,那么用户需要的可能是更多核心的CPU。这些情况在具有大量用户的应用程序中,例如,数据库支持的Web应用程序等很常见。
二、内存
给应用优先配置多少内存,实际上由工作中需要处理的最常见操作的数据集大小决定。
1.如果用户的数据集大小恰好能容纳于这种较小数量的RAM的时候,用户可能需要使用更快的CPU;
2.在一些数据仓库的环境下,所运行的程序扫描的表大小大于用户可以给其分配的内存大小时,用户需要更快的硬盘。
三、磁盘
基准评测工具:
memtest86+:会报告其所识别的每个缓存级别上的各种内存的速度。最有用的是在报告中Memory:行上的MB/s的值。这个值表明到主系统RAM内存访问速度的快慢,有利于确认性能和基准的匹配程度。
数据库目录树:
base:保存默认表空间pg_default;
global:保存虚拟表空间pg_global;
pg_clog:保存事务提交的日志数据;
pg_stat_tmp:保存包含用于保存数据库统计信息的文件;
pg_tblspc:当用户创建新的表空间时,保存用于管理的符号链接;
pg_xlog:保存用于故障恢复的数据库WAL;
pg_subtrans:包含与子事务相关的数据;
pg_multixact:包含多事务状态的数据;
pg_twophase:保存与两阶段提交有关的数据。