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

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


一.  如何查看磁盘 I/O

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




二. 如何衡量磁盘 I/O 存在瓶颈
磁盘 I/O 是否存在瓶颈取决于当前机器 CPU 的总核数(总核数计算移步我的另一篇博文: Linux 性能监控 ---- Load Average)。 公式: 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(具体参见 https://en.wikipedia.org/wiki/RAID) 因素: 使用 RAID 技术存储。 RAID 在写操作时有大量性能耗费。 对于 RAID6, 每次写需要 6 次磁盘操作。 RAID1 和 RAID10 每次写需要 2 次磁盘操作。 
- 读写工作量(Read and Write Workload): 比如在 RAID 5 或者 RAID 6 有大量写操作, IOPS 将会很低

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




  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值