首页 > 其他分享 >top命令使用

top命令使用

时间:2023-10-17 13:57:27浏览次数:25  
标签:SHR top 命令 内存 使用 进程 CPU 虚拟内存

了解Linux系统性能的利器:top命令详解

原创 毅途憬元 毅途憬元 2023-09-18 21:00 发表于广东 收录于合集 #性能测试50个 #各类工具集37个

 

在测试和监控Linux系统性能时,top命令是一个不可或缺的工具。top命令以交互式方式提供实时系统性能数据,帮助深入了解系统的运行状况。top命令的主要功能:

  1. 实时性能监控:top命令默认以实时方式显示CPU使用率、内存占用、进程信息等关键性能指标。这使能够快速识别系统资源瓶颈。

  2. 进程管理:通过top,可以查看运行中的所有进程,并可以根据CPU或内存占用来排序它们。还可以发送信号来终止或暂停进程。

  3. 资源利用情况:top提供了关于系统内存和交换空间的详细信息,包括空闲内存、缓冲区和缓存。

  4. 用户界面:top的交互式界面允许动态调整显示的内容,例如更改排序方式、刷新频率和显示的进程数量。可以按 `M` 键切换到按内存排序。刷新频率:默认每隔 3 秒刷新一次。可以按 `d` 键来更改刷新频率。

    按 `o` 键,然后选择不同的排序选项,如 CPU 使用率、内存使用等。

    查看不同的系统资源:按 `1` 键查看 CPU 核心的详细信息,按 `2` 键查看内存的详细信息。退出 `top`:按 `q` 键退出 `top`

  5. 日志记录:top还可以将性能数据记录到文件,以便后续分析和审查。

 

top

启动 top将看到如下的主要部分:

顶部信息:包括系统运行时间、当前时间、登录用户数、系统负载等。

进程列表:按照 CPU 使用率(默认)降序排列的进程列表。每个进程都显示了相关信息,包括进程 ID(PID)、用户名、CPU 使用率、内存使用、进程状态等。以下是一个示例 `top` 输出的一部分:

top - 09:30:00 up 2 days, 2:15, 2 users, load average: 0.20, 0.17, 0.15Tasks: 174 total, 1 running, 173 sleeping, 0 stopped, 0 zombie%Cpu(s):  2.0 us,  0.7 sy,  0.0 ni, 97.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 stKiB Mem :  8015508 total,  1203420 free,  3466332 used,  3343756 buff/cacheKiB Swap:  2097148 total,  2097148 free,        0 used.  4093132 avail Mem 

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1067 john 20 0 1755128 134120 66072 S 6.3 1.7 2:25.23 firefox 2648 alice 20 0 407148 23660 13632 S 4.3 0.3 0:15.19 gnome-terminal 854 root 20 0 348440 14120 9532 S 2.3 0.2 0:31.64 Xorg ...

在示例中,可以看到系统的负载平均值、运行时间、CPU 使用率、内存信息和进程列表。进程列表按照 CPU 使用率降序排列,可以使用交互式命令来与 `top` 进行互动,查看不同的资源信息并进行操作。

在 `top` 命令的输出中,以下是一些常见的列以及它们的含义:

1. **PID**:进程的唯一标识符(进程ID)。

2. **USER**:运行进程的用户名。

3. **PR**:进程的调度优先级。这个值可能是动态变化的。

4. **NI**:进程的 Nice 值,表示进程的优先级。负数表示更高的优先级,正数表示较低的优先级。

5. **VIRT**:进程使用的虚拟内存大小(以千字节为单位)。

6. **RES**:进程占用的物理内存大小(以千字节为单位)。

7. **SHR**:进程使用的共享内存大小(以千字节为单位)。

8. **S**:进程的状态。常见的状态包括: - **R**:运行中(正在执行或等待 CPU 时间片)。 - **S**:睡眠状态(通常是等待某些事件的发生)。 - **D**:不可中断的休眠状态(通常是等待硬件操作完成)。 - **Z**:僵尸状态(进程已终止,但其父进程尚未清理资源)。 - **T**:已停止或暂停。

这些列提供了有关正在运行的进程的详细信息,如进程的标识符、所有者、资源使用情况(内存、虚拟内存等)、进程状态等。`PR` 和 `NI` 列是有关进程调度和优先级的信息,而 `VIRT`、`RES` 和 `SHR` 列则提供了有关进程内存使用的信息。VIRTRES 和 SHR 是与进程内存使用相关的列,它们代表不同类型的内存指标,各自具有以下含义:

  1. VIRT(虚拟内存):

    • 含义:VIRT 列表示进程所使用的虚拟内存大小,以千字节(KB)为单位。

    • 说明:虚拟内存是指进程可以访问的总内存空间的大小,包括实际物理内存(RAM)和交换空间(swap)。虚拟内存大小可能会比实际物理内存和交换空间的总和大,因为它包括了进程可能会使用但尚未实际分配的内存。

  2. RES(常驻内存):

    • 含义:RES 列表示进程实际占用的物理内存大小,以千字节(KB)为单位。

    • 说明:常驻内存是指进程实际使用的物理 RAM 大小。它表示进程当前正在占用的实际物理内存。RES 不包括交换空间中的数据,只包括实际物理 RAM。

  3. SHR(共享内存):

    • 含义:SHR 列表示进程使用的共享内存大小,以千字节(KB)为单位。

    • 说明:共享内存是多个进程之间共享的内存区域。这些进程可以访问相同的内存块,以减少内存的重复使用,从而减小内存占用。SHR 列显示的是进程使用的共享内存大小。

  • VIRT 表示进程所使用的虚拟内存大小,包括实际分配的和可能分配但尚未使用的内存。

  • RES 表示进程实际占用的物理内存大小,即进程当前正在使用的实际 RAM 大小。

  • SHR 表示进程使用的共享内存大小,这是多个进程共享的内存块。

