Linux系统性能分析——磁盘IO

本文介绍了Linux系统中磁盘I/O的基础知识,包括内存与磁盘I/O的关系、缺页中断、文件缓存区、页面类型等。详细讲解了如何通过iostat、iotop、vmstat等工具来监控和分析磁盘I/O状态,并提供了IO性能测试的方法,如hdparm、dd和fio。了解这些知识有助于优化系统性能和解决潜在的I/O瓶颈问题。
摘要由CSDN通过智能技术生成

一、引言
Linux系统的性能分析,基本上是分为CPU、内存、磁盘IO、网络这几个部分。

本篇介绍磁盘IO的性能分析。

二、磁盘I/O基础
1、内存与磁盘IO
磁盘通常是计算机最慢的子系统,也是最容易出现性能瓶颈的地方,因为磁盘离 CPU 距离最远而且 CPU 访问磁盘要涉及到机械操作,比如转轴、寻轨等。
内存和硬盘之间的 IO 是以为单位来进行的,在 Linux 系统上1页的大小为 4K。可以用以下命令查看系统默认的页面大小:
$ /usr/bin/time -v date

Page size (bytes): 4096

2、缺页中断
Linux 利用虚拟内存极大的扩展了程序地址空间,使得原来物理内存不能容下的程序也可以通过内存和硬盘之间的不断交换(把暂时不用的内存页交换到硬盘,把需要的内 存页从硬盘读到内存)来赢得更多的内存。

缺页中断可分为主缺页中断(Major Page Fault)次缺页中断(Minor Page Fault)。要从磁盘读取数据而产生的中断是主缺页中断;从内存缓存区中而不是直接从硬盘中读取数据而产生的中断是次 缺页中断。

上面的内存缓存区起到了预读硬盘的作用,内核先在物理内存里寻找缺页,没有的话产生次缺页中断从内存缓存里找,如果还没有发现的话就从硬盘读取。很 显然,把多余的内存拿出来做成内存缓存区提高了访问速度。查看某程序第一次启动的时候产生了多少主缺页中断和次缺页中断:
$ /usr/bin/time -v date

Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 230

3、File Buffer Cache
从内存缓存区(也叫文件缓存区 File Buffer Cache)读取页比从硬盘读取页要快得多,所以 Linux 内核希望能尽可能产生次缺页中断(从文件缓存区读),并且能尽可能避免主缺页中断(从硬盘读)。
随着次缺页中断的增多,文件缓存区也逐步增大,直到系 统只有少量可用物理内存的时候 Linux 才开始释放一些不用的页。查看物理内存和文件缓存区的情况:
$ cat /proc/meminfo
MemTotal: 19234000 kB
M

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值