Linux_top命令

news2024/11/18 23:32:10

        top命令是Linux系统下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。它是一个动态显示过程,执行该命令后,它展示的信息会将独占前台,直到用户终止该程序为止(可以用Ctrl + C终止)。

top命令结果详解

当我们输入top命令后,屏幕就会出现以下数据

 第一行显示的是服务器整体信息


top - 15:47:34 up 64 days,  1:26,  5 users,  load average: 29.83, 28.93, 24.51

含义分别为: 

  • 15:47:34 — 系统当前时间
  • up 64 days,  1:26, — 系统已经运行了64天1小时26分钟
  • 5 users, — 当前有5个用户正在登录
  • load average: 29.83, 28.93, 24.51 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。

load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

load average<0.7 * processor(CPU线程数) 表示当前系统运行良好;
1 * processor<load average<3 * processor,需要参考内存、CPU、网络和IO等指标;
load average>5 * processor 表示负载过大;
实时负载通过r+d来计算

第二行显示的是任务进程信息

Tasks: 1287 total,   1 running, 1282 sleeping,   0 stopped,   4 zombie

含义为:系统现在共有1278个进程,其中处于运行中(running)的有1个,1282个在休眠(sleep),停止状态(stope的)的有0个,zombie状态(僵尸)的有4个。

第三行显示的是CPU状态信息

%Cpu(s):  1.7 us,  1.3 sy,  0.0 ni, 96.9 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
  • 1.7%us — 用户空间占用CPU的百分比。
  • 1.3% sy — 内核空间占用CPU的百分比。系统进程CPU使用占比,内核态CPU使用率。
  • 0.0% ni — 改变过优先级的进程占用CPU的百分比
  • 96.9% id — 空闲CPU百分比
  • 0.0% wa — IO等待占用CPU的百分比
  • 0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
  • 0.1% si — 软中断(Software Interrupts)占用CPU的百分比
  • 0.0%st — 虚拟机占用CPU的百分比

si 是从网卡过来的数据包多(收发包多),如果si高,则看网络收发包高的进程。一般硬件中断可以分析文件/proc/interrupts,/proc/irq/pid/smp_affinity、服务irqbalance是否配置,以及CPU的频率设置,通过这些可以帮助系统打散优化系统的硬件中断。

hi 使用率过高时,表示当前硬件中断占用很大的百分比。

wa:使用过高时,要考虑IO的性能是否有瓶颈,可以使用iostat,sar命令进一步分析
可以使用命令查看硬件中断:

cat /proc/interrupts > hil.txt
sleep 2
cat /proc/interrupts > hi2.txt  
vimdiff hil.txt  hi2.txt
或者
/proc/interrupts > hil.txt
sleep 2
cat /proc/interrupts > hi2.txt

默认情况下显示的是所有CPU的平均值,如果想看每个CPU具体值,则按下数字1即可,返回这个界面,再按一次数字1

 第四行显示的是系统的内存信息

KiB Mem : 39406275+total,  3895844 free, 10708065+used, 28308627+buff/cache
  • Mem 39406275+total:物理内存的总量
  • Mem 3895844 free:物理内存的空闲量
  • Mem 10708065+used:物理内存使用量
  • Mem 28308627+buff/cache:物理内存内核缓存使用量

第五行显示的是swap交换分区信息

KiB Swap:   0 total,   0 free,   0 used. 28355382+avail Mem
  • total:交换区总量
  • free:交换区空闲量
  • used:交换区使用量
  • avail Mem:虚拟内存总量

第六行空行

第七行

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND 
  • PID — 进程ID
  • USER — 进程所有者
  • PR — 进程优先级
  • NI — nice值
  • VIRT — 进程所占虚拟内存大小???
  • RES — 进程所占物理内存大小(kb)
  • SHR — 进程所占共享内存大小(kb)
  • %CPU — CPU占用百分比
  • %MEM — 物理内存占用百分比
  • TIME+ — 上次更新到现在进程使用的CPU时间总计
  • COMMAND— 启动该进程的命令

top命令参数

  • -b 批处理
  • -c 显示完整的治命令
  • -I 忽略失效过程
  • -s 保密模式
  • -S 累积模式
  • -i<时间>设置间隔时间
  • -u<用户名>指定用户名
  • -p<进程号>指定进程
  • -n<次数>循环显示的次数

小技巧

间隔刷新
进入top后按下d,即可设置间隔刷新时间,默认是3秒。

添加进程监控字段
进入top后按下f,即可添加/减少需要监控的进程信息。

