排查线上问题常用的几个Linux命令
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命令排查线上问题常用的几个
排查线上问题常用的几个Linux命令 https://www.cnblogs.com/cjsblog/p/9562380.html top 相当于Windows任务管理器 可以看到,输出结果分两部分, ...
- 记一次linux通过jstack定位CPU使用过高问题或排查线上死锁问题
一.java定位进程 在服务器中终端输入命令:top 可以看到进程ID,为5421的cpu这列100多了. 记下这个数字:5421 二.定位问题进程对应的线程 然后在服务器中终端输入命令:top -H ...
- JVM jmap dump 分析dump文件 / 如何使用Eclipse MemoryAnalyzer MAT 排查线上问题
jhat简介 jhat用来分析java堆的命令,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,并支持对象查询语言 这个工具并不是想用于应用系统中而是用于"离线" ...
- 使用Dump转储文件排查线上环境服务未知问题
利用Dump转储文件获取正式环境程序堆栈状态 服务异常找不到原因时,我们通常通过重新启动服务来尝试解决问题,但是在决定重启之前,请不要立刻重启Windows服务或站点 重启服务会让当前案发现场的内存证 ...
- 轻松排查线上Node内存泄漏问题
I. 三种比较典型的内存泄漏 一. 闭包引用导致的泄漏 这段代码已经在很多讲解内存泄漏的地方引用了,非常经典,所以拿出来作为第一个例子,以下是泄漏代码: 'use strict'; const exp ...
- 推荐几个我近期排查线上http接口偶发415时用到的工具
导读:近期有一个业务部门的同学反馈说他负责的C工程在小概率情况下SpringMvc会返回415,通过输出的日志可以确定是SpringMvc找不到content-type这个头了,具体为什么找不到了呢? ...
- Arthas协助排查线上skywalking不可用问题
前言 首先描述下问题的背景,博主有个习惯,每天上下班的时候看下skywalking的trace页面的error情况.但是某天突然发现生产环境skywalking页面没有任何数据了,页面也没有显示任何的 ...
- 你要偷偷学会排查线上CPU飙高的问题,然后惊艳所有人!
GitHub 20k Star 的Java工程师成神之路,不来了解一下吗! GitHub 20k Star 的Java工程师成神之路,真的不来了解一下吗! GitHub 20k Star 的Java工 ...
- 记一次排查线上MySQL死锁过程,不能只会curd,还要知道加锁原理
昨晚我正在床上睡得着着的,突然来了一条短信. 啥,线上MySQL死锁了,我赶紧登录线上系统,查看业务日志. 能清楚看到是这条insert语句发生了死锁. MySQL如果检测到两个事务发生了死锁,会回滚 ...
随机推荐
- Linux从入门到进阶全集——【第十四集:Shell基础命令】
1,Shell就是命令行执行器 2,作用:将外层引用程序的例如ls ll等命令进行解释成01表示的二进制代码给内核,从而让硬件执行:硬件的执行结果返回给shell,shell解释成我们能看得懂的代码返 ...
- 使用Anaconda虚拟环境编译caffe-gpu pycaffe
1. 前提: 安装前服务器情况,已经安装好了: CUDNN=7.3.0 CUDA=10.0.130 Opencv 2.4.13 相应命令为: cuda 版本 cat /usr/local/cuda/v ...
- linux使用storcli64查看硬盘信息
使用storcli查看硬盘信息: rpm -ivh storcli--.noarch.rpm cd /opt/MegaRAID/storcli/ ./storcli64 /c0(零) show 链接: ...
- Java中的异步通知
在我们的日常开发中,经常会遇到这样的问题--"我让你做一件事情,但是你做得很慢,并不能够立马返回给我结果,害我一直在那儿等着你给我返回结果,什么都做不了". 程序是自上而下顺序执行 ...
- Linux多核并行编程关键技术
多核并行编程的背景 在摩尔定律失效之前,提升处理器性能通过主频提升.硬件超线程等技术就能满足应用需要.随着主频提升慢慢接近撞上光速这道墙,摩尔定律开始逐渐失效,多核集成为处理器性能提升的主流手段.现在 ...
- select2使用小结
做项目考虑到使用的便捷,要用到select2,就研究了一下,做个小结,防止忘记.本文内容是建立在NFine框架上的,使用的MVC三层架构.本人很少写文章,学习的知识也过少,不知道能不能表达准确,如有错 ...
- 检查对象是否为NULL或者为Empty
不管是在Winform开发,还是在asp.net 开发中当从一个数据源中获取数据时你总是不知道这个数据的状态,这个时候总要对她进行一次判断,不过每次进行一次判断总是要写怎么一堆代码,时间长了,总感觉不 ...
- Flutter 页面入栈和出栈
Docs demo import 'package:flutter/material.dart'; void main() => runApp(new MyApp()); class MyApp ...
- 圆形进度条css3样式
<view class="con"> <view class="percent-circle percent-circle-left"> ...
- Flutter
2015年, Google 内部开始测试另一种高性能的编程方式,那就 Google 的 Sky 项目.Sky 项目使用网页开发语言Dart开发原生Android 应用,强调应用的运行速度和与 Web ...