我在网上找到了很多关于RSS
和VSZ
两者区别的文章,我真正理解的是,在 Linux 上很难确定进程实际使用的内存。这非常令人不满意。
现在,负责我们应用程序的管理员不希望我们投入生产,因为在他看来我们的应用程序占用了太多内存。他表示VSZ
应用程序占用的内存约为 10GB。RSS
然而,应用程序占用的内存约为 4GB。
VSZ
使用命令来监控和警告 Redhat 服务器上的进程内存是否有意义ps
?对于此类监控,采用其他值是否更好?
我认为,所有应用程序的大小相加VSZ
并不等于服务器所有内存的 100%。那么,监控一个进程有什么意义呢?
监控服务器上的进程是否有意义?只监控整个服务器的内存使用情况,并在其达到所有内存的 90% 左右时做出反应,不是更好吗?
答案1
对于大多数事情来说,使用 VSZ 都是没有意义的。
此数字是应用程序分配的虚拟内存总量。这包括应用程序请求但实际未使用的内存、交换到磁盘的内存、应用程序文本本身尚未从磁盘加载且可能永远不会加载的页面,以及可能还有一些我忘记的东西。其中大部分实际上并没有使用您所关心的 RAM。
您实际上需要关注的是 RSS;它确切地表示了该进程在任何给定时间使用的 RAM 量。