free命令,free值持续减少,能说明应用有内存泄漏吗?
linux as3.0+oracle9.2.0.4,做的是数据库服务器端,在跑应用程序时,使用free命令,看到free值持续明显的减少,能说明应用有内存泄漏吗?
请各位高手回答。同时我发现buffer和cache的值是一直增加的,但是我搞不懂free和那两个的关系,这样能说明有内存泄漏吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
1 如果应用程序是java编的,那么java有自动垃圾回收机制,一般不会有内存泄露
2 如果应用程序是c/c++编的,建议用valgrid工具来对代码进行内存泄露的测试,这样更加直接
顶上来,没人知道吗?
我看了linux内存分配原理,是说linux是将所有可用的内存做为缓存的,根据这个原理,linux肯定会随着运行时间的增长,free逐渐减少,cache逐渐增大,不管有没有内存泄漏最终都会是这样的,只是如果有内存泄漏,会加快这种变化而已。
但,有一个问题,基于linux的这种管理机制,在运行一段时间,free减少至只有十几兆时,这时系统如果再使用内存,势必会导致产生大量的页交换,更主要的是pageout,这时,肯定会影响到性能了。
我的疑问有三个:1.linux的这种内存管理机制合理吗?还是我理解的不对?
2.正常的磁盘写操作,是不是会产生pageout?
3.如何确认linux下的应用,是否有内存泄漏?
chache的释放原理是什么和swap有什么不同呢?
楼上的不好意思,我就是用free和vmstat来看内存泄漏的,有什么不对的地方吗?请教下。
汗,看标题还以为兄弟拿free命令来查内存泄漏。。。
要考虑到内核自己突然需要大量内存来处理紧急情况。凡是都要留余地。这里面就需要平衡了。
我看了,可是原理上说:“buffer cache是由linux自动地处理的,linux自动地使用所有的空闲内存作为高速缓冲”这应该如何理解呢?按我的理解,如果是这种处理方式的话,用free命令看到的可用内存应该都接近于0才对啊?
google
keyword: linux 内存管理
知道的一定要回答我啊,帮帮忙