主题:[讨论]观察到一个内存持续消耗/泄露?的问题

  共有25765人关注过本帖    
帅哥哟,离线,有人找我吗?
barrypp
1楼 信息 | 搜索 | 邮箱


加好友 发短信
[讨论]观察到一个内存持续消耗/泄露?的问题  发帖心情 Post By:2017-2-24 16:36:00   [只看该作者]

测试代码:
int main()
{
char buf[10240];
std:ofstream of;
of.open("/mnt/nfs/t.log",std::ios_base::app|std::ios_base::binary|std::ios_base::out);

while(1)
{
of.write(buf,10240);u
sleep(10e3);
}

}

运行后,不管用top还是free来查看,内存消耗都会持续上升直到只剩大约3M左右的内存

此时程序依旧可以继续运行。但是对复杂一点的程序来说,运行性能就不太稳定了。
[此贴子已经被作者于2017-2-24 16:41:38编辑过]

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
lgz
2楼 信息 | 搜索 | 邮箱


加好友 发短信 员工
  发帖心情 Post By:2017-2-27 11:40:00   [只看该作者]

你好,这是并不是内存泄露,这是linux的disk canche机制,linux会将文件在内存中进行缓存,已加快文件(存储设备)读写,并不影响程序运行

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
barrypp
3楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2017-2-27 12:09:00   [只看该作者]

有没有办法限制它呢? 因为它确实影响了性能上的稳定性

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
lgz
4楼 信息 | 搜索 | 邮箱


加好友 发短信 员工
  发帖心情 Post By:2017-2-27 12:52:00   [只看该作者]

怎么影响了,这个机制不会影响程序获取内存空间

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
barrypp
5楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2017-2-27 14:33:00   [只看该作者]

呃....现在拿不出证据。感觉上会影响性能。总之,有没有什么办法可以限制它么?比如限制disk cache只使用最多50%的内存。然后我想对比测试一下。
[此贴子已经被作者于2017-2-27 14:33:54编辑过]

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
lgz
6楼 信息 | 搜索 | 邮箱


加好友 发短信 员工
  发帖心情 Post By:2017-2-27 15:15:00   [只看该作者]

This file is not a means to control the growth of the various kernel caches
(inodes, dentries, pagecache, etc...)  These objects are automatically
reclaimed by the kernel when memory is needed elsewhere on the system.

Use of this file can cause performance problems.  Since it discards cached
objects, it may cost a significant amount of I/O and CPU to recreate the
dropped objects, especially if they were under heavy use.  Because of this,
use outside of a testing or debugging environment is not recommended.

上面是内核文档片段,不建议修改与caches相关的设置,随意修改反倒会影响系统性能,这些caches不会影响到你的程序的运行的


  单帖管理 | 引用 | 回复 回到顶部

返回首页

[讨论]观察到一个内存持续消耗/泄露?的问题

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: