- 1. top/uptime
- 2. vmstat
- 3. free
- 4. df
- 5. iostat
- 6. jps
- 7. jinfo
- 8. jstack
- 9. jstat
在系统的日常维护过程中,有时候可能服务会出现内存占用过高,死锁的情况,这时候就需要我们用一些命令来查看系统的运行情况,导出一些系统日志来帮我们分析,下面就来记录下常用的几个命令吧,是Linux环境。
1. top/uptimetop
命令用来监控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的第一行信息
vmstat命令是用来查看CPU的使用情况
vmstat -n 2 3:表示每2秒采样一次,共采样3次
mpstat -P ALL 2:表示查看所有CPU核信息
pidstat -u 1 -p 进程编号:表示每个进程使用CPU的用量分解信息
free命令用来查看内存信息,单位是Kb
free -m :以M为单位查看
free -g:以G为单位查看
free -h:以人类能看懂的单位查看,h表示human
pidstat -p 进程编号 -r 采样间隔秒数
df命令用于查看磁盘剩余空间数
df -h:以人类能看懂的方式查看
iostat命令用于查看磁盘IO
iostat -xdk 2 3
pidstat -d 采样间隔秒数 -p 进程编号
jinfo -flags 线程ID :查看线程的启动参数
jinfo -flag 具体参数 线程ID:查看线程的指定参数是否开启,+表示开启,-表示没有开启
jinfo -flag PrintGCDetails 线程ID
jstat命令可以查看堆内存各部分的使用量,以及加载类的数量
命令的格式如下:
jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]
垃圾回收统计,命令:jstat -gc 9228
S0C:第一个幸存区的大小 S1C:第二个幸存区的大小 S0U:第一个幸存区的使用大小 S1U:第二个幸存区的使用大小 EC:伊甸园区的大小 EU:伊甸园区的使用大小 OC:老年代大小 OU:老年代使用大小 MC:方法区大小 MU:方法区使用大小 CCSC:压缩类空间大小 CCSU:压缩类空间使用大小 YGC:年轻代垃圾回收次数 YGCT:年轻代垃圾回收消耗时间 FGC:老年代垃圾回收次数 FGCT:老年代垃圾回收消耗时间 GCT:垃圾回收消耗总时间