找出进程在linux中使用了多少额外的物理内存

时间:2017-05-24 15:41:25

标签: linux memory memory-management centos6

我想弄清楚程序需要多少内存。我需要运行这个程序的多个实例,我想知道我需要多少额外的RAM。我做了一些研究,并找到了我使用的内存量:top,这给了我以下

$('#btnChange').click(function (eve) {
    var url = "/DeviceLocation/ChangeLocation?deviceID=" + $(this).data("id");
    $("#modal-content").load(url, function () {
        $("#myModal").modal("show");
    });
 })

RES,如果我理解正确的是驻留内存,它是驻留在实际RAM中的内存量。当我运行程序的2个实例时,我注意到两者的RES字段各自大约为5Gb,但是使用的总内存(显示在顶部)并没有像我预期的那样上升10Gb,而是上升了不到为1GB。

我对此做了一些研究,发现RES还包括共享内存。使用与上面相同的场景,我注意到每个共享内存SHR大约为4.7Gb。所以执行一个简单的减法产生大约0.3Gb,这是否意味着当我运行我的程序的2个实例时,我需要4.7Gb +(0.3Gb)* 2 = 5.3Gb的RAM? SHR内存也包含虚拟内存吗?

如果是这样,我是否需要从SHR中减去VIRT以找出来自RAM的内存量?如果这个内存使用量线性上升,运行20个实例需要4.7Gb +(0.3Gb)* 20 = 10.7Gb的RAM吗?

1 个答案:

答案 0 :(得分:0)

你想检查/ proc / pid / smaps。运行2个实例,然后查找Private_ *字段。