我计划将我的一个开发数据库服务器移到自己的机器上。我目前在笔记本电脑上运行它,不太方便。
- DB Servel 是 PostgreSQL 9.0.1,
- 操作系统是 Gentoo。
只有一个开发服务器连接到数据库,因此查询不多。问题是数据量:我需要存储一份planet.osm,已经结束170 GB目前,这一数字仍在增加。
我正在寻找一种不需要购买昂贵硬件的解决方案,因为这毕竟不是生产服务器。我甚至可以重复使用我拥有的一些低端机器,唯一的例外是它们的硬盘。
所以我的问题是,我应该寻找什么类型的硬盘?
我目前使用相对便宜的1.5 TB外部 USB 驱动器上只有一个btrfs
分区,但我不确定它的速度是否足够快,以便数据库服务器可以在 170+ Gb 的大海中找到一根针。
我可以使用什么工具来测量 Linux 上的硬盘性能?
请注意,这个问题与这个,主要区别在于我没有构建生产服务器。
答案1
如果您主要想要读取性能,我建议采用 RAID10f2 路线,使用几个便宜的 1TB 驱动器(三星 F3 相当不错),或者如果您真的想要较低的访问时间:WD Velociraptors - 那些带有 SATA 端口的 10k rpm 磁盘。
Linux RAID10 驱动程序可以在 2 个或更多磁盘上执行 RAID10,因此您可以轻松扩展。而 f2 布局在相同数量的磁盘上具有 RAID0 的读取性能。
答案2
我不会使用 USB 驱动器——性能会很差。投资一些钱购买一台速度适中的 SATA 驱动器。如果您认为需要冗余,请考虑使用 RAID。
您可以花大约 1000 美元或更少的钱购买适合开发的 1U 系统(想想铁系统或者非常低端戴尔——请记住,性能在开发环境中并不是最重要的,它只需要“足够好”。
另一个选择是花费 6000-10000 美元购买 VMWare 主机并虚拟化整个环境(这是我的建议——它使生活变得轻松很多,并且您可以灵活地生成开发环境的副本来尝试更改或进行预发布测试。缺点是虚拟化性能几乎总是比专用机箱差,但就像我上面所说的那样,开发中的性能并不总是最终目标。
回复:你的基准测试问题,这个谷歌搜索可能是一个很好的起点,但老实说,我不会担心开发环境。当您比较系统时,基准测试磁盘确实最有用...
答案3
我建议使用一对三星 840 SSD 组成 RAID-10。您需要调整 Postgresql 以获得最佳性能,但对于小型随机读取,与硬盘相比,您应该可以预期性能提升约 15 倍。