84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
想测试一下我的ssd硬盘能达到多少的iops,但是读写的时候因为linux系统会自动将读写操作进行cache,也就没法真实的验证性能了,有没有办法可以把这个特性先关闭? 写操作还好办,可以每次写入之后调用fsync强制写入磁盘,读取有类似的方法么?补充一下,我不是想直接用现有的工具进行测试,我是自己写了一个读写io的程序(c++),想测试一下对应的iops
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
没找到完全关闭的方法,读缓存可以通过 echo 3 > /proc/sys/vm/drop_caches 暂时清除
crontab 0 */1 * * * root sync && echo 3 > /proc/sys/vm/drop_caches
dd 命令 后面加参数 ,具体可以Google 一下.或者,测试数据是内存的两倍
hdparm -W hdparm -t
time dd if=/dev/zero of=test bs=64k count=512 oflag=dsync 参数解释: if 输入文件 of 输出文件 bs 一次读取和写入的bytes字节数 count 写入数据块的次数,也可以设为512. oflag=dsync 强制每次写入物理硬盘,也就是不写入缓存,直接写硬盘 执行完毕后将在当前目录生成一个32M(64*512)的test文件. 固态硬盘达到70MB/秒,机械硬盘估计也就2MB/秒左右.
没找到完全关闭的方法,读缓存可以通过 echo 3 > /proc/sys/vm/drop_caches 暂时清除
crontab
0 */1 * * * root sync && echo 3 > /proc/sys/vm/drop_caches
dd 命令 后面加参数 ,具体可以Google 一下.或者,测试数据是内存的两倍
hdparm -W
hdparm -t
time dd if=/dev/zero of=test bs=64k count=512 oflag=dsync
参数解释:
if 输入文件
of 输出文件
bs 一次读取和写入的bytes字节数
count 写入数据块的次数,也可以设为512.
oflag=dsync 强制每次写入物理硬盘,也就是不写入缓存,直接写硬盘
执行完毕后将在当前目录生成一个32M(64*512)的test文件.
固态硬盘达到70MB/秒,机械硬盘估计也就2MB/秒左右.