shell基本命令教程

我的系统怎么了-系统信息查看(三)内存哪里去了-free,cat,pman,ps,pmap,vmsate

2019-11-22 22:58:46 admin 258

前面讲过用ps、top、cat /proc/39960/status可以查看在北京大学北极星高性能计算平台服务器的进程使用的内存(请点击这里)。

那么如果查看北极星高性能计算平台登录节点的内存呢,使用free -g很容易看到,但是free的内存很少,都跑哪里去了,怎么释放,下面我们详细道来:

一、使用free查看内存:

图片关键词

红色圈为总内存92G

黄色圈为已用内存11G

按道理空闲内存为92-11=88G内存,实际只有free 49G内存,那么近32G的内存去哪里了,仔细看看在cache(绿色)里没有释放。

那么如何释放内存:

二、使用

1、echo 3 > /proc/sys/vm/drop_caches

drop_caches的值可以是0-3之间的数字,代表不同的含义:
0:不释放(系统默认值)
1:释放页缓存
2:释放dentries和inodes

3:释放所有缓存

释放完内存后改回去让系统重新自动分配内存。

echo 0 >/proc/sys/vm/drop_caches

连起来就是

[root@login12 ~]# echo 3 > /proc/sys/vm/drop_caches;echo 0 >/proc/sys/vm/drop_caches

图片关键词

内核2.6的版本执行上述的操作都没问题的,但是到了内核3系列,就不能执行echo 0 >/proc/sys/vm/drop_caches的操作了,这是一个坑,重启才能改回去,(跟弹簧一样,会自己改回去,不用重启)所以释放完就不用管了

图片关键词

2、sync; sysctl -w vm.drop_caches=3 效果和前面一样

图片关键词

三、查看/proc/meminfo文件

查看RAM使用情况最简单的方法是通过/proc/meminfo。

这个动态更新的虚拟文件列出了详细的内存使用情况。

[root@login05 ~]# cat /proc/meminfo

图片关键词

四、可以使用"–sort"选项对进程进行排序,例如按RSS(物理内存)进行排序:
[root@login12 ~]# ps aux --sort -rss |more

图片关键词

五、使用pmap命令查看

pmap命令用于报告进程的内存映射关系

[root@login05 ~]# pmap -d 13876  |more  

13876:   /usr/lpp/mmfs/bin/mmfsd

Address           Kbytes Mode  Offset           Device    Mapping

0000018012e4c000   24576 rwxs- 0000000000000000 000:00005 ss0

0000018017f22000   24576 rwxs- 0000000000000000 000:00005 ss0

000001801afc8000     264 rwxs- 0000000000000000 000:00005 ss0

 。。。。。。。。。。。。。。。。。。。。。。。

00007ffefe797000       8 r-x-- 0000000000000000 000:00000   [ anon ]

ffffffffff600000       4 r-x-- 0000000000000000 000:00000   [ anon ]

mapped: 25973500K    writeable/private: 5049004K    shared: 329504K

六、vmstat命令

vmstat命令显示实时的和平均的统计,覆盖CPU、内存、I/O等内容。

例如内存情况,不仅显示物理内存,也统计虚拟内存。

vmstat -s

样例如下:

[root@login05 ~]#  vmstat -s

图片关键词

首页
资源&收费
集群
成果
问答