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 / 问题 / 1160422
Accepted
René Nyffenegger
René Nyffenegger
Asked: 2024-06-05 03:03:48 +0800 CST2024-06-05 03:03:48 +0800 CST 2024-06-05 03:03:48 +0800 CST

我可以确定使用多少 CPU 来计算 RAID 奇偶校验吗?

  • 772

我有一个 RAID 5 阵列,数据库可以从中读取和写入少量数据。

在正常情况下,包括提交在内的数据库操作会在可接受的时间内运行。但是,当大量数据加载到 RAID 阵列(但未加载到数据库)时,提交(但不是其他操作)会变得慢得令人无法接受。

我当前的假设是提交花费的时间太长,因为需要计算奇偶校验信息和/或将其写入磁盘。

有没有办法可以验证我的假设,即是否有一个工具可以显示计算奇偶校验信息所需的 CPU 数量以及这是否是瓶颈。

此外,我正在考虑将阵列移至 RAID 10 或 RAID 1。但在这样做之前,是否有一种科学的方法可以让我估计是否值得这样做?

我正在运行带有软件 RAID 的 Debian 12(/dev/md/)。

raid
  • 1 1 个回答
  • 65 Views

1 个回答

  • Voted
  1. Best Answer
    Max Haase
    2024-06-05T04:38:58+08:002024-06-05T04:38:58+08:00

    打开几个终端并留意top或htop。特别注意数据库提交期间 CPU 使用率的峰值。

    top
    

    或者

    htop
    

    使用iostat查看 CPU 在 I/O 操作上花费了多少时间:

    iostat -x 1
    

    sar命令可用于收集、报告或保存系统活动信息,其中包括 CPU 使用率。

    sar -u 1 5
    

    为您提供 CPU 使用情况的概览,包括系统和 I/O 等待时间

    根据您使用的 RAID 控制器或软件 RAID,可能会有特定的工具或日志可以深入了解 RAID 操作。对于 mdadm,请检查 /proc/mdstat 以了解 RAID 状态。使用iostat -xmd 1获取详细的 RAID I/O 统计信息。

    此外,还分析数据库提交过程。使用 strace跟踪系统调用和信号。这可以帮助确定流程大部分时间都花在哪里。

    strace -c -p <database_pid>
    

    这将总结系统调用的使用情况,并可能突出显示 I/O 操作所花费的时间。

    使用perf来分析系统并找出瓶颈。

    perf top
    

    或者

    perf record -a -g
    

    其次是

    perf report
    

    我猜你已经做完了这一切。

    RAID 10 可能会显着提高性能,但在发布一些 RFC 之前,我会用经验结果正确记录并对其进行审查。接下来的事情需要付出一些努力,但这绝对是值得的。

    使用基准测试工具来衡量更改前后的性能。fio (Flexible I/O Tester)等工具可用于模拟数据库负载并测量性能。

    重要信息:
    创建一个独立的测试环境来设置 RAID 10 阵列并对其进行基准测试,而不会影响您当前的生产系统。

    在现有 RAID 5 阵列上执行 fio 基准测试:

    fio --name=raid5-test --rw=randwrite --bs=4k --size=1G --numjobs=4 --time_based --runtime=60 --group_reporting --filename=/path/to/raid5/storage
    

    创建测试 RAID 10 阵列:

    mdadm --create --verbose /dev/md-test --level=10 --raid-devices=4 /dev/sdx /dev/sdy /dev/sdz /dev/sdw
    

    使用备用或虚拟磁盘进行此测试设置(/dev/sdx、/dev/sdy 等)。

    格式化并安装测试 RAID 10 阵列:

    mkfs.ext4 /dev/md-test
    mkdir /mnt/raid10-test
    mount /dev/md-test /mnt/raid10-test
    

    在 RAID 10 上运行 fio 基准测试:

    fio --name=raid10-test --rw=randwrite --bs=4k --size=1G --numjobs=4 --time_based --runtime=60 --group_reporting --filename=/mnt/raid10-test/testfile
    

    比较 RAID 5 和 RAID 10 基准测试的 fio 结果以评估性能改进。

    评估结果

    CPU Usage and I/O Wait:
    Analyze the iostat and strace outputs to identify if CPU usage for parity calculation is a significant bottleneck.
    
    Benchmark Results:
    Compare the throughput, latency, and IOPS from the fio tests on RAID 5 and RAID 10.
    

    要比较的指标:

    IOPS: Higher is better. Compare the IOPS for write operations.
    Bandwidth (BW): Higher is better. Compare the throughput in MiB/s.
    Latency: Lower is better. Compare the average, min, and max latencies.
    Standard Deviation (stdev): Lower is better. Indicates consistency in performance.
    

    然后决定迁移到 RAID 10 根据您的基准测试和 CPU 使用情况分析,您可以就切换到 RAID 10 是否能够解决性能问题做出明智的决定。

    通过在隔离环境中创建测试 RAID 10 阵列,您可以对其性能进行基准测试并将其与当前的 RAID 5 设置进行比较,而无需中断生产系统。通过这种方式,您可以科学地评估迁移到 RAID 10 是否值得,以及它是否能有效解决您的性能问题。

    祝你好运!

    • 3

相关问题

  • Windows 文件服务器性能调优

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

  • 了解磁盘队列长度

  • 使用混合磁盘突袭 0?

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

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +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