加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

全面的高可用服务系统线上问题排查工具单之一

发布时间:2019-05-10 22:52:02 所属栏目:优化 来源:云时代架构
导读:本文并不是介绍Linux命令的手册,而是侧重于命令在特定场景下如何帮助应急人员和攻关人员定位问题并解决问题,因此,对于每个命令的介绍将直切主题,直接介绍命令使用的具体场景,而不是介绍命令的详细使用格式。 01.必不可少的基础命令和工具 1、grep gre

命令输出:

  1. robert@robert-ubuntu1410:~$ free 
  2.             total       used       free     shared    buffers     cached 
  3. Mem:      2049416    1646480     402936      13280     118596     646288 
  4. -/+ buffers/cache:    881596    1167820 
  5. Swap:     2095100       1480    2093620 

内存使用并不只有简单的占用和空闲两个状态,从上面的输出发现里面有buffer和cache的数据,从字面意义上来讲,都是缓存,那么弄清楚缓存什么数据才能有效的区分这两种缓存。

从上面命令的输出,我们可以看到,Buffer 118M, Cache 646M。其实,这两个内存区域都是用来缓存磁盘数据的,只不过缓存的数据是不同的:

  • buffers一般都不太大,在一个通用的Linux系统中,一般都是在几十到几百M字节,用于存储磁盘块设备的元数据,比如哪些块属于哪些文件,文件的权限,目录等信息。
  • cached一般会很大, 一般都是G字节以上, 用于存储读写文件的页, 当对一个文件进行读的时候, 会取磁盘文件页到此内存区域,然后从内存进行读取,当写入一个文件,会先写到此缓存,并将相关的页面标记为”dirty”。

buffers用于存储元数据,一般占用的空间不大,对它的关注也不多,cached一般会很大,随着读写磁盘的多少而自动的增加而减少,这也取决于物理内存是否够用,如果应用使用物理内存较多,操作系统会适当的缩小cached来保证用户进程对内存的需要。

2、pmap

此命令用来报告进程占用内存的详细情况,可以用来查出某些内存瓶颈问题的根源原因。

使用方式:

  1. pmap -d 2862 

命令输出:

  1. robert@robert-ubuntu1410:~$ pmap -d 2862 
  2. 2862:  java -server -Xms512m -Xmx512m -Xmn128m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60 -verbose:gc -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCDetails -Xloggc:./logs/gc.log -cp /home/robert/working/workspace/vesta-id-generator/releases/vesta-id-generator-0.0.1-release/bin/vesta-rest-0.0.1/extlib -jar ./lib/vesta-rest-0.0. 
  3. Address           Kbytes Mode  Offset           Device    Mapping 
  4. 0000000008048000       4 r-x-- 0000000000000000 008:00001 java 
  5. 0000000008049000       4 rw--- 0000000000000000 008:00001 java 
  6. 000000000a017000     872 rw--- 0000000000000000 000:00000   [ anon ] 
  7. 00000000be800000     896 rw--- 0000000000000000 000:00000   [ anon ] 
  8. 00000000be8e0000     128 ----- 0000000000000000 000:00000   [ anon ] 
  9. 00000000be900000    1920 rw--- 0000000000000000 000:00000   [ anon ] 
  10. 00000000beae0000     128 ----- 0000000000000000 000:00000   [ anon ] 
  11. 00000000beb00000     284 rw--- 0000000000000000 000:00000   [ anon ] 
  12. ...... 

这个命令显示比较底层的进程模块占用内存的信息,并且可以打印内存的起止地址等,用于定位深层次JVM或者操作系统的内存问题。

04.CPU使用情况监控命令

1、vmstat

此命令显示关于内核线程、虚拟内存、磁盘IO、陷阱和CPU占用率的统计信息。

使用方式:

  1. vmstat 

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读