三十、如何迅速分析出系统I/O的瓶颈在哪里?

简介: 最容易想到的是存储空间的使用情况,包括容量、使用量以及剩余空间等。我们通常也称这些为磁盘空间的使用量,因为文件系统的数据最终还是存储在磁盘上。

性能指标

文件系统I/O性能指标

最容易想到的是存储空间的使用情况,包括容量、使用量以及剩余空间等。我们通常也称这些为磁盘空间的使用量,因为文件系统的数据最终还是存储在磁盘上。

元数据

这些只是文件系统向外展示的空间使用,而非在磁盘空间的真实用量,因为文件系统的元数据也会占用磁盘空间。

RAID

如果你配置了 RAID,从文件系统看到的使用量跟实际磁盘的占用空间,也会因为RAID 级别的不同而不一样。比方说,配置 RAID10 后,你从文件系统最多也只能看到所有磁盘容量的一半。

索引节点

如果文件系统中存储过多的小文件,就可能碰到索引节点容量已满的问题

缓存

页缓存、目录项缓存、索引节点缓存以及各个具体文件系统(如 ext4、XFS 等)的缓存。这些缓存会使用速度更快的内存,用来临时存储文件数据或者文件系统的元数据,从而可以减少访问慢速磁盘的次数。

文件 I/O

  • IOPS(包括 r/s 和 w/s)
  • 响应时间(延迟)
  • 吞吐量(B/s)

在考察这类指标时,通常还要考虑实际文件的读写情况。比如,结合文件大小、文件数量、I/O 类型等,综合分析文件 I/O 的性能

通过系统调用动态跟踪或者基准测试等方法,间接进行观察、评估得到这些KPI。

磁盘I/O性能指标

四个核心的磁盘 I/O 指标

  • 使用率,是指磁盘忙处理 I/O 请求的百分比。过高的使用率(比如超过 60 - 80%,要结合实际硬件水平)通常意味着磁盘 I/O 存在性能瓶颈。
  • IOPS(Input/Output Per Second),是指每秒的 I/O 请求数。
  • 吞吐量,是指每秒的 I/O 请求大小。
  • 响应时间,是指从发出 I/O 请求到收到响应的间隔时间。

分析场景

如读写类型(顺序还是随机)、读写比例、读写大小、存储类型(有无 RAID 以及 RAID 级别、本地存储还是网络存储)等

缓冲区(Buffer)对I/O分析的影响

buffer的使用经常出现在内存和磁盘问题

性能指标找工具

从工具能知道哪些指标

如何迅速分析 I/O 的性能瓶颈

1. 先用 iostat 发现磁盘 I/O 性能瓶颈;

2. 再借助 pidstat ,定位出导致瓶颈的进程;

3. 随后分析进程的 I/O 行为;

4. 最后,结合应用程序的原理,分析这些 I/O 的来源。

ea202407370645a7ae4a64af5c38602f.png

目录
相关文章
|
5月前
|
缓存 算法 Java
Linux内核新特性年终大盘点-安卓杀后台现象减少的背后功臣MGLRU算法简介
MGLRU是一种新型内存管理算法,它的出现是为了弥补传统LRU(Least Recently Used)和LFU(Least Frequently Used)算法在缓存替换选择上的不足,LRU和LFU的共同缺点就是在做内存页面替换时,只考虑内存页面在最近一段时间内被访问的次数和最后一次的访问时间,但是一个页面的最近访问次数少或者最近一次的访问时间较早,可能仅仅是因为这个内存页面新近才被创建,属于刚刚完成初始化的年代代页面,它的频繁访问往往会出现在初始化之后的一段时间里,那么这时候就把这种年轻代的页面迁移出去
|
2月前
|
存储 缓存 监控
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(场景问题分析+性能影响因素)
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(场景问题分析+性能影响因素)
36 0
|
8月前
|
存储 NoSQL 算法
线上真实排队系统重构案例分享——实战篇
线上真实排队系统重构案例分享——实战篇
256 0
|
11月前
|
SQL 存储 缓存
我们常说的数据库优化,可以从哪些维度入手?
我们常说的数据库优化,可以从哪些维度入手?
101 0
|
12月前
|
存储 固态存储 关系型数据库
短链系统设计-场景需求及性能要求分析
如脉脉,不会纵容你发太长的网址,会给你转成短链。
140 0
|
JSON 缓存 JavaScript
提高系统吞吐量的一把利器:DeferredResult 到底有多强?
提高系统吞吐量的一把利器:DeferredResult 到底有多强?
|
存储 SQL 缓存
如何设计一个支持一亿用户的系统,心中有方案遇事不慌!
如何设计一个支持一亿用户的系统,心中有方案遇事不慌!
157 0
如何设计一个支持一亿用户的系统,心中有方案遇事不慌!
|
消息中间件 缓存 NoSQL
瓶颈分析|学习笔记
快速学习瓶颈分析
71 0
|
8天前
|
SQL 缓存 Java
如何做好大促时的系统高可用
如何在大促中做好系统高可用是大家都非常关心的一个问题,特别是在双十一之前,在大促过程中做好系统高可用保障是有双十一大促的客户都会了解的一个内容。大流量、系统内部/下游不稳定、单机故障、热点请求等等一系列的问题都会导致一些非预期的情况。那么今天就围绕大促来谈谈,如何在非预期的情况下,始终保持我们的系统...
如何做好大促时的系统高可用
|
缓存 负载均衡 算法
一对一源码开发,减少用户焦虑的三大优化要点
一对一源码开发,减少用户焦虑的三大优化要点