由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Linux版 - 新人5个包子请教问题,redhat读写文件的内存问题
相关主题
用free查到的memory里面的"cache"是做什么用的?为什么我的python code总是显示D
freevim的window很难用啊...
run out of memory 后系统变得极慢how to refresh a file buffer in vim?
Intel Mobin 2 秒钟启动到 GUI网页如何马上更新呢
swap疑问弱问一个关于emacs的
fwrite 速度慢 怎么提高啊how to get command history in sqlpus within Screen shell?
为啥 inode-cache 的内存算在 used 里面,不算在 cached 里面呢?几道跟Linux有关的面试题 (转载)
想修改buffer cache的内核代码?请问从哪开始How difficult is it to write your own sprintf ? (转载)
相关话题的讨论汇总
话题: mem话题: readed话题: 内存话题: read话题: 文件
进入Linux版参与讨论
1 (共1页)
S*****y
发帖数: 567
1
希望有个大虾能给解释下。
版本是2.6.32-71.el6.x86_64
发现读取文件后,free mem大幅下降。文件很大,10几G的样子
total used free shared buffers cached
Mem: 32091 24459 7632 0 7 23250
-/+ buffers/cache: 1200 30891
Swap: 34271 21 34250
就是这里free/Mem那一格
网上查了说看是否内存泄漏应该看swap?
我有一个程序,读取文件。
如果我手动清理掉used Mem
echo 3 > /proc/sys/vm/drop_caches
然后跑一次那个程序。就会看到大概10个G的内存被用了,没有释放(文件大小差不多)
然后速度是1分钟。
然后在不释放那些内存的情况下,再跑n次,每次都是10秒钟。包括读取另外一个差不
多大小的文件,也是10秒钟的样子。free还是会减少,swap没什么变化。
请教为什么会造成速度上的差别呢?
另外如果我如果我手动清理掉used Mem,不跑那个程序。只是往硬盘写入一个10G的文
件,也是会看到free大大减少。
程序是
char buffer[65536];
char* bbuf = buffer;
int readed;
const int FIRST_READ = sizeof(unsigned short int);
readed = fread(&lenNet, FIRST_READ, 1, fp);
while(readed==1){
lenHost = rip_ntohs(lenNet);
fread(buffer, lenHost, 1, fp);
}
readed = fread(&lenNet, FIRST_READ, 1, fp);
count ++;
}
buffer是会自己释放的吧
谢谢了
m**k
发帖数: 290
2

内存泄漏跟 swap 没有直接的关系.
检查内存泄漏可以用一些工具比如 valgrind
多)
Linux 会把 IO read 数据放在系统 cache 里. 所以第二次读文件就可以直接从 cache
里读, 速度就会比第一次快.
search 了一下, vm.drop_caches 是一个 command, 而不是 tunable. 每次写的时候
才做 drop cache
系统内存不够的时候会自动释放 cache

【在 S*****y 的大作中提到】
: 希望有个大虾能给解释下。
: 版本是2.6.32-71.el6.x86_64
: 发现读取文件后,free mem大幅下降。文件很大,10几G的样子
: total used free shared buffers cached
: Mem: 32091 24459 7632 0 7 23250
: -/+ buffers/cache: 1200 30891
: Swap: 34271 21 34250
: 就是这里free/Mem那一格
: 网上查了说看是否内存泄漏应该看swap?
: 我有一个程序,读取文件。

G*****h
发帖数: 33134
3
文件 buffer 是内存不够用的时候才扔掉吧

【在 S*****y 的大作中提到】
: 希望有个大虾能给解释下。
: 版本是2.6.32-71.el6.x86_64
: 发现读取文件后,free mem大幅下降。文件很大,10几G的样子
: total used free shared buffers cached
: Mem: 32091 24459 7632 0 7 23250
: -/+ buffers/cache: 1200 30891
: Swap: 34271 21 34250
: 就是这里free/Mem那一格
: 网上查了说看是否内存泄漏应该看swap?
: 我有一个程序,读取文件。

1 (共1页)
进入Linux版参与讨论
相关主题
How difficult is it to write your own sprintf ? (转载)swap疑问
Emacs 粘贴 clipboard 居然要用 menufwrite 速度慢 怎么提高啊
为什么这个32bit系统能够支持13 G 内存?为啥 inode-cache 的内存算在 used 里面,不算在 cached 里面呢?
问一个vim的问题 (转载)想修改buffer cache的内核代码?请问从哪开始
用free查到的memory里面的"cache"是做什么用的?为什么我的python code总是显示D
freevim的window很难用啊...
run out of memory 后系统变得极慢how to refresh a file buffer in vim?
Intel Mobin 2 秒钟启动到 GUI网页如何马上更新呢
相关话题的讨论汇总
话题: mem话题: readed话题: 内存话题: read话题: 文件