linux监控系统语句

一、cpuinfo(cpu)

# 查看cpu信息
cat /proc/cpuinfo
# 查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l

二、top(cpu、内存、磁盘io)

N:以PID顺序排列

P:以CPU顺序排列

M:以内存顺序排列

1:显示每个cpu的信息

us:用户空间占cpu

sy:系统空间占cpu

ni:改变过优先级的进程占cpu

id:空闲cpu占比

wa:等待磁盘io的cpu占比,如果高说明磁盘io是瓶颈

hi:硬件中断

si:软件中断

st:实时

三、dstat(cpu、内存、磁盘io、网络io)

paging:系统的分页活动,当系统开始大量使用分页空间时值比较高,说明系统内存不足

int:线程中断,当多线程忙碌时值比较高

csw:上下文切换,当多线程忙碌时值比较高

四、lsof(进程、句柄)

# 查看占用端口的进程
lsof -i:xx

# 查linux最大文件句柄数(open files)
ulimit -a
# 查当前句柄/进程数量
lsof -n|awk '{print $2}'| sort | uniq -c | sort -nr | head
# 查单个进程的句柄
lsof -p 2333

五、jstat(内存)

# 查看jvm情况,每隔1秒输出,输出60次,每隔10次输出一次列头
jstat -gc -h10 xxx 1000 60

S0C:存活区0分配内存(都是KB)

S1C:存活区1分配内存

S0U:存活区0使用内存

S1U:存活区1使用内存

EC:年轻代分配内存

EU:年轻代使用内存

OC:老年代分配内存

OU:老年代使用内存

MC:元空间分配内存

MU:元空间使用内存

CCSC:压缩类分配内存

CCSU:压缩类使用内存

YGC:年轻代GC次数

YGCT:年轻代GC总时间(秒)

年轻代每次GC时间 = YGCT / YGC

FGC:老年代GC次数

FGCT:老年代GC总时间(秒)

老年代每次GC时间 = FGCT / FGC

GCT:GC总时间(秒)

六、jmap(内存)

# 输出jvm内存分配情况
jmap -heap xxx

jmap -dump:live,format=b,file=/home/dump xxxxx

输出进程内存dump信息,后缀改为pcap以后可以用eclipse的MAT插件打开

七、ps、jstack(线程)

# 查进程中占用cpu高的线程
ps -mp xxxxx -o THREAD,tid,time | sort -rn

# 将十进制转换为十六进制
printf "%x
" xxx

# 输出线程堆栈信息,筛选tid输出之后的30行
jstack -l xxxx(pid) | grep xxx(tid) -A 30

# 输出线程堆栈信息到文件,-l 打印锁信息
jstack -l xxxxx > 1.txt

八、jps(jvm)

# 输出jvm进程通过文件传递到进程中的参数
jps -v

九、netstat(连接)

# 查看tcp连接状态统计
netstat -nat | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

# 查看某个端口的tcp连接状态统计
netstat -nat |grep -i "80"| awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

# 查看某个端口的连接数量
netstat -nat|grep -i "80"|wc -l

# 查看连接某端口最多的ip
netstat -ntu | grep :80 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"	",i}' | sort -nr

十、tcpdump(网络)

# 查看网卡
ifconfig
# 抓包并保存到文件
tcpdump tcp -i eth0 -s 0 and host xxx.xxx.xxx.xxx and port xxxx -w log.pcap

-i:只抓经过接口eth0的包

-s 0:抓到完整的数据包

-w:保存在文件

十、iotop(磁盘io)

# 安装
yum -y install iotop
# 查看进程的io占用
iotop

原文地址:https://www.cnblogs.com/ctxsdhy/p/12466503.html