欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

排查线上问题常用的几个Linux命令

程序员文章站 2023-11-02 13:46:28
top 相当于Windows任务管理器 可以看到,输出结果分两部分,前5行是总览,下面是具体的进程资源占用情况。下面逐行看一下 第1行 top - 18:14:58 up 112 days, 1:35, 1 user, load average: 0.00, 0.10, 0.11 依次表示:当前时间 ......

top

相当于windows任务管理器

排查线上问题常用的几个Linux命令

可以看到,输出结果分两部分,前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 : 

排查线上问题常用的几个Linux命令

第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

虚拟内存使用情况

其余行

排查线上问题常用的几个Linux命令

free -m

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

排查线上问题常用的几个Linux命令

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

iostat

排查线上问题常用的几个Linux命令

格式:iostat [ 选项 ] [ <时间间隔> [ <次数> ]]

示例:

iostat -d

iostat -d 2 2

iostat -x 1 2

排查线上问题常用的几个Linux命令

netstat

排查线上问题常用的几个Linux命令

要特别关注一下“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]}' 

df -h

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

排查线上问题常用的几个Linux命令

du -sh

查看(计算)文件大小

排查线上问题常用的几个Linux命令

还可以这样

du --max-depth=2 --block-size=m

或者

ll --block-size=m

其它相关

linux系统打开文件最大数量限制》