您当前的位置: 首页 >  linux

止步前行

暂无认证

  • 0浏览

    0关注

    247博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Linux内存分析相关命令

止步前行 发布时间:2021-12-10 19:15:04 ,浏览量:0

文章目录
  • 1. top/uptime
  • 2. vmstat
  • 3. free
  • 4. df
  • 5. iostat
  • 6. jps
  • 7. jinfo
  • 8. jstack
  • 9. jstat

在系统的日常维护过程中,有时候可能服务会出现内存占用过高,死锁的情况,这时候就需要我们用一些命令来查看系统的运行情况,导出一些系统日志来帮我们分析,下面就来记录下常用的几个命令吧,是Linux环境。

1. top/uptime

top命令用来监控Linux的系统状况,能够实时显示系统中各个进程的资源占用情况,下面来介绍下具体意思。

在这里插入图片描述

第一行是任务队列信息,参数具体含义如下:

属性含义10:05:49表示系统当前时间up 91days,22:46系统已经运行时间8 users当前登录用户数load average: 0.31, 0.39, 0.40系统的负载,即任务队列的平均长度,load average 就是一段时间 (1 分钟、5分钟、15分钟) 内平均值

注:linux系统是5秒钟进行一次Load采样。

第二、三行是进程和CPU的信息,当有多个CPU时,这些内容可能会超过两行,参数具体含义如下:

属性含义349 total进程总数1 running正在运行的进程数347 sleeping睡眠的进程数1 stopped停止的进程数0 zombie僵尸进程数1.6 us用户空间占用CPU百分比0.7 sy内核空间占用CPU百分比0.0 ni用户进程空间内改变过优先级的进程占用CPU百分比97.6 id空闲CPU百分比0.0 wa等待输入输出的CPU时间百分比0.0 hi硬中断(Hardware IRQ)占用CPU的百分比0.0 si软中断(Software Interrupts)占用CPU的百分比0.0 st

第四、五行是内存信息,参数具体含义如下:

属性含义KiB Mem: 64002308 total物理内存总量3351184 free空闲内存总量20198152 used使用的物理内存总量40452972 buff/cache用作内核缓存的内存量KiB Swap: 16515068 total交换区总量16034852 free空闲交换区总量480216 used使用的交换区总量43001008 avail Mem代表可用于进程下一次分配的物理内存数量

计算可用内存数有一个近似的公式: 第四行的free + 第四行的buffer

下面就是关于进程信息:

属性含义PID进程idUID进程所有者的用户idUSER进程所有者的用户名PR优先级NInice值,负值表示高优先级,正值表示低优先级VIRT进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RESRES进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATASHR共享内存大小,单位kbS进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程%MEM进程使用的物理内存百分比%CPU上次更新到现在的CPU时间占用百分比TIME+进程使用的CPU时间总计,单位1/100秒SWAP进程使用的虚拟内存中,被换出的大小,单位kbCOMMAND命令名/命令行

对于上面的各个字段的介绍,可能有的人会不一样,我们可以按F键来把全部属性都调出来,具体展示哪个,可以选择。用上下键选择选项,按下空格键可以决定是否在基本视图中显示这个选项,q或者esc是保存。

在这里插入图片描述

默认进入top时,各进程是按照CPU的占用量来排序的,在top基本视图中,按键盘数字"1"可以展开监控每个逻辑CPU的状况:

在这里插入图片描述

top命令是一个非常强大的功能,但是它监控的最小单位是进程,如果想监控更小单位时,就需要用到ps或者netstate命令来满足我们的要求

uptime是展示的基本信息,是top的第一行信息

在这里插入图片描述

2. vmstat

vmstat命令是用来查看CPU的使用情况

vmstat -n 2 3:表示每2秒采样一次,共采样3次

在这里插入图片描述

mpstat -P ALL 2:表示查看所有CPU核信息

在这里插入图片描述

pidstat -u 1 -p 进程编号:表示每个进程使用CPU的用量分解信息

在这里插入图片描述

3. free

free命令用来查看内存信息,单位是Kb

free -m :以M为单位查看

free -g:以G为单位查看

free -h:以人类能看懂的单位查看,h表示human

在这里插入图片描述

pidstat -p 进程编号 -r 采样间隔秒数 在这里插入图片描述

4. df

df命令用于查看磁盘剩余空间数

df -h:以人类能看懂的方式查看

在这里插入图片描述

5. iostat

iostat命令用于查看磁盘IO

iostat -xdk 2 3

在这里插入图片描述

pidstat -d 采样间隔秒数 -p 进程编号

在这里插入图片描述

6. jps 7. jinfo

​ jinfo -flags 线程ID :查看线程的启动参数

​ jinfo -flag 具体参数 线程ID:查看线程的指定参数是否开启,+表示开启,-表示没有开启

​ jinfo -flag PrintGCDetails 线程ID

在这里插入图片描述

8. jstack 9. jstat

jstat命令可以查看堆内存各部分的使用量,以及加载类的数量

命令的格式如下:

jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]

垃圾回收统计,命令:jstat -gc 9228

在这里插入图片描述

S0C:第一个幸存区的大小 S1C:第二个幸存区的大小 S0U:第一个幸存区的使用大小 S1U:第二个幸存区的使用大小 EC:伊甸园区的大小 EU:伊甸园区的使用大小 OC:老年代大小 OU:老年代使用大小 MC:方法区大小 MU:方法区使用大小 CCSC:压缩类空间大小 CCSU:压缩类空间使用大小 YGC:年轻代垃圾回收次数 YGCT:年轻代垃圾回收消耗时间 FGC:老年代垃圾回收次数 FGCT:老年代垃圾回收消耗时间 GCT:垃圾回收消耗总时间

关注
打赏
1657848381
查看更多评论
立即登录/注册

微信扫码登录

0.0438s