前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >磁盘文件读性能测试

磁盘文件读性能测试

作者头像
一见
发布2018-08-10 16:09:50
1.4K0
发布2018-08-10 16:09:50
举报
文章被收录于专栏:蓝天蓝天

.pdf

未缓存前:

代码语言:javascript
复制
time ./x bin.tar
file size is 816322560
816322560 bytes read now
real    0m3.378s
user    0m0.000s
sys     0m0.996s

被缓存后:

代码语言:javascript
复制
time ./x bin.tar
file size is 816322560
816322560 bytes read now
real    0m0.770s
user    0m0.000s
sys     0m0.768s

硬盘读取性能:

hdparm -t /dev/sdb 

/dev/sdb:

 Timing buffered disk reads: 2454 MB in  3.00 seconds = 817.84 MB/sec

10块物理磁盘,做了Raid10,因此读性能高,达每秒817.84MB。

测试程序:

代码语言:javascript
复制
// 非优化方式编译:g++ -g -o x x.cpp
#include
#include
#include
#include
#include
#include
#include
#include
// 带一个参数,为被读取文件的大小
int main(int argc, char* argv[])
{
int fd = open(argv[1], O_RDONLY);
if (-1 == fd)
{
perror(strerror(errno));
exit(1);
}
struct stat st;
if (0 == fstat(fd, &st))
{
// 输出文件大小,单位为字节
printf("file size is %d\n", st.st_size);
// 一次性将整个文件读到内存中
char* bytes = new char[st.st_size];
int bytes_read = read(fd, bytes, st.st_size);
// 显示实际成功读取的字节数
printf("%d bytes read now\n", bytes_read);
delete []bytes;
}
close(fd);
return 0;
}

清缓存:

使用free命令观察下列操作的变化,以root用户执行:先执行下sync命令,以将数据更新到磁盘,再执行echo 3 > /proc/sys/vm/drop_caches,以清除系统的cached。

文件内存的缓存会反应出free命令输出的cached值的变化,实际就是Page cache,文件内容的读取会缓存在这里。如果读取一个大文件,可以看到cached的值明显增涨,并且增涨大小差不多就是文件的大小,buffers相当于cached的元信息,比如文件的inode。

cached影响文件的读取性能,而buffers影响到文件的打开性能。

drop_caches使用汇总:

echo 0 > /proc/sys/vm/drop_caches

不做释放

echo 1 > /proc/sys/vm/drop_caches

释放Page Cache

echo 2 > /proc/sys/vm/drop_caches

释放Dentries/inodes Cache(其中,Dentry是目录信息,inode是文件信息)

echo 3 > /proc/sys/vm/drop_caches

释放Page和Dentries/inodes Cache

这个特性由2.6.16内核开始提供,参考资料:

1) /proc/sys/vm/drop_caches

http://linux-mm.org/Drop_Caches

2) Linux Buffer vs Cache explained

http://random-techbits.blogspot.com/2012/06/linux-buffer-vs-cache-explained.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-04-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档