文章目录
- 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 | 进程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是保存。
默认进入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:垃圾回收消耗总时间