Linux系统出现了性能问题,一般我们可以通过 top、iostat、free、vmstat和ifstat等命令来初步定位问题。其中,top命令是Linux下常用的性能分析工具,用于实时监测系统资源使用状况,包括进程、cpu和内存等信息。主要参考指标是load average、%CPU和%MEM。

  我们基于如何爬虫Linux系统内存持续飙高这个问题介绍top命令。

§1、用free查看系统内存使用情况

  free命令是在Linux系统中用于显示系统内存使用情况的工具。它提供有关系统中物理内存、交换空间以及内存的详细信息。通过如下命令查看内存使用情况:

free -m

  以M为单位显示内存使用情况,执行结果示例如下:

              total        used        free      shared  buff/cache   available
Mem: 259160340 80052024 36879732 8536 140428584 177047908
Swap: 0 0 0

  各个指标的业务含义:

  • total:物理内存的总大小。
  • used:已使用无论内存大小。
  • free:空闲物理内存大小。
  • Shared:表示多个进程共享的物理内存总额。
  • buffers/cache:计算缓冲区和缓存后的实际使用情况。
  • available:立即可用的物理内存大小。

  通过free命令的输出结果,可以直观地了解系统内存的使用情况,有助于更好地管理系统资源,提高系统的性能和稳定性。

§2、top命令

  语法:top [选项]

  一般直接在终端输入top命令,不添加选项。可以添加如下选项:

1    展开多核cpu显示(常用)

-b      以批处理模式操作

-c      显示完整的治命令

-d      屏幕刷新间隔时间

-I       忽略失效过程

-s      保密模式

-S      累积模式

-i<时间>    设置刷新间隔时间

-u<用户名> 指定用户名

-p<进程号> 指定进程

-n<次数>   循环显示的次数3、在该命令中常用快捷键

h    显示快捷键帮助

k    终止一个进程

i     开/关忽略闲置和僵死进程

q    退出程序

r     重新安排一个进程的优先级别

S    切换到累计模式

s    更改刷新间隔时间,单位秒

f,F   从当前显示中添加或者删除项目

o,O   改变显示项目的顺序

l     切换显示平均负载和启动时间信息

m    切换显示内存信息

t     切换显示进程和CPU状态信息

c    切换显示命令名称和完整命令行

M    根据内存使用大小排序

P    根据CPU使用率进行排序 (默认排序)

T    根据时间/累计时间进行排序

w    将当前设置写入~/.toprc文件中

§3、实例

top - 18:17:22 up 8:52, 1 user, load average: 0.05, 0.04, 0.05

Tasks: 99 total, 2 running, 97 sleeping, 0 stopped, 0 zombie

%Cpu(s): 0.0 us, 0.1 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem : 739932 total, 353944 free, 125284 used, 260704 buff/cache

KiB Swap: 1044476 total, 1044476 free, 0 used. 459304 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

47 root 20 0 0 0 0 S 0.1 0.0 0:36.55 kworker/0:1

643 root 20 0 21668 1284 972 S 0.1 0.2 0:18.13 irqbalance

1668 root 20 0 0 0 0 S 0.1 0.0 0:01.08 kworker/1:1

1 root 20 0 127968 6480 4096 S 0.0 0.9 0:01.93 systemd

2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd

3 root 20 0 0 0 0 S 0.0 0.0 0:00.23 ksoftirqd/0

5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H

7 root rt 0 0 0 0 S 0.0 0.0 0:00.02 migration/0

8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh

9 root 20 0 0 0 0 R 0.0 0.0 0:01.95 rcu_sched

10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain

  第一行展示的是任务队列信息,与 uptime 命令的执行结果一模一样。在排查问题的时候,重点看load average、%CPU和MEM三个指标。

§4、参数说明

  前5行为系统总体资源统计情况,可以发现此结果集与 free -M的结果集有交集。

top -       系统当前时间

up       系统已开机多长时间

user      当前用户数

load average cpu平均负载,三个数值分别为,1分钟,5分钟,15分钟

Tasks    系统当前进程数,total:总进程数,running:正在运行的进程数,sleeping:睡眠的进程数,stopped:停止的进程数,zombie:僵尸进程数

%Cpu(s) cpu使用率,us:用户使用cpu百分百,sy:系统内核使用cpu百分百,id:剩余的cpu百分百

Mem     内存使用信息,total:总内存大小,free:空闲的内存,used:已使用的内存,buff/cache:缓存的内存大小

Swap    虚拟内存信息

PID     进程id

USER     进程所有者

PR       优先级

NI       nice值,负值表示高优先级,正值表示低优先级

VIRT       进程使用的虚拟内存总量

RES       进程使用的物理内存大小

SHR       共享内存大小

S    进程状态,D 不可中断的睡眠状态,R 运行,S 睡眠,T 跟踪/停止,Z 僵尸进程

%CPU      进程使用的CPU占用百分比

%MEM      进程使用的物理内存百分比

TIME+      进程使用的CPU时间总计

COMMAND   命令名原文来自

Reference