* PID     = Process Id             vMn     = Minor Faults delta
* USER    = Effective User Name    USED    = Res+Swap Size (KiB)
* PR      = Priority               nsIPC   = IPC namespace Inode
* NI      = Nice Value             nsMNT   = MNT namespace Inode
* VIRT    = Virtual Image (KiB)    nsNET   = NET namespace Inode
* RES     = Resident Size (KiB)    nsPID   = PID namespace Inode
* SHR     = Shared Memory (KiB)    nsUSER  = USER namespace Inode
* S       = Process Status         nsUTS   = UTS namespace Inode
* %CPU    = CPU Usage
* %MEM    = Memory Usage (RES)
* TIME+   = CPU Time, hundredths
* COMMAND = Command Name/Line
  PPID    = Parent Process pid
  UID     = Effective User Id
  RUID    = Real User Id
  RUSER   = Real User Name
  SUID    = Saved User Id
  SUSER   = Saved User Name
  GID     = Group Id
  GROUP   = Group Name
  PGRP    = Process Group Id


前面有*的说明已经显示了。

保存设置
对top进行设置后,默认是不保存配置的,只有按了大写的W后才会保存。

监控结果输出到文件

top -d 1 -n 3 > top.log

参考文章:服务器中使用Top命令后,参数解释_top命令的cpu占用率怎么算的_敢敢J的憨憨L的博客-CSDN博客

Linux服务器硬件情况的查看_系统运维_内存溢出 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/492411.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

汇编仿真 — 比较大小

项目文件 文件 关于项目的内容知识点可以见专栏单片机原理及应用 的第三章 汇编 题目&#xff1a;编程实现如下功能:比较片内 RAM的30H和40H单元中两个无符号数的大小&#xff0c;并将大数存入50H&#xff0c;小数存入51H&#xff0c;若两数相等&#xff0c;则使位单元7FH置1…

内网:域内信息收集

一&#xff0c;判断是否有域 ipconfig /all systeminfo workgroup net config workstation net time /domain&#xff08;该命令有三种情况&#xff09; 1&#xff0c;存在域&#xff0c;当前用户不是域用户。 2&#xff0c;存在域&#xff0c;当前用户是域用户。 3&#xff0c…

使用dataFEED OPC Suite将西门子PLC数据转发至REST API

一 背景 在工业4.0或工业物联网的项目方案中&#xff0c;逐渐紧密融合的OT&IT技术给工业制造带来了新活力。与此同时&#xff0c;利用IT级别的协议和应用来对制造数据进行收集和分析也成为了指导工业生产和优化流程的重要力量&#xff0c;尤其是基于HTTP的轻量级协议REST …

Python---学生管理系统、hashlib模块

1. 学生管理系统 学生管理系统的数据结构设置: 一个学生信息对应一个字典 整个系统的所有学生&#xff1a;所有学生对应一个列表&#xff0c;列表中的元素全是字典 整个系统&#xff1a;一个字典, 字典中有一个key(all_student) 对应的值是所有学生; 这个字典需要做数据持久化…

从传统Java应用到现代微服务,SpringBoot入门的基础指南

目录 一. 创建SpringBoot项目1.1 使用Spring Initializr快速构建项目1.2 手动创建springboot项目 二. SpringBoot入门案例解析2.1 依赖管理特性2.2 starter场景启动器2.3 引导类自动配置 三. REST风格四. 配置文件4.1 配置文件类型4.2 YAML文件的简介与使用4.3 Value与Configur…

VSCode 开发flutter 实现安卓设备远程调试

1&#xff0c;首先安装 ADB Commanads for VSCode扩展 并且必须确保ADB已经添加到系统环境变量中 如未添加请按照下面的方式添加&#xff0c;如添加请直接跳到下面。 2&#xff0c;添加环境变量&#xff08;windows可参考&#xff0c;mac忽略此项&#xff09; 我将ADB安装到这…

3分钟快速实现mysql全量增量备份

需求说明&#xff1a; mysql数据库ip地址为192.168.1.100&#xff0c;端口3306&#xff0c;root密码111111&#xff0c; 服务器cantos7中ip地址192.168.1.101 利用xtrabackup每周六进行全量备份&#xff0c;每天进行增量备份&#xff0c;保留2个礼拜的备份&#xff0c;并且保存…

睡眠经济2.0时代来了,老巨头们有护城河吗?

在第23个世界睡眠日&#xff0c;中国睡眠研究会等机构发布了《中国睡眠研究报告2023》&#xff0c;近半数人每晚平均睡眠时长不足8小时&#xff0c;“失眠”已成为了当代人的生活常态。 越是睡不好&#xff0c;越要想办法。年轻人纷纷求助于好的寝具、好的助眠产品乃至保健品&…

【C语言进阶C++】 C++基础--让你丝滑的从C语言进阶到C++

目录 前言 正文 1. 面向过程、面向对象 面向过程思维 面向对象思维 面向过程语言优缺点 面向对象语言优缺点 C面向对象特点 2. 输入、输出 C中的输入输出 总结C和C输入输出 3. 命名空间 作用域 命名空间 4. 动态申请空间 C动态申请空间&#xff08;new、delete&…

