linux可用内存的计算

     因为过两天就放假回家过年了,现在没什么心思去做其他的事,就把服务器的参数检查了一下,执行 free -m命令时发现当前可用内存很小,如下图:
linux可用内存的计算_第1张图片
     然而我的服务器只装了一个oracle,只是作为数据库服务器,没有其他应用,内存使用率这么高不科学啊,于是到网上查看了相关的文章,这才知道我一直被linux“欺骗”了,原来linux的内存管理机制与windows的有所不同。linux的内存管理机制的思想为了保证内存利用率最大化,内核会把剩余的内存申请为cached,而cached不属于free范畴。当系统运行时间较久,会发现cached很大,对于有频繁文件读写操作的系统,这种现象会更加明显。

直观的看,此时free的内存会非常小,但并不代表可用的内存小,当一个程序需要申请较大的内存时,如果free的内存不够,内核会把部分cached的内存回收,回收的内存再分配给应用程序。所以对于linux系统,可用于分配的内存不只是free的内存,还包括cached的内存(其实还包括buffers)。

实际上linux可用内存=free+cached+buffers ,而不仅仅是free那一部分!

你可能感兴趣的:(内存管理,linux系统)