文章目录

  • 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的系统状况,能够实时显示系统中各个进程的资源占用情况,下面来介绍下具体意思。

Linux下内存压力测试工具memtest 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

进程id

UID

进程所有者的用户id

USER

进程所有者的用户名

PR

优先级

NI

nice值,负值表示高优先级,正值表示低优先级

VIRT

进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES

进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR

共享内存大小,单位kb

S

进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

%MEM

进程使用的物理内存百分比

%CPU

上次更新到现在的CPU时间占用百分比

TIME+

进程使用的CPU时间总计,单位1/100秒

SWAP

进程使用的虚拟内存中,被换出的大小,单位kb

COMMAND

命令名/命令行

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

Linux下内存压力测试工具memtest linux内存测试命令_运维_02

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

Linux下内存压力测试工具memtest linux内存测试命令_服务器_03

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

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

Linux下内存压力测试工具memtest linux内存测试命令_内存分析_04

2. vmstat

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

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

Linux下内存压力测试工具memtest linux内存测试命令_内存分析_05

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

Linux下内存压力测试工具memtest linux内存测试命令_服务器_06

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

Linux下内存压力测试工具memtest linux内存测试命令_服务器_07

3. free

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

free -m :以M为单位查看

free -g:以G为单位查看

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

Linux下内存压力测试工具memtest linux内存测试命令_服务器_08

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

Linux下内存压力测试工具memtest linux内存测试命令_内存分析_09

4. df

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

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

Linux下内存压力测试工具memtest linux内存测试命令_linux_10

5. iostat

iostat命令用于查看磁盘IO

iostat -xdk 2 3

Linux下内存压力测试工具memtest linux内存测试命令_运维_11

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

Linux下内存压力测试工具memtest linux内存测试命令_内存分析_12

6. jps

7. jinfo

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

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

jinfo -flag PrintGCDetails 线程ID

Linux下内存压力测试工具memtest linux内存测试命令_linux_13

8. jstack

9. jstat

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

命令的格式如下:

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

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

Linux下内存压力测试工具memtest linux内存测试命令_内存分析_14

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