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. .netCore 使用 Quartz 实例

    一.参考源文链接 1.https://www.likecs.com/show-897836.html 2.https://blog.csdn.net/weixin_43614067/article/d ...

  2. PPT-产品页图片并茂

    一.好的文案原则 图片并茂 -重点突出 二.操作 抠图 拷贝图片到ppt页面->选中图片->双击删除背景->标记要删除的区域 背景替换 1.复制图片->粘贴->置于底层 ...

  3. Pandas删除数据

    参考文章:https://www.cnblogs.com/cocowool/p/8421997.html https://blog.csdn.net/weixin_38664232/article/d ...

  4. VirtualBox磁盘扩容

    前言 虚拟机开始时设置的磁盘空间比较小,后面使用就不够了. # 查询磁盘使用情况 df -h 虚拟硬盘扩容 关闭正在运行的虚拟机 选中工具栏 选择虚拟硬盘,并选中需要扩容的磁盘 拖动进度条,设置想要扩 ...

  5. 【Docker】容器数据卷

    Docker容器数据卷 第一次听说这个名字,我一直以为是数据卷(juǎn),后来查看官方英文文档的"volume"这个单词的时候,我才反应过来,这是容器数据卷(juàn),书卷的卷 ...

  6. Tampermonkey 油猴脚本中文手册(出处:https://www.itblogcn.com/article/2233.html)

    文章目录 @name @namespace @copyright @version @description @icon, @iconURL, @defaulticon @icon64, @icon6 ...

  7. 学习unigui【21】unistringGrid的标题栏动态增加

    var Column: TUniGridColumn; begin Column := TUniGridColumn(unstrngrd_summary.Columns.Add); Column.Ti ...

  8. cmd窗口中执行shell文件的方式

    使用cmd打开窗口后,使用powershell切入ps状态,然后使用sh命令即可执行shell文件,切入ps状态所在的目录为Administrator目录 bat设置Path变量 设置好sh.exe的 ...

  9. 🎀Idea序列图插件-SequenceDiagram Core

    简介 SequenceDiagram Core 是一个 IntelliJ IDEA 插件,它允许开发者直接在 IDE中创建和编辑序列图(Sequence Diagrams).序列图是 UML(统一建模 ...

  10. cglib 代理类自己equals自己 返回false问题

    问题: 通过debug发现result.removeAll的时候 删不了 public boolean equals(Object obj) { return obj instanceof OspSp ...