弄清楚Linux内存使用情况

时间:2017-05-25 08:58:52

标签: linux memory virtual-memory

我有点奇怪的Linux内存使用情况我想弄清楚。

我有两个流程:nxtcapture& nxtexport。这些进程中没有一个真正分配了大量内存,但它们每个都mmap个1 TB文件。 nxtexport没有堆分配(除了在启动期间)。 nxtcapture按顺序写入文件,nxtexport按顺序读取。由于nxtexportnxtcapture的尾部读取,因此我没有任何读取IO。

ing992:~# iostat -m
Linux 4.4.52-nxt (ing992)   05/25/17    _x86_64_    (32 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          29.17    1.99    0.96    0.06    0.00   67.82

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
loop0             0.02         0.00         0.00          2          0
sdf              16.47         0.06         0.85       4207      61442
sdf1              0.00         0.00         0.00          5          0
sdf2              0.01         0.00         0.00         77          0
sdf3             16.45         0.06         0.85       4115      61442
sdf4              0.00         0.00         0.00          7          0
sde              15.45         0.01         0.85       1032      61442
sde1              0.00         0.00         0.00          5          0
sde2              0.00         0.00         0.00          0          0
sde3             15.44         0.01         0.85       1017      61442
sde4              0.00         0.00         0.00          7          0
sdb              43.08         0.00        15.72         22    1136368
sda              43.07         0.00        15.72         21    1136406
sdc              43.42         0.04        15.72       2711    1136332
sdd              43.07         0.00        15.72         20    1136301
md127             0.01         0.00         0.00         77          0
md126            23.77         0.07         0.85       5132      61145

这一切都很棒。但是,查看内存使用情况,我可以看到以下内容:

enter image description here

这表明超过一半的内存不可用?!这怎么可能?我了解mmap将保持页面缓存。但是这些(非脏)页面不应该算作可用吗?这里发生了什么?我该怎么调试呢?

enter image description here

free -m
             total       used       free     shared    buffers     cached
Mem:         32020      31608        412        221         13       9655
-/+ buffers/cache:      21939      10081
Swap:            0          0          0

0 个答案:

没有答案