Linux - 内存回收
内存回收时,会优先释放Inactive(file)中的数据,来满足应用对内存的需求,此时匿名页会增长。匿名页不会被系统直接释放,如果有swap的时候,会把一些inactive(anon)放入swap。如果没有swap,会一直保持在内存中。当然,程序可以通过比如free这些glibc函数,把相关匿名页释放掉,从而释放一些内存。
然后会把active(file)链表中,相对不是经常被调用的缓存放入inactive链表。如果再有新的内存申请,则会重复此过程。直至没有cache可释放的情况下,可用内存仍然不能满足需求,才会触发OOM。