Leetcode刷题之回文链表和交换链表中的结点

竭力履行你的义务&#xff0c;你应该就会知道&#xff0c;你到底有多大的价值。 --列夫.托尔斯泰 目录 &#x1fab4;一.回文链表 &#x1f33b;1.快慢指针 &#x1f341;2.把值存入数组中&#xff0c;然后使用双指针 &#x1f33c;二.交换链表中的结点 &#x1…

经典论文解读 — 端到端的VL预训练网络SOHO

来源&#xff1a;投稿 作者&#xff1a;摩卡 编辑&#xff1a;学姐 论文标题&#xff1a; Seeing Out of tHe bOx :End-to-End Pre-training for Visual-Language Representation Learning》 Motivation 本文针对目前大量Visual-Language(VL) tasks使用由Faster-RCNN提取出的…

余弦相似度公式推导及代码实现

余弦相似度公式推导 1. 为什么使用余弦值相似度&#xff1f;2. 公式推导2.1 三角函数余弦公式推导2.2 三角函数向量余弦公式推导 3. 余弦相似度代码实现 1. 为什么使用余弦值相似度&#xff1f; 空间维度上两个点之间相似定义 在空间维度上两个点之间是有夹角和方向&#xff0…

计算机操作系统实验:页面置换算法的实现

目录 前言实验目的实验内容实验过程最佳置换算法代码实现算法流程流程图设计思路运行结果 先进先出算法代码实现算法流程流程图设计思路运行结果 最近最久未使用算法代码实现算法流程流程图设计思路运行结果 总结 前言 本实验的目的是通过编程模拟不同的页面置换算法&#xff…

基于思科模拟器的路由与交换实训报告(单臂路由、三层交换机实现vlan通信、ospf、rip、dhcp、acl、nat技术总结)

本博客是路由与交换实训报告&#xff0c;基于思科模拟器分别做了单臂路由、三层交换机实现vlan间通信、ospf、rip、dhcp、nat的实验&#xff0c;最后的nat综合实验是本次实训的大拓扑&#xff0c;综合了上述的几个技术。 大家可以当作一些思科小实验的总结&#xff0c;供网络工…

数据库管理-第七十二期 复盘(20230505)

数据库管理 2023-05-05 第七十二期 复盘1 再测试2 对照分析&#xff1a; 3 如何解决总结 第七十二期 复盘 上一期的内容&#xff0c;我承认主要是在放假&#xff0c;分析过程还是水了一点&#xff0c;SR转回国内之后&#xff0c;处理效率还是提升了一大截。 1 再测试 在客户…

Linux - 第11节 - 网络基础(一)

1.计算机网络背景 1.1.网络发展 独立模式&#xff1a;计算机之间相互独立 在早期的时候&#xff0c;计算机之间是相互独立的&#xff0c;此时如果多个计算机要协同完成某种业务&#xff0c;那么就只能等一台计算机处理完后再将数据传递给下一台计算机&#xff0c;然后下一台计…

Python进阶——实现人脸识别

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 今天我们来实现一下人脸识别~ 先问大家一个问题 什么是百度Aip模块&#xff1f; 百度AI平台提供了很多的API接口供开发者快速的调用运用在项目中 本文写的是使用百度AI的在线接口SDK模块&#xff08;baidu-aip&#…

单链表——单链表的定义及基本操作(初始化、头插法尾插法建表、查找、插入、删除、判空等)

单链表的定义 由于顺序表存在以下缺陷&#xff0c;所以衍生出了链表&#xff0c;而链表种类有很多种&#xff0c;今天我们讲的是单链表。 顺序表存在的问题如下 1.中间/头部的插入删除&#xff0c;时间复杂度为O(N) 2. 增容需要申请新空间&#xff0c;拷贝数据&#xff0c;释…

CPU 架构(x86/ARM)简介

CPU 架构通过指令集的方式一般可分为 复杂指令集&#xff08;CISC&#xff09; 和 精简指令集&#xff08;RISC&#xff09; 两类&#xff0c;CISC 主要是 x86 架构&#xff0c;RISC 主要是 ARM 架构&#xff0c;还有 MIPS、RISC-V、PowerPC 等架构。 本文重点介绍 x86 和 ARM…

idea中maven的几个操作按钮:clean、validate、compile...

idea中Maven生命周期指令 clean命令 清除由项目编译创建的target validate命令 验证项目是否正确&#xff0c;并且所有必要的信息均可用 compile命令 编译项目的源代码 test命令 使用合适的单元测试框架来测试编译的源代码。 这些测试不应要求将代码打包或部署 verify命令 …