如何排查内存飙高-Linux top命令快速入门的更多相关文章

  1. linux top命令查看内存及多核CPU的使用讲述【转】

    转载一下top使用后详细的参数,之前做的笔记找不见了,转载一下,作为以后的使用参考: 原文地址:http://blog.csdn.net/linghao00/article/details/80592 ...

  2. linux top命令中各cpu占用率含义

    linux top命令中各cpu占用率含义 [尊重原创文章摘自:http://www.iteye.com/topic/1137848]0.3% us 用户空间占用CPU百分比 1.0% sy 内核空间 ...

  3. (转)linux top命令中各cpu占用率含义及案例分析

    原文:https://blog.csdn.net/ydyang1126/article/details/72820349 linux top命令中各cpu占用率含义 0 性能监控介绍 1 确定应用类型 ...

  4. (转)详解Linux Top 命令

    top 命令是最流行的性能监视工具之一,我们必需了解.它是一个优秀的交互式工具,用于监视性能.它提供系统整体性能,但报告进程信息才是 top 命令的长处.top 命令交互界面如下图所视:

  5. 新手指南:详解Linux Top 命令

    Linux top命令简介 top 命令是最流行的性能监视工具之一,我们必需了解.它是一个优秀的交互式工具,用于监视性能.它提供系统整体性能,但报告进程信息才是 top 命令的长处.top 命令交互界 ...

  6. (转)linux TOP命令各参数详解【转载】

    实时监控或查看系统资源使用情况的工具——TOP top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. 下面详细介绍它的使用方法: ( ...

  7. linux TOP命令各参数详解【转载】

    实时监控或查看系统资源使用情况的工具——TOP top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. 下面详细介绍它的使用方法: ( ...

  8. 详解Linux Top 命令

    Linux top命令简介 top 命令是最流行的性能监视工具之一,我们必需了解.它是一个优秀的交互式工具,用于监视性能.它提供系统整体性能,但报告进程信息才是 top 命令的长处.top 命令交互界 ...

  9. linux top命令VIRT,RES,SHR,DATA的含义(转)

    linux top命令VIRT,RES,SHR,DATA的含义 字体: 大 小Posted by 佚名 | tags: top  VIRT  RES  SHR VIRT:virtual memory ...

  10. Linux TOP命令按内存占用排序和按CPU占用排序

    先输入top 然后 按P – 以 CPU 占用率大小的顺序排列进程列表 按M – 以内存占用率大小的顺序排列进程列表 top命令是Linux下常用的性能分析工具,比如cpu.内存的使用,能够实时显示系 ...

随机推荐

  1. Pycharm pull 报错“Pull Failed: refusing to merge unrelated histories”

    分析: 在github已将建立仓库 pycharm clone到本地 pycharm pull 在第3步报错 "Pull Failed: refusing to merge unrelate ...

  2. ADO.NET中SQL绑定变量方式总结

    最近在项目上遇到几个问题,关于ADO.NET中SQL绑定变量 总结一下,分享给大家. 1. 使用 SqlParameter(推荐方式,防止 SQL 注入) ADO.NET 提供 SqlParamete ...

  3. JMeter 获取 response body 的数据

    JMeter 获取 response body 的数据 位置:右键(HTTP Request) - Add - Post Processors - BeanShell PostProcessor im ...

  4. 使用SVM在数字验证码识别中的应用研究课程报告

    第1章 概要设计 1.1 设计目的 支持向量机作为一类强大的监督学习模型,以其出色的泛化能力,在手写数字识别.面部检测.图像分类等多个领域展现出了其优越性.其在处理小样本.非线性及高维模式识别任务中表 ...

  5. 项目管理知识体系指南(PMBOK 指南)

    项目管理知识体系指南(PMBOK 指南) 第6版--笔记项目管理十大知识领域,五大管理过程组,49个过程.如下表格:项目:项目的定义 : (Project Management Institute)项 ...

  6. Towards Accurate Alignment in Real-time 3D Hand-Mesh Reconstruction论文解读

    Towards Accurate Alignment in Real-time 3D Hand-Mesh Reconstruction论文解读 这是发表在ICCV2021的一篇文章,主要的工作内容是R ...

  7. [每日算法 - 华为机试] leetcode53 :最大子数组和 「算法中的哲学」

    入口 53. 最大子数组和https://leetcode.cn/problems/maximum-subarray/ 题目描述 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数 ...

  8. Lua程序设计笔记

    未学:第10章URL编码及以后的示例 13章位和字节 Lua语言基础 一组命令或表达式组成的序列叫chunk程序段,因为Lua语言可以被用作数据定义语言,chunk的大小没有限制,几MB的程序段也很常 ...

  9. 【电脑】解决DiskGenius调整分区大小时报错“文件使用的簇被标记为空闲或与其它文件有交叉”

    [电脑]解决DiskGenius调整分区大小时报错"文件使用的簇被标记为空闲或与其它文件有交叉" 零.报错 在使用DiskGenius对磁盘分区进行调整时,DiskGenius检查 ...

  10. 【Java】可比较泛型建数组传递报强转类型错误解决方案

    问题 可比较泛型怎么新建数组? 自己写基于AVL树的散列表时,在自动扩容的时候需要遍历AVL树的Key,所以需要AVL树提供一个方法返回一个Key数组以遍历,初始实现如下: /** * 用于辅助遍历K ...