天天看点

Linux 内存监控

1、按照内存使用方式排序

  top 之后使用 shift + m 那么top按照内存使用从大到小进行排列,使用 shift + P 表示按照CPU进行排序。

Linux 内存监控
Linux 内存监控

2、top查看指定进程

  top -p pid -d 1 使用-p选项指定pid,使用-d表示刷新间隔

3、pamp查看指定进程

  pmap会将进程中使用到的每个动态库等内存依次显示,最有有一个total表示使用的虚拟内存总数。

  看不到物理内存使用数。  

4、使用ps查看指定进程

  ps aux|grep java|grep UID

5、查看/proc/pid/status查看指定进程

6、查看系统内存使用

  1)cat /proc/meminfo

  2)使用top -d 1 每秒钟刷新一次

  3)sar -r 1 每秒钟刷新一次

  4)vmstat 1 每秒钟刷新一次

  5)free 命令

关于内存监控

7、内存使用 sar -r 1

Linux 内存监控
Linux 内存监控
Linux 内存监控
Linux 内存监控

  1)已使用内存数:特别要注意的是这个值包括了内核cached的值,并非真实用户进程使用掉的。

  可以通过如下方式释放这部分内存:首先执行sync让系统将缓存数据同步到磁盘之中;然后 echo 3 > /proc/sys/vm/drop_caches 修改dropcaches的值。通过修改proc目录下的文件可以实现与系统进行通信,drop_caches文件取值,1-释放页面缓存;2-释放目录项和文件节点;3-释放前两项。pagecaches表示内核最近访问过的文件页面缓存。

  

8、系统交换活动监控  sar -W 1  

  -W表示swaping活动统计

  说明:对swap分区的使用无疑是非常耗时的,预示着物理内存是不是不够用了。

9、内存分页监控 sar -B 1

  还可以使用命令:vmstat

Linux 内存监控
Linux 内存监控
Linux 内存监控
Linux 内存监控

  说明:LInux的内存管理使用主要是通过“调页Paging”和“交换Swapping”来完成内存调度。分页(Page)写入磁盘的过程被称作Page-Out,分页(Page)从磁盘重新回到内存的过程被称作Page-In。当内核需要一个分页时,但发现此分页不在物理内存中(因为已经被Page-Out了),此时就发生了分页错误(Page Fault)。当发生频繁的内存页换入换出时性能会受到严重影响,此时成为thrashing(颠簸)。

  执行:vmstat 1 

Linux 内存监控
Linux 内存监控
Linux 内存监控
Linux 内存监控
Linux 内存监控
Linux 内存监控
Linux 内存监控

附注:

1、关于cached的解释

  上面数据是一台运行mongodb的服务器,总共8GB内存,其中有6GB的cached,并且swap分区使用为0.

  但是从每个mongod占用的物理内存看,已经达到了5GB,那么6GB的cached哪里来呢?

  可能的解释:mongod申请的内存,还没有使用,依然以cached的形式存在着。

上一篇: comm命令简介
下一篇: dmesg简介