持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第22天,点击查看活动详情
CentOS问题排查常用命令及工具
CentOS Linux release 8.0.1905 (Core)
线程相关
查询线程数
pstree -p |wc -l
统计CPU占用前10的pid
ps -eo pid --sort=-pcpu | head -n 10
根据pid查询进程占用的线程数
for i in `ps -eo pid --sort=-pcpu |grep -v PID | head -n 10`;do cat /proc/$i/status|grep -E 'Threads|pid' ; done
统计TCP连接的情况
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
IO
# 安装iotop和iostat的检测工具包
yum install -y sysstat
yum install -y iotop
# 查看磁盘读写情况
iostat -x 5
# 测试磁盘写入速度
time dd if=/dev/vda1 of=/dev/null bs=8k count=300000
CPU和内存相关
free
# free -单位
free -k
free -m
free -g
# -h 为方便人阅读的
free -h
我们主要关注free和buff/cache, 可以使用hcache工具查看缓存占用情况
hcache
# 安装
wget https://silenceshell-1255345740.cos.ap-shanghai.myqcloud.com/hcache
chmod +x hcache
mv hcache /usr/local/sbin/
# 使用查看使用缓存最多的10个文件
hcache -top 10
# 清理buff/cache, 测试环境可以用一用, **线上慎用**
sync && echo 1 > /proc/sys/vm/drop_caches
sync && echo 2 > /proc/sys/vm/drop_caches
sync && echo 3 > /proc/sys/vm/drop_caches
top
主要用来查看进程占用CPU和内存情况, 支持简单的命令交互, top h可查看支持交互的详细命令
- M 按占用内存倒序
- P 按占用CPU倒序
- c 显示完整的COMMAND
atop
# 安装
yum install atop -y
可以看到相对于
top来说, atop的面板信息更加丰富, 并且会将使用压力较大的资源高亮显示出来, 更加方便直观的看出问题, 如下, 一眼便可看出内存资源压力过大, 内存不足
同时也支持命令行交互,
atop h可查看支持交互的详细命令
htop
相对于top和atop, htop就更方便了, 面板信息也更加鲜艳醒目(更美观了), 还可以直接用鼠标操作, 同时也支持命令行交互, htop h可查看支持交互的详细命令
# 安装
yum install htop -y