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

虚拟内存使用情况

其余行

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

iostat

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

示例:

iostat -d

iostat -d 2 2

iostat -x 1 2

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]}' 

df -h

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

du -sh

查看(计算)文件大小

还可以这样

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

或者

ll --block-size=M

其它相关

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

排查线上问题常用的几个Linux命令的更多相关文章

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

    排查线上问题常用的几个Linux命令 https://www.cnblogs.com/cjsblog/p/9562380.html top 相当于Windows任务管理器 可以看到,输出结果分两部分, ...

  2. 记一次linux通过jstack定位CPU使用过高问题或排查线上死锁问题

    一.java定位进程 在服务器中终端输入命令:top 可以看到进程ID,为5421的cpu这列100多了. 记下这个数字:5421 二.定位问题进程对应的线程 然后在服务器中终端输入命令:top -H ...

  3. JVM jmap dump 分析dump文件 / 如何使用Eclipse MemoryAnalyzer MAT 排查线上问题

    jhat简介 jhat用来分析java堆的命令,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,并支持对象查询语言 这个工具并不是想用于应用系统中而是用于"离线" ...

  4. 使用Dump转储文件排查线上环境服务未知问题

    利用Dump转储文件获取正式环境程序堆栈状态 服务异常找不到原因时,我们通常通过重新启动服务来尝试解决问题,但是在决定重启之前,请不要立刻重启Windows服务或站点 重启服务会让当前案发现场的内存证 ...

  5. 轻松排查线上Node内存泄漏问题

    I. 三种比较典型的内存泄漏 一. 闭包引用导致的泄漏 这段代码已经在很多讲解内存泄漏的地方引用了,非常经典,所以拿出来作为第一个例子,以下是泄漏代码: 'use strict'; const exp ...

  6. 推荐几个我近期排查线上http接口偶发415时用到的工具

    导读:近期有一个业务部门的同学反馈说他负责的C工程在小概率情况下SpringMvc会返回415,通过输出的日志可以确定是SpringMvc找不到content-type这个头了,具体为什么找不到了呢? ...

  7. Arthas协助排查线上skywalking不可用问题

    前言 首先描述下问题的背景,博主有个习惯,每天上下班的时候看下skywalking的trace页面的error情况.但是某天突然发现生产环境skywalking页面没有任何数据了,页面也没有显示任何的 ...

  8. 你要偷偷学会排查线上CPU飙高的问题,然后惊艳所有人!

    GitHub 20k Star 的Java工程师成神之路,不来了解一下吗! GitHub 20k Star 的Java工程师成神之路,真的不来了解一下吗! GitHub 20k Star 的Java工 ...

  9. 记一次排查线上MySQL死锁过程,不能只会curd,还要知道加锁原理

    昨晚我正在床上睡得着着的,突然来了一条短信. 啥,线上MySQL死锁了,我赶紧登录线上系统,查看业务日志. 能清楚看到是这条insert语句发生了死锁. MySQL如果检测到两个事务发生了死锁,会回滚 ...

随机推荐

  1. idea 版本控制 忽略要提交的文件

  2. datatable 笔记 服务器端查询

    var vTable = ""; $("#vip_data").dataTable({ "scrollY": 400, //竖向高度 滚动 ...

  3. 怎样在ASP.NET(C#) 使用Json序列化反序列化问题?

    using System; using System.Collections.Generic; using System.Web; using System.Web.Script.Serializat ...

  4. 可道云kodexplorer网盘未清理造成linux服务器爆满的解决方法

    今天登陆宝塔面板的时候发现硬盘占用37GB,已经变红提示我空间不足了,惊呆了, 还以为是宝塔抽风了,去远程连接服务器看了一下,懵逼了. df -h 查看挂载目录使用情况 还是不相信现实的我又重启了一下 ...

  5. 4.24Linux(4)

    2019-4-24 21:35:13 学完了Linux装python编译安装感觉有种控制电脑的感觉!感觉好爽!!!! 主要是Linux用习惯就感觉好爽!!! 越努力,越幸运!永远不要高估自己!! 等学 ...

  6. [LeetCode] Score After Flipping Matrix 翻转矩阵后的分数

    We have a two dimensional matrix A where each value is 0 or 1. A move consists of choosing any row o ...

  7. [LeetCode] Race Car 赛车

    Your car starts at position 0 and speed +1 on an infinite number line.  (Your car can go into negati ...

  8. 不会git的程序员,会不会被鄙视?

    昨天一朋友在微信上问了我一个问题,我觉得很有趣,于是将本次聊天的内容分享给大家. 我朋友说,如果一个程序员不会使用 git,会不会被别人觉得低一个档次? 事先声明啊,这与公司技术栈无关,不要说有些公司 ...

  9. victory-native的使用

    Victory用于构建交互数据可视化的可组合React组件的生态系统 想写又不想写,真尴尬...

  10. 《C#与.NET程序员面试宝典》学习札记

    第2章 .NET概述 2.1-6~ .Net Framework / CLR / IL / Assembly IL:中间语言代码,不同语言(如C#,VB)的基于CLR的编译器编译生成的中间语言字节码, ...