免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 10369 | 回复: 13
打印 上一主题 下一主题

[文件系统] dd if=/dev/zero of=/dev/null ... 何解? 测量内存吞吐量?[已解决] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-05-22 16:20 |只看该作者 |倒序浏览
本帖最后由 lovegq 于 2013-05-23 09:07 编辑

公司有人用
=====================================
time dd if=/dev/zero of=/dev/null bs=4M count=10240
=====================================

据说是 简易测试内存吞吐量
从结果看 大概 20G/s 上下 , cpu 100%, 几乎全在系统态 (rhel5u2 8核 8G )

疑问: 这命令到底能干嘛? 真的能测内存速度?
free -m 没有看到 page cache 增长

内核代码刚入门, 追着vfs_read就追丢了,也不知道到底怎么样
这命令 会是
1 分配一个0页面,拷贝到用户态,再丢掉 ?
2 直接 用户态的buf 反复清零 ?
3 啥都不干?
4 超 page cache 拷贝一个0页面,再拷到用户态,再拷回page cache ??

不懂 不懂

论坛徽章:
10
戌狗
日期:2013-10-17 09:43:0215-16赛季CBA联赛之广东
日期:2018-02-05 11:22:1215-16赛季CBA联赛之八一
日期:2016-07-04 12:26:1815-16赛季CBA联赛之青岛
日期:2016-06-08 11:15:4115-16赛季CBA联赛之辽宁
日期:2016-04-05 10:10:1415-16赛季CBA联赛之辽宁
日期:2016-03-11 11:11:48酉鸡
日期:2014-12-18 14:35:48狮子座
日期:2014-02-20 10:14:07寅虎
日期:2013-12-02 13:48:2915-16赛季CBA联赛之广夏
日期:2018-03-21 08:51:10
2 [报告]
发表于 2013-05-22 16:38 |只看该作者
呵呵,挺有意思的哈。
通常我们用dd来测试文件系统IO性能,不过像lz这样的没用过。

论坛徽章:
1
15-16赛季CBA联赛之新疆
日期:2017-03-09 12:33:45
3 [报告]
发表于 2013-05-22 16:39 |只看该作者
回复 1# lovegq
  1. int memtest()
  2. {
  3.         int memsize = (1<<22);
  4.         unsigned char* pChar = malloc(memsize);
  5.         int i;

  6.         for (i=0;i<10240;i++)
  7.         {
  8.                 memset(pChar,0,memsize);
  9.         }
  10.         free(pChar);
  11.         return 0;
  12. }
复制代码
你同事,写的是SHELL代码,而我用C代码来还原。它实际上做的,就是这个内容。只是多加了几个系统调用。
至于你说的/dev/zero /dev/null 这个是设备文件。这个具体内容要看<linux device driver>或者是学习LINUX内核框架。

论坛徽章:
0
4 [报告]
发表于 2013-05-22 18:59 |只看该作者
回复 3# jeppeter


    按阁下的意思就是 2 了, 直接在一个内存区反复清零操作 ?
=======================================
这命令 会是
1 分配一个0页面,拷贝到用户态,再丢掉 ?
2 直接 用户态的buf 反复清零 ?
3 啥都不干?
4 超 page cache 拷贝一个0页面,再拷到用户态,再拷回page cache ??
=======================================

论坛徽章:
1
15-16赛季CBA联赛之新疆
日期:2017-03-09 12:33:45
5 [报告]
发表于 2013-05-23 03:48 |只看该作者
回复 4# lovegq


    你这本身的理解是对的。这样才是测试内存吞吐量。但这个命令不是2,而是简洁明快。因为它用了SHELL命令的方式,如果你能接触到那个同事,可以亲自问一下,相信他的回答与我差不多。

论坛徽章:
0
6 [报告]
发表于 2013-05-23 09:06 |只看该作者
本帖最后由 lovegq 于 2013-05-23 09:09 编辑

回复 5# jeppeter


   十分感谢阁下的解答。顺便多问一句,我google了半天也没有答案,问别人也是含含糊糊,阁下是通过什么方式找到答案的?
看内核代码么? 授之以鱼不如授之以渔,恳请赐教。

论坛徽章:
1
水瓶座
日期:2013-09-28 21:40:25
7 [报告]
发表于 2013-05-23 21:44 |只看该作者
drivers/char/mem.c

论坛徽章:
0
8 [报告]
发表于 2013-05-23 23:57 |只看该作者
回复 7# bensenq


    多谢,果然找到了 read_zero

论坛徽章:
9
程序设计版块每日发帖之星
日期:2016-02-13 06:20:00数据库技术版块每日发帖之星
日期:2016-06-15 06:20:00数据库技术版块每日发帖之星
日期:2016-06-16 06:20:00数据库技术版块每日发帖之星
日期:2016-06-18 06:20:00程序设计版块每日发帖之星
日期:2016-06-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-09 06:20:00IT运维版块每日发帖之星
日期:2016-07-15 06:20:00IT运维版块每日发帖之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-08-18 06:20:00
9 [报告]
发表于 2013-05-24 09:22 |只看该作者
本帖最后由 mordorwww 于 2013-05-24 09:31 编辑
jeppeter 发表于 2013-05-22 16:39
回复 1# lovegq 你同事,写的是SHELL代码,而我用C代码来还原。它实际上做的,就是这个内容。只是多加了几个 ...


如果只是一块小内存反复地读写,那就是操作CPU cache了,测试不出内存吞吐量的

除非你能找一大块空闲内存,远大于CPU cache

论坛徽章:
9
程序设计版块每日发帖之星
日期:2016-02-13 06:20:00数据库技术版块每日发帖之星
日期:2016-06-15 06:20:00数据库技术版块每日发帖之星
日期:2016-06-16 06:20:00数据库技术版块每日发帖之星
日期:2016-06-18 06:20:00程序设计版块每日发帖之星
日期:2016-06-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-09 06:20:00IT运维版块每日发帖之星
日期:2016-07-15 06:20:00IT运维版块每日发帖之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-08-18 06:20:00
10 [报告]
发表于 2013-05-24 09:34 |只看该作者
本帖最后由 mordorwww 于 2013-05-24 09:35 编辑

这是我的测试结果,差别很大

[long@root]time dd if=/dev/zero of=/dev/null bs=1M count=40240
40240+0 records in
40240+0 records out
42194698240 bytes (42 GB) copied, 1.53453 s, 27.5 GB/s

real    0m1.535s
user    0m0.006s
sys     0m1.529s
[long@root]time dd if=/dev/zero of=/dev/null bs=4M count=10240
10240+0 records in
10240+0 records out
42949672960 bytes (43 GB) copied, 4.17025 s, 10.3 GB/s

real    0m4.171s
user    0m0.024s
sys     0m4.146s

long@root]time dd if=/dev/zero of=/dev/null bs=400M count=102  
102+0 records in
102+0 records out
42781900800 bytes (43 GB) copied, 4.75104 s, 9.0 GB/s

real    0m4.768s
user    0m0.000s
sys     0m4.766s
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP