排查线上问题必须掌握的 6 个 Linux 命令

1、top

相当于Windows任务管理器

 可以看到,输出结果分两部分,前5行是总览,下面是具体的进程资源占用情况。下面逐行看一下

第1行

复制代码
top - 18:14:58 up 112 days, 1:35, 1 user, load average: 0.00, 0.10, 0.11

依次表示:当前时间、系统已经运行的时间、当前登录的用户数、系统在过去的1分钟,5分钟,15分钟的负载

PS:从这一行我们可以知道以下信息:

    当前时间是18:14:58
    系统运行了112天1小时35分钟
    当前有1个用户登录
    在过去1分钟,5分钟,15分钟的负载分别是0.00, 0.10, 0.11

负载超过1,则表示超负荷
复制代码

第2行

复制代码
Tasks: 225 total, 1 running, 224 sleeping, 0 stopped, 0 zombie

进程信息

    total    进程总数
    running   运行中的进程数
    sleeping  睡眠中的进程数
    stopped  停止的进程数
    zombie   僵尸进程数

(PS:从这一行我们可以知道,当前总共225个进程)
复制代码

第3行

复制代码
Cpu(s): 1.8%us, 0.9%sy, 0.0%ni, 97.1%id, 0.1%wa, 0.0%hi, 0.1%si, 0.0%st

CPU使用情况

us : 用户进程占用CPU百分比

sy : 内核进程占用CPU百分比

ni : 改变过优先级的进程占用CPU百分比

id : 空闲CPU百分比

wa : IO等待的进程占用CPU百分比

hi : 硬中断占用CPU的百分比

si : 软中断占用CPU的百分比

st :
复制代码

 第4行

复制代码
Mem: 32879852k total, 23633040k used, 9246812k free, 311552k buffers

物理内存使用情况

    total  总的内存大小
    used  已使用
    free  未使用
    buffers  内核缓冲区   

可用内存 = free + buffers + cached
复制代码

第5行

Swap: 4194300k total, 255104k used, 3939196k free, 10422508k cached

虚拟内存使用情况

其余行

 2、free -m

查看已使用和未使用的内存情况

复制代码
Mem  total = used + free

Swap  total = used + free

可用内存 = free + buffers + cached

(-buffers/cache) used内存数 = Mem行中的 used – buffers – cached

(+buffers/cache) free内存数 = Mem行中的 free + buffers + cached
复制代码

 3、netstat

 要特别关注一下“ESTABLISHED”的数量,如果ESTABLISHED越多,表示建立的连接越多,如果一直居高不下,那么就要引起注意了,因为系统对打开的连接数是有限制的。

常见应用

1、查看连接数最多的IP

netstat -na | grep ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c

2、统计TCP不同状态的连接数

netstat -na | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 

4、df -h

查看文件系统磁盘空间使用情况

 5、du -sh

查看(计算)文件大小

还可以这样

du --max-depth=2 --block-size=M 或者 ll --block-size=M

 

posted @   Bonnie_ξ  阅读(91)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示