linux 磁盘io分析 整理

1.dd命令(基本的测试磁盘io的命令)
 dd if=/dev/sda of=test.flie bs=1M count=512 conv=fdatasync
if 读取文件位置
of 写入文件
bs 读写字节单位
count 块数
conv=fdatasync 保证读写到磁盘,而不是内存中。

echo 3 > /proc/sys/vm/drop_caches
清除缓存。(注意在运行dd命令之前首先 运行此命令清除缓存以确保运行不受缓存影响)

2.hdparm
eg: hdparm -T /dev/sda
-T  测试内存的读写速度
-t   测试磁盘io的读写速度

 dmesg | grep data  查看当前磁盘信息


bonni++ 与 iozone  
需要手动安装 
先下载repoforge 配置yum源(根据自己的操作系统安装64位或者32位) http://pan.baidu.com/s/1jGxJ9Sa
rpm -vih rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
安装完成后
yum -y install bonni++
yum -y install iozone

3.bonni++

bonnie++ -u root   以root用户自动化运行
测试类型为顺序读写文件,随机读写文件,顺序创建文件,随机创建文件。

运行结果分析
-Per Chr- 以字符的形式读写
-Block -   以块的形式读写
-Rewrite- 重写
-Seeks--   寻道操作 (寻道是磁盘io中最耗时的一个操作。一量刺头找到磁道,并且相应的扇区转到磁头下面,数据开始传输)


4.iozone 
可以进行多线程并发测试io 
iozone -l 1 -u 1 -r 16k -s 4096m
-l 最低进程数
-u 最大进程数
-r 记录长度大小
-s 测试文件大小 一般情况下设为内存的2倍

结果分析:
 reverse readers   反向读, 就是从文件结尾处开始向前读的操作
stride readers      步进读,可以这样理解,比如开始我读4kb数据,然后再读200kb的数据,这样读取不同大小的数据来实现一些特殊数据结构的测试。
Linux磁盘IOLinux内核的一部分,用于处理与磁盘的输入输出相关的操作。磁盘IO操作包括读取和写入数据到磁盘。在Linux中,磁盘IO操作主要涉及到两个重要的组件:页高速缓存(PageCache)和目录项缓存(dentry)。 页高速缓存是Linux内核引入的一种机制,用于优化磁盘IO的性能。它将磁盘抽象成一个个固定大小的连续页面,通常为4K。通过使用页高速缓存,Linux内核可以将磁盘上的数据加载到内存中,并在需要时直接从内存中读取和写入数据,而无需频繁地进行磁盘操作。这种机制大大提高了磁盘IO的效率和性能。 目录项缓存是用于加速文件路径查找的一种缓存机制。在Linux中,每个文件都存在于某个目录中,当我们根据路径查找文件时,内核需要遍历目录来找到相应的目录项。为了提高性能,Linux使用了目录项缓存,将目录项存储在缓存中,以减少对磁盘的读取次数。当需要查找文件时,Linux首先在目录项缓存中查找对应的目录项,如果找到则直接返回,否则才需要从磁盘中读取目录数据并查找目标文件。这种机制可以有效地加速文件路径查找的过程。 综上所述,Linux磁盘IO涉及到页高速缓存和目录项缓存两个重要的机制,它们都是为了优化磁盘IO操作的性能和效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Linux内核io体系之磁盘io](https://blog.csdn.net/qq_23929673/article/details/103845249)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值