2. 物理内存就是内存条容量。至于真实内存使用与上述所说的已用内存有差别主要是操作系统内存管理设计,会有一些常用数据缓存到内存,而缓存的数据当前并未使用。
3.
@大尨,就是在ssh里面执行
free -h
命令的时候看到的结果,
和探针的一样,
第一行是“物理内存”
第二行是“cache化内存”
第三行是“真实使用内存”
其中,“真实使用内存”(+/- buffer/cached)才是真正被程序占用的内存。而物理内存的剩余部分都被系统拿来当磁盘缓存等使用了,并且随时可以释放,所以是可用的。
ps:ubuntu 16.04的free -h命令已经改版了,不再有三行,结果更直观。
4. 总结一句话:你只需要看最后一行内存详读的数据即可。
6.
@大尨,倒是没什么影响。这是台文件服务器吗?一般在多文件,大文件读写完毕会出现这种情况。
7.
@大尨,是这样。Linux总是倾向于“用完内存”。
9.
@大尨,7楼基本上已经解释清楚了。记得某次逛国外论坛,见到这样说法,linux设计者认为,内存大空闲也就空闲着了,不如让它做些更有用的事。所以,Linux内存除了放当前运行程序的数据,还会放运行程序高命中的数据,减少对低速硬盘IO次数。因此,若运行进程需要申请新内存或要fork新进程时,那些缓存占用的内存也是可以申请的。你服务器这样情况是不影响新进程fork和运行进程动态申请内存的。强迫症可以重启服务器。但是提供你现有服务运行一段时间,还会是这样。上面也有说只关心 真实内存使用,某种程度来说是明智的。只是在分析程序行为时你可能要关注一些其他数据。