您的位置:首页 > 博客中心 > 网络系统 >

Linux 性能监控 —— 磁盘 I/O

时间:2022-04-03 11:22

零. 前言 如果从磁盘(disk)中读取/写入数据, CPU 就会处于空闲状态, 大大浪费了这段等待时间 CPU 的计算能力。 所以SSD、 缓存、 内存、 寄存器之类的设计就是为了减少 CPU 的等待时间, 释放计算能力。 可以看出业界对磁盘 I/O 的重视, 以及磁盘 I/O 对系统的影响之大。

一.  如何查看磁盘 I/O

在 Linux 平台或者 BSD 平台下, 借助 top 命令可以清楚看到磁盘 I/O 情况。 

技术分享



二. 如何衡量磁盘 I/O 存在瓶颈 磁盘 I/O 是否存在瓶颈取决于当前机器 CPU 的总核数(总核数计算移步我的另一篇博文: )。 公式: X(IO) = 1/(cpu 总核数) 用来衡量磁盘 I/O 情况, 以上图的机器为例子, 这台机器 2 CPU 12 核 也就是总核心数为 2*12 = 24, X(IO) = 0.04166666 = 4.17%。  如果上图指标长时间大于 4.17%, 那么我们的网站响应可能就会变慢了。 

三. 影响 I/O 性能有哪几点 衡量 I/O 性能一个术语叫 IOPS(input/output per-second) 每秒输入或输出量
影响 IOPS 因素有如下 4 点: - 多重磁盘阵列(Multidisk Arrays): 阵列里越多磁盘 IOPS 越高。 如果一个 disk 有 250 IOPS, 则 2 个 disk 有 500 IOPS - 每个磁盘的平均 IOPS (Average IOPS per-drive): 磁盘速度越高, 当然 IOPS 越高 - RAID(具体参见 ) 因素: 使用 RAID 技术存储。 RAID 在写操作时有大量性能耗费。 对于 RAID6, 每次写需要 6 次磁盘操作。 RAID1 和 RAID10 每次写需要 2 次磁盘操作。  - 读写工作量(Read and Write Workload): 比如在 RAID 5 或者 RAID 6 有大量写操作, IOPS 将会很低

四. 如何解决 I/O 瓶颈问题 我们可以对磁盘进行调优, 这很复杂而且也不会超过 RAM 的速度。  所以, 可以先对 I/O 高的服务或应用进行处理, 最快的方法就是数据缓存到 RAM。 例如数据库服务器的内存配置到最高, 尽量缓存 SQL 的数据。 




本类排行

今日推荐

热门手游