Linux 系统问题排查
top 命令
预习:
系统核数查看
# 总核数 = 物理 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
关键指标
内存查看
io 查看
命令安装
yum install sysstat
指标描述
%user:CPU 处在用户模式下的时间百分比。
%nice:CPU 处在带 NICE 值的用户模式下的时间百分比。
%system:CPU 处在系统模式下的时间百分比。
%iowait:CPU 等待输入输出完成时间的百分比。>0.5 表示 io 繁忙
%steal:管理程序维护另一个虚拟处理器时,虚拟 CPU 的无意识等待时间百分比。
%idle:CPU 空闲时间百分比。
备注:
如果 %iowait 的值过高,表示硬盘存在 I/O 瓶颈
如果 %idle 值高,表示 CPU 较空闲
如果 %idle 值高但系统响应慢时,可能是 CPU 等待分配内存,应加大内存容量。
如果 %idle 值持续低于 10,表明 CPU 处理能力相对较低,系统中最需要解决的资源是 CPU
cpu 属性值说明:
tps:该设备每秒的传输次数
kB_read/s:每秒从设备(drive expressed)读取的数据量;
kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;
kB_read: 读取的总数据量;
kB_wrtn:写入的总数量数据量;
常用命令
每两秒查看下 io 的状态
iostat -d -k 2
显示 tty 和 Cpu 信息
iostat -t
以 M 为单位显示所有信息
iostat -m
查看设备使用率(%util)、响应时间(await)
# 【-d 显示磁盘使用情况,-x 显示详细信息】
iostat -d -x -k 1 1
rrqm/s: 每秒进行 merge 的读操作数目.即 delta(rmerge)/s
wrqm/s: 每秒进行 merge 的写操作数目.即 delta(wmerge)/s
%util: 一秒中有百分之多少的时间用于 I/O
关注项
如果 %util 接近 100%,说明产生的 I/O 请求太多,I/O 系统已经满负荷
svctm 和 %until 差值是队列的大小 越大说明系统出现问题
netstat 常用命令
#监听 8080 端口的外部服务
netstat -antp|grep :8080|sort
#本机的 tcp 连接的连接数状态
netstat -nat|awk '{print $6}'|sort|uniq -c|sort -nr
#每个主机到该主机的连接数
netstat -ntu|awk '{print $5}'|cut -d: -f1|sort|uniq -c |sort -nr
#查看 8080 端口被哪些进程占用
netstat -antp|grep 8080
#查看该进程所监听的端口
netstat -antp|grep {pid
}
评论