我们正在运行一个java程序来分析它的内存使用情况。我们有一个512内存的盒子,顶部显示500 MB左右的内存使用了很少的空闲空间。但是,在RES列中,我们可以看到jvm仅使用了100MB左右。而所有其他进程甚至都不重要(小于1k)。那么到底是什么消耗了所有的内存,还是我们只是读错了顶部?
发布于 2010-08-11 10:14:54
这500MB包括磁盘文件的页缓存部分所使用的内存。这个内存是可回收的,以供进程使用--因此,如果您将列为“空闲”的内存添加到列为“已缓存”的内存中,那么您将拥有仍可供任务使用的内存。
或者,您可以使用free命令,该命令在-/+ buffers/cache:行的"free“列中列出此图形。
发布于 2010-08-11 01:41:13
此外,被多个应用程序(比如动态库)使用的内存在每次被引用时都会被计算在内,即使它只占用一个副本。也可以尝试使用htop。
发布于 2010-08-11 01:37:17
那是保留的内存。进程不使用它,它是为它保留的。如果另一个进程想要分配更多的内存,它将获得权限。
https://stackoverflow.com/questions/3451709
复制相似问题