CentOS问题排查常用命令及工具

212 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 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

image.png

atop

# 安装
yum install atop -y

image.png 可以看到相对于top来说, atop的面板信息更加丰富, 并且会将使用压力较大的资源高亮显示出来, 更加方便直观的看出问题, 如下, 一眼便可看出内存资源压力过大, 内存不足

image.png 同时也支持命令行交互, atop h可查看支持交互的详细命令

htop

相对于top和atop, htop就更方便了, 面板信息也更加鲜艳醒目(更美观了), 还可以直接用鼠标操作, 同时也支持命令行交互, htop h可查看支持交互的详细命令

# 安装
yum install htop -y

image.png