在监视进程内存使用时,通常更关注 RES 列,因为它反映了进程实际占用的物理内存量,而 VIRT 则可能会包括许多未使用的虚拟内存。SHR 可以帮助了解进程是否共享了一些内存,以优化内存利用率。

top还可以将性能数据记录到文件,以便后续分析和审查。一种常见的方法是使用重定向操作符(">")将top的输出保存到文件中,如下所示:

top -b -n 7200 -d 1 > top_output.txt

 

这个命令将top以批处理模式运行,总共运行7200次(每秒1次,即2小时),并将每次的结果追加到名为top_output.txt的文本文件中。这将记录2小时内每秒的性能数据。请注意,这可能会生成一个非常大的文件,因此确保有足够的磁盘空间来存储这个文件,并在采集结束后及时处理和分析数据。

另外,还有其他专门用于系统性能数据采集和记录的工具,如sar、vmstat、iostat等,它们可以更全面地记录系统性能信息,并且通常提供更多的配置选项。这些工具可以将性能数据写入文件,以供稍后分析和审查。

标签:SHR,top,命令,内存,使用,进程,CPU,虚拟内存
From: https://www.cnblogs.com/cherishthepresent/p/17769509.html

相关文章

  • vue中使用Base64加密、解密
    Base64加密、解密第一步:npminstalljs-base64--save下载依赖第二步:   直接引入即可import{Base64}from'js-base64';第三步:Base64.encode(xxxx)其中  .encode()加密       .decode()解密中间不需要使用加密的key等其他字符......
  • macOS 如何设置 Finder 打开某种类型的文件时候使用指定的默认 Application 程序 All
    macOS如何设置Finder打开某种类型的文件时候使用指定的默认Application程序AllInOnequestionsolution永久更改用于打开所有特定类型文件的App在Mac上,点按程序坞中的“访达”图标以打开“访达”窗口。选择文件,然后选取“文件”>“显示简介”。还可以按住Contr......
  • vue中使用ckeditor,支持wps,word,网页粘贴
    ckeditor5官网目前不支持wps的图片粘贴,但可以通过修改源码实现。<template> <div>  <divv-if="!disabled">   <divid="toolbar-container"></div>   <!--编辑器容器-->   <divid="editor">    <p......
  • 第一章 第五六七节 git的使用介绍
    git简介1.综述git的好处​ git可以管理master,dev,bug等代码分支,互不影响减少出错的可能性;​ 有利于团队合作,让大家互不影响,同时容易解决代码冲突;2.git分支的分类,一般名称​ master<=>dev保持一致​ feature分支;bug分支;其他分支3.git的下载和安装​ git官网提供下......
  • Opencv系列之一:简介与基本使用
    1Opencv简介Opencv是计算机视觉中经典的专用库,其支持多语言,跨平台,功能强大。Opencv-Python为Opencv提供了Python接口,使得使用者在Python中能够调用C/C++,在保证易读性和运行效率的前提下,实现所需的功能。Opencv是由GrayBradsky于1999年在英特尔创立,第一版于2000年问世。Vadim......
  • C2000 系列DSP使用Syscfg配置CLB模块记录
    1.1、SysConfig配置1、在工程下新建一个syscfg文件。注意文件的后缀名是.syscfg,命名任意。这时候会弹出一个弹窗,点击yes将SysConfig添加到该工程的toolchain。2、可以看到工程下多了一个GeneratedSource,并且打开工程属性,Build下也新加了SysConfig......
  • 使用busybox自代chrt提升全部TID优先级
    背景嵌入式平台比较青睐busybox提高设备安全性其中内建了chrt可以方便的修改调度优先策略问题实际使用过程中发现chrt不能统一修改全部thread的优先级chrtchrt[OPTIONS][PRIO][PID|PROG[ARGS]]Manipulatereal-timeattributesofaprocessOpt......
  • VS2019连接MySql使用实体数据模型(EF实体映射)【解决创建闪退问题】
    一、确定MySQLConnectorNet版本如果没有请下载下载驱动:mysql-connector-odbc-8.0.20-winx64.msimysqlodbc驱动mysql-for-visualstudio-1.2.9.msiVisualStudio连接MySQL工具mysql-connector-net-8.0.20.msimysql数据库.net开发驱动驱动介绍1.MySQLConnector/ODBC ......
  • 如何使用GaussDB(DWS)的本地临时表进行数据处理
    本文分享自华为云社区《GaussDB(DWS)临时表系列-本地临时表》,作者:acydy。GaussDB(DWS)从8.2.1版本后支持三种形式的临时表:本地临时表、Volatile临时表、全局临时表。本文先介绍DWS的本地临时表功能。本地临时表特点:表定义和数据都是会话相关,其他会话看不到本会话创建的本地......
  • Dos命令
    Dos命令打开CMD的方式开始+系统+命令提示符Windows键+R输入cmd打开控制台在任意的文件夹下面,按住Shift键+鼠标右键点击在此处打开命令行窗口资源管理器的地址栏前面加上cmd路径常用的Dos命令#盘符切换:英文+:回车#查看当前目录下的所有文件dir回车#切换目录cd#cd......