Postgres:你还在用SSD分离数据和索引吗
Postgres: Do you still separate data and indexes with SSDs
人们是否仍将数据和索引分开以提高性能,还是当前的 SSD 使这种做法成为过去的古怪做法?
我看到了一个新的独立系统,在 6 个 RAID0 镜像中有 (12 4 TB ssd),上面有 RAID1 条带,并作为单个安装点显示 (/pgdata/vd0)。
询问其他 DBA 是否会要求重建它并与硬件人员进行激烈的互动,或者只是 运行 并在上面放置一个数据仓库?
高高在上的提问
答案总是"it depends"。如果索引通常适合 RAM,则无关紧要。如果您要提取的数据包括来自磁盘的大量结果集,那么它可能不会产生太大影响,因为 HDD 上的随机访问将主导整个交互。
SSD 与 OLTP 进行大量随机访问调用的工作负载有很大的不同,但不仅限于索引。 SSD 只会让一切变得更快。
这种做法也经常被 ZFS's Adaptive Replacement Cache which intelligently send reads/writes of the most used sectors to the SSD for speed in a similar fashion to SSHDs 等选项所取代,但基于文件系统。
总而言之,每个数据库在结构、容量和使用模式方面都是不同的。调整硬件和软件的最佳方法是测试您的特定用例并分析结果。没有灵丹妙药,这包括 "index on an SSD" 选项。
在对不同的 raid 配置和表空间布局进行测试后,我发现使用 SSD 将索引与数据分离仍然有 15% 的性能提升。结束了这个配置..它的速度很快!
英特尔(R) 至强(R) CPU
E5-2630 v4 @ 2.20GHz
6 x 4TB SSD - RAID 10 - 单安装点
2 x 2TB SSD - RAID 10 - 日志
2 x 2TB SSD - RAID10 - 索引
人们是否仍将数据和索引分开以提高性能,还是当前的 SSD 使这种做法成为过去的古怪做法?
我看到了一个新的独立系统,在 6 个 RAID0 镜像中有 (12 4 TB ssd),上面有 RAID1 条带,并作为单个安装点显示 (/pgdata/vd0)。
询问其他 DBA 是否会要求重建它并与硬件人员进行激烈的互动,或者只是 运行 并在上面放置一个数据仓库?
高高在上的提问
答案总是"it depends"。如果索引通常适合 RAM,则无关紧要。如果您要提取的数据包括来自磁盘的大量结果集,那么它可能不会产生太大影响,因为 HDD 上的随机访问将主导整个交互。
SSD 与 OLTP 进行大量随机访问调用的工作负载有很大的不同,但不仅限于索引。 SSD 只会让一切变得更快。
这种做法也经常被 ZFS's Adaptive Replacement Cache which intelligently send reads/writes of the most used sectors to the SSD for speed in a similar fashion to SSHDs 等选项所取代,但基于文件系统。
总而言之,每个数据库在结构、容量和使用模式方面都是不同的。调整硬件和软件的最佳方法是测试您的特定用例并分析结果。没有灵丹妙药,这包括 "index on an SSD" 选项。
在对不同的 raid 配置和表空间布局进行测试后,我发现使用 SSD 将索引与数据分离仍然有 15% 的性能提升。结束了这个配置..它的速度很快!
英特尔(R) 至强(R) CPU E5-2630 v4 @ 2.20GHz
6 x 4TB SSD - RAID 10 - 单安装点 2 x 2TB SSD - RAID 10 - 日志 2 x 2TB SSD - RAID10 - 索引