消息关闭
    暂无新消息!
linux系统,运行业务进程前,内存占用1G,运行业务后,内存占用2.5G,关闭业务后,内存没有恢复到1G,而是占用2G
这多出来的1G, 是怎么产生的?

4个回答

︿ 1
df -h 比较一下运行业务前后的 /dev/shm 的大小变化,看看是否有共享内存未释放
业务结束后 运行 echo 1 >  /proc/sys/vm/drop_caches 看一下是否cache释放后内存的变化
︿ 0
这个不一定有关系的
你从哪看到的内存占用情况?
linux内存使用是一个比较复杂的概念。
比如你用free看,就去看看free输出结果的意义吧
linux不象windows那样简单
︿ 0
linux系统为了提高运行效率,不会马上整理回收的内存的,直到满足一定的条件才会整理内存,这时都可以看出内存的可用大小的变化。

同时,只要进程退出,所有在此进程里申请的内存空间都会自动一起回收的。所以进程退出后,可用内存大小不变肯定不是内存泄露的问题。