AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 55043
Accepted
Matthieu
Matthieu
Asked: 2009-08-18 06:54:59 +0800 CST2009-08-18 06:54:59 +0800 CST 2009-08-18 06:54:59 +0800 CST

RAID 和数据库

  • 772

我使用 Postgresql 8.4,我想知道哪种类型的 RAID 最常用于数据库。我到处读到 RAID10 是最适合的,而 RAID5 不是一个好的选择。例如:http ://www.revsys.com/writings/postgresql-performance.html

我的服务器是戴尔 Poweredge 2950。戴尔支持人员告诉我,他们没有很多客户使用 RAID10。大多数时候,他们使用 RAID5 + RAID 控制器缓存 ON。

你怎么看?您的数据库服务器使用什么 RAID 级别?

谢谢 !

raid
  • 8 8 个回答
  • 1158 Views

8 个回答

  • Voted
  1. Best Answer
    KPWINC
    2009-08-18T08:12:12+08:002009-08-18T08:12:12+08:00

    波尔,

    如果您对数据库进行了大量写入,我可能会选择 RAID10。

    这是一个值得考虑的真实世界案例……将只有一个 1TB HDD 的文件服务器替换为具有四个 1TB 硬盘驱动器的新服务器。决定使用 RAID5。

    新机器上的性能明显变慢。后来发现服务器处理的写入比最初想象的要多得多。来自 RAID5 的写入惩罚非常糟糕。

    正确的决定是使用 RAID10。

    • 6
  2. Jeff Hengesbach
    2009-08-18T08:13:42+08:002009-08-18T08:13:42+08:00

    最佳答案取决于您的数据库更适合的配置文件:OLTP 或 OLAP。简单地说,您的数据库是进行更多的写入还是更多的读取?写入多于读取的数据库在 raid10 上的性能通常优于 raid5(假设使用相同数量的驱动器)。正如 Karl 所提到的,如果您的数据集(或驱动器)很大,请远离 R5,如果 R10 不是您的选择,请使用 R6。

    • 3
  3. carlito
    2009-08-31T12:31:05+08:002009-08-31T12:31:05+08:00

    它取决于工作负载,您必须进行基准测试。

    理论上,RAID 5 对于小写入操作很慢。大缓存可以极大地缓解这种情况(甚至对于给定的设置,它的性能与 RAID 1+0 相同)。

    通常 RAID 1+0 在政治上是困难的,因为额外的空间被视为浪费。尝试解释在 RAID5 上有可用于提高性能的空白空间是浪费空间的另一种形式。

    如果您无法进行基准测试并且您已经拥有磁盘空间,请始终使用 RAID 1+0。如果您无法进行基准测试并且您被迫使用 RAID5 或 RAID6,请确保您清楚地说明 RAID6 和 RAID5 对写入密集型负载具有最大的性能风险。确保坚持以一种在不首先进行测试的情况下产生最大性能风险的方式进行设置也以书面形式提出。

    当您进行基准测试时,请让执行基准测试的应用程序组清楚 RAID5 的工作原理,控制器具有缓存可以减轻小的写入损失这一事实,并且基准测试需要在与生产大小相同的数据集上进行.

    以书面形式完成所有这些。存储配置错误是许多环境中最常见的责备游戏。基本上,您不会被允许进行基准测试并且您将不得不猜测,因此请确保您有证据证明您做出了最佳猜测,或者您被告知做一些与最佳实践相反的事情。

    • 3
  4. Ali Mezgani
    2009-08-18T07:21:01+08:002009-08-18T07:21:01+08:00

    请在此处找到关于 HP Proliant DL380 G5 的性能和扩展报告。
    测试基于各种文件系统(jfs、xfs、reiserfs、ext2 和 ext3)。

    • 2
  5. Phillip
    2009-08-18T08:21:53+08:002009-08-18T08:21:53+08:00

    老实说,根据我的经验,从数据冗余的角度来看,我认为 RAID5 与 RAID10 没有区别。但是,由于 RAID 是条带化的,RAID10 提供了性能提升。RAID 10 基本上是 RAID0 和 RAID1。镜像了两个 RAID0 集 (RAID1)。我们使用 RAID5 而不是 RAID10。但我们不需要从 RAID10 获得性能提升。这仅取决于您的环境和您正在使用的内容。我建议尝试 RAID5。如果性能似乎较慢,请移至 RAID10 并查看性能提升是否有帮助。如果您有中小型工作负载,RAID5 应该可以解决问题。

    • 2
  6. Chopper3
    2009-08-18T07:01:14+08:002009-08-18T07:01:14+08:00

    为了获得最佳性能,请使用 SSD,然后是 R10,然后是 1 或 0,然后是 5,然后是 6。

    • 1
  7. David
    2009-08-18T07:05:49+08:002009-08-18T07:05:49+08:00

    使用 RAID5 是因为它比 RAID10 更容易设置和考虑。您不需要偶数个磁盘,并且更多人熟悉它。

    过去,我们一直做 RAID5(Dell PowerEdge 2650-2950),但在我们最新的机器(运行 MS-SQL,而不是 PostgreSQL)上,我测试了 RAID10 和 RAID5。我发现对于我们的工作负载,RAID10 给了我们适度的性能提升(~10%)。

    如果您有时间,我建议您设置两种方式的服务器并运行正常的数据库任务(备份和恢复,您可能执行的任何作业或报告)。

    • 1
  8. Karl Katzke
    2009-08-18T07:50:54+08:002009-08-18T07:50:54+08:00

    SSD 并不总是提供最佳性能。他们以有序块的形式读取数据,这可能不是数据库所需要的。

    在决定数据库使用什么 RAID 和文件系统时,重要的问题是:

    • 数据集/驱动器有多大?
    • 你有多少钱?
    • 是重读还是重写?

    如果数据集很大,即 > 10 TB,您将希望避免使用 RAID5。在重建阵列时,您可能会丢失第二个驱动器,从而导致数据完全丢失。RAID6 和 RAID10 是很好的配置文件,但请注意 RAID10 的限制。另外:选择一个不需要定期 fsck-ing 的日志文件系统;换句话说,避免使用 ext3 并使用 xfs 之类的东西……或者更好的是,使用 Solaris 并使用 zfs。您知道 fsck 10tb 卷需要多长时间吗?

    如果您有更多的钱,您可以购买一个外部机柜,并且可能会获得一些额外的速度提升,因为机器在读取数据集时不会尝试进行系统活动(记录等)。您还可以获得具有更多 RAM 和更高吞吐量或更快磁盘的更好的 RAID 控制器。基本上,你得到你所支付的。

    如果数据读取量很大,您可以坚持使用 Raid10。如果您的数据是平衡的读/写或写重,您可能最好坚持使用 raid6。

    • 1

相关问题

  • Windows 文件服务器性能调优

  • SSD TRIM 的硬件 RAID 控制器支持

  • 了解磁盘队列长度

  • 使用混合磁盘突袭 0?

  • Windows Server 2008 Hyper-V 虚拟化服务器的最佳 RAID 配置?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve