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. Keepalived学习,双机主备高可用

    一.主机安装 1.解压 tar -zxvf keepalived-2.0.18.tar.gz 2.解压后进入到解压出来的目录,看到会有configure,那么就可以做配置了 3.使用configure ...

  2. C/C++ 创建Socket实现双工通信

    点击查看代码 实现简单的Socket通信 服务端代码(Server) #include <stdio.h> #include <winsock2.h> #pragma comm ...

  3. python二级 计算生态

    生态地址: https://pypi.python.org/pypi 常用函数:

  4. mac上 Kratos 配置 protoc

    前言 protoc 是 protobuf 文件(.proto)的编译器,可以借助这个工具把 .proto 文件转译成各种编程语言对应的源码,包含数据类型定义.调用接口等. protoc 在设计上把 p ...

  5. Xshell连接有跳板机(堡垒机)的服务器

    一.Xshell直连有跳板机的服务器 跳板机IP:112.74.163.161 端口号: 22     服务器IP:47.244.217.66 端口号:22 1. 新建跳板机会话 点击连接,主机和端口 ...

  6. PHP的curl获取header信息

    PHP的curl功能十分强大,简单点说,就是一个PHP实现浏览器的基础. 最常用的可能就是抓取远程数据或者向远程POST数据.但是在这个过程中,调试时,可能会有查看header的必要. echo ge ...

  7. [SDR] GNU Radio 系列教程 —— GNU Radio RX PDU (接收据包操作)的基础知识(超全)

    目录 1 接收概述 2 相关块介绍 2.1 相关性估计器(Correlation Estimator) 2.2 多相时钟同步(Polyphase Clock Sync) 2.3 线性均衡器(Linea ...

  8. JOKER 前端框架:自带云端可视化 IDE 的创新利器

    一.框架概述 在当今前端开发的多元化领域中,JOKER 前端框架犹如一颗璀璨的明星,以其独特而强大的功能,为开发者开辟了一条高效.便捷的创新之路. JOKER 不仅仅是一个普通的框架,它更是一个综合性 ...

  9. c数组与结构体

    数组,存储同类型的复合类型:结构体,存储不同类型的复合类型,用于自定义数据结构. 计算机中,针对存储大量数据的集合,有着两种方式,一种是以块式集中存储数据,这就是数组的存储方式,大量同类型的数据集中放 ...

  10. MySQL 索引的最左前缀匹配原则是什么?

    MySQL 索引的最左前缀匹配原则 最左前缀匹配原则是 MySQL 使用联合索引时的一个重要优化规则.它指的是在查询条件中,只有符合索引最左侧字段开始的连续前缀部分时,索引才能被有效利用. 1. 最左 ...