linux何时自动释放内存
发布网友
发布时间:2022-04-24 23:04
我来回答
共2个回答
热心网友
时间:2023-09-17 12:55
如楼上所说,在linux系统的缺省配置中,内存足够的情况下,linux不回收buffer 和cache,但在2种情况下, 会使用LRU(least recently used 最近最少使用)算法进行页面的回收:
1、由后台运行的守护进程 kswapd周期性的检查,发现系统内空闲的物理页面数目少于特定的阈值时;
2、要为用户进程分配一大块内存,但系统中没有足够多的物理内存时,操作系统会启动内存回收。
热心网友
时间:2023-09-17 12:55
是后者“当有某程序需要占用大内存时linux会自动释放cache”
linux的理念是内存空着不用白不用,因此会使用空闲内存来做buffer和cache。
我的一台虚拟机运行了JBOSS,在运行一段时间后,查看内存使用情况:
[root@JBOSS ~]# free -m
total used free shared buffers cached
Mem: 3949 2928 1021 0 308 1278
-/+ buffers/cache: 1341 2608
Swap: 4094 0 4094
可以看出,内存已用2928M,但实际除去 buffers/cache后实际只使用了1341M。你若不管它,内存是不会释放的,而且也没必要释放。