免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: redor
打印 上一主题 下一主题

[C] 探讨一个读文件内核IO cache的问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-01-28 18:56 |只看该作者
原帖由 jamesr 于 2009-1-23 09:46 发表
有看到一个想关闭cache的。

不用cache只有两种情况:
1、cache不能用;
2、数据只流过一次,只需buffer就行了。

无论如何direct IO都是最慢的。



有时候很多文件数据只要读一次, 可内核帮你cache所有页, 这样很显然内存用光了每次都要去计算一遍然后再分给你内存.... 性能会下降.....

论坛徽章:
0
12 [报告]
发表于 2009-01-29 02:49 |只看该作者
你所说的预读等,在文件系统层体现的最为明显。

以通常情况下讨论,注意到性能方面 CPU > 内存 > 磁盘 而且是远大于的关系

所以,一般情况下有cache比没有cache性能提高要好很多的。

但是,cache带来的性能提高需要考虑命中率,一般情况下,根据局部性原理,cache命中率是非常高的,带来的效益也非常高。

我说的是一般情况。不排除个别情况,cache一直处于“交换”状态,这时有cache反而不如没有。

权衡比较一下,有cache提高的性能比没有要好的多。

论坛徽章:
0
13 [报告]
发表于 2009-02-01 16:36 |只看该作者
原帖由 redor 于 2009-1-22 22:50 发表

我刚刚测试了一下, linux还在做swap, 我14G内存也搞swap......


Linux在物理页不够用时会首先减小BUFFER和PAGE CACHE,然后才会进行换出。也就是说LINUX不会在CACHE占用大量物理内存的情况下就决定换出。

对你的测试表示严重的怀疑和不信任,还是贴出测试方案吧。

论坛徽章:
0
14 [报告]
发表于 2009-02-02 14:31 |只看该作者
可是AS4上没有drop_caches这个文件怎么办?

论坛徽章:
0
15 [报告]
发表于 2009-02-02 15:51 |只看该作者
原帖由 JohnBull 于 2009-2-1 16:36 发表


Linux在物理页不够用时会首先减小BUFFER和PAGE CACHE,然后才会进行换出。也就是说LINUX不会在CACHE占用大量物理内存的情况下就决定换出。

对你的测试表示严重的怀疑和不信任,还是贴出测试方案吧。



同怀疑。

论坛徽章:
0
16 [报告]
发表于 2009-02-04 15:32 |只看该作者
我以前发过的一帖子 也设计到写日志文件 占用cache的问题  系统free内存 保持在最小状态
[root@localhost vm]# free -m
                                  total       used       free     shared    buffers     cached
Mem:                          996        991          5          0           43            672
-/+ buffers/cache:                     275        721
Swap:                         509          0        509

如果是老版本的内核  既没有drop_cache 又不使用 direct IO    怎么恢复被占用的系统内存
?
/proc/sys/vm下的哪个参数可以限制 最后的那个cached

[ 本帖最后由 senic 于 2009-2-4 15:38 编辑 ]

论坛徽章:
0
17 [报告]
发表于 2009-02-04 20:09 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
18 [报告]
发表于 2009-02-05 14:08 |只看该作者
原帖由 jamesr 于 2009-2-4 20:09 发表
是这个吧!
http://bbs.chinaunix.net/viewthread.php?tid=1333671#pid9786007

我说讨论这个问题的,到底有几个懂什么是cache的?
就盯着可用内存那个数字看?随便找台机器,cp一个大文件,free值马上变成 ...



你确认你了解事情的本质么?  你测试过么? 我在mac os x 下测试过, 在我的linux上也测试过, 内存用光的时候明显速度慢了, 因为系统在不断的swap....

能不减慢速度么? 要知道内核的cache被占用以后并不是想分出来就分出来的..... 虽然内核支持cache自动回收...
我在mac os x下对fd 做了fcntl(fd, F_NOCACHE, 1) 以后整体的性能是有提升的.
了解点东西就在这装B的人我真不咋的乐意看到!!!!!

论坛徽章:
0
19 [报告]
发表于 2009-02-05 14:16 |只看该作者
原帖由 jamesr 于 2009-2-4 20:09 发表
是这个吧!
http://bbs.chinaunix.net/viewthread.php?tid=1333671#pid9786007

我说讨论这个问题的,到底有几个懂什么是cache的?
就盯着可用内存那个数字看?随便找台机器,cp一个大文件,free值马上变成 ...



这个跟我遇到的问题类似
http://www.unixresources.org/lin ... 0/33/54/335481.html

看看这段文字.....
不行你就连续读一个大于你机器物理内存的文件测试一下看看....

  1. [url]http://www.ibm.com/developerworks/cn/linux/l-cache/[/url]
  2.  在 Linux
  3. 操作系统中,当应用程序需要读取文件中的数据时,操作系统先分配一些内存,将数据从存储设备读入到这些内存中,然后再将数据分发给应用程序;当需要往文件
  4. 中写数据时,操作系统先分配内存接收用户数据,然后再将数据从内存写到磁盘上。文件 Cache
  5. 管理指的就是对这些由操作系统分配,并用来存储文件数据的内存的管理。 Cache 管理的优劣通过两个指标衡量:一是 Cache
  6. 命中率,Cache 命中时数据可以直接从内存中获取,不再需要访问低速外设,因而可以显着提高性能;二是有效 Cache 的比率,有效 Cache
  7. 是指真正会被访问到的 Cache 项,如果有效 Cache 的比率偏低,则相当部分磁盘带宽会被浪费到读取无用 Cache 上,而且无用
  8. Cache 会间接导致系统内存紧张,最后可能会严重影响性能。
复制代码

[ 本帖最后由 redor 于 2009-2-5 14:33 编辑 ]

论坛徽章:
0
20 [报告]
发表于 2009-02-05 14:43 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP