关于Linux中top的使用

关于Linux中top的使用

    • 1 简介
      • 1 系统统计信息
      • 2 进程信息
    • 2 常用参数

在项目开发中, 经常会有服务器负载突然飙升, 服务不可用等情况. 需要去关注项目的运行情况. 而top命令是Linux里面常用的性能分析工具, 能够实时显示系统中各个进程的资源占用状况.

1 简介

登录服务器, 输入命令: top 回车

系统会展示当前所有正在运行的进程信息.系统输出的信息很多,主要分为两部分, 第一部分是前面的关于系统整体的统计信息, 第二部分是所有的进程信息.

1 系统统计信息

top - 14:19:38 up 1 days,  5:44,  1 users,  load average: 0.03, 0.04, 0.05
  • top: 当前时间
  • up: 机器运行时间
  • users: 当前登录用户数量
  • load average: 负载平均值. 分别指 1分钟、5分钟、15分钟前到现在的平均值.

像上面说明的服务器负载突然飙升, 可以查看load average负载平均值是否波动大, 一般值不超过服务器的总核数就行.

Tasks: 6 total,   1 running, 5 sleeping,   0 stopped,   0 zombie
  • Tasks: 进程总数
  • running: 运行的进程数
  • sleeping: 休眠的进程数
  • stopped: 停止的进程数
  • zombie: 僵尸进程数

一般看正常运行的进程数量, 运行的越多,服务器压力越大.

%Cpu(s):  0.0 us,  0.1 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0si,  0.0 st
  • us: 用户空间占比CPU的百分比
  • sy: 内核空间占CPU的百分比
  • ni: 用户进程空间内改变过优先级的进程占用CPU百分比
  • id: 空闲CPU百分比
  • wa: 等待输入输出的CPU时间百分比
  • hi: 硬中断占用百分比
  • si: 软中断占用百分比
  • st: steal time 指在有虚拟cpu的时候,被虚拟机偷掉的CPU时间占用百分比
KiB Mem : 1863012 total, 1286408 free,  216532 used, 360072 buff/cache
  • total: 物理内存总量
  • free: 空闲内存量
  • used: 使用的内存量
  • buff/cache: 用作内核缓存的内存量
KiB Swap: 835576 total, 835576 free,     0 used. 111396 avail Mem
  • total: 交换区内存总量
  • free: 空闲交换区总量
  • used: 已使用的交换区总量
  • cached: 缓冲的交换区总量

2 进程信息

PID    USER    PR  NI  VIRT    RES   SHR   S  %CPU  %MEM     TIME+  COMMAND            
21129  root    20   0  0       0     0     S   0.6  0.6   169:56.91  java
22259  root    20   0  158920  3628  2268  S   0.2  9.2   119:41.81  java

参数说明:

列名说明
PID进程id
USER进程拥有者的用户名
PR优先级
NInice值。负值表示高优先级,正值表示低优先级
VIRT进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR共享内存大小,单位kb
S进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU上次更新到现在的CPU时间占用百分比
%MEM进程使用的物理内存百分比
TIME+进程使用的CPU时间总计,单位1/100秒
COMMAND命令名/命令行

进入top时,默认排序是: 各进程按照CPU的占用量

另外, 默认情况下仅显示比较重要的,还有一些参数如:

列名说明
PPID父进程id
GROUP进程所有者的组名
SWAP进程使用的虚拟内存中被换出的大小
CODE可执行代码占用的物理内存大小,单位kb
DATA可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
nFLT页面错误次数
nDRT最后一次写入到现在,被修改过的页面数
WCHAN若该进程在睡眠,则显示睡眠中的系统函数名
Flags任务标志

可通过下面设置操作,变更显示列和顺序.

按f键可以编辑显示内容: (通过上,下键来选择列)

1 显示列和隐藏列

通过上下键, 选到对应的列, 按空格键来设置. 带*的列显示,不带则是隐藏.

2 设置排序列

通过上下键, 选到对应的列, 按s键可以将当前列设置为排序列.

3 列顺序调整

按右键可以选择整个列,然后按上,下键来移动整个列的显示位置,前移或后移,按回车确定.

4 退出

按q键.

2 常用参数

top [参数]

可选参数:

参数说明
-d表示top命令显示的页面更新一次的间隔
-p指定特定的pid进程号监控
-b批处理模式。可以将结果输出到其他程序或者文件。在该模式下,top不接收交互命令,直到top命令被停止,或者执行次数达到-n选项指定的值
-n与-b配合使用,表示top命令执行的最大次数
-i使top不显示任何闲置或者僵死进程
-c显示整个命令行而不只是显示命令名

案例说明:

案例命令说明
top每隔3秒显式所有进程的资源占用
top -d 5每隔5秒显式所有进程的资源占用情况
top -c每隔3秒显式进程的资源占用情况,并显示进程的命令行参数
top -p 1134 -p 2143每隔3秒显示pid是1134 和2143的两个进程的资源占用情况
top -d 5 -c -p 3834每隔5秒显示pid是3834 的进程的资源使用情况,并显式该进程启动的命令行参数

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

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

相关文章

单片机04__基本定时器__毫秒微秒延时

基本定时器__毫秒微秒延时 基本定时器介绍(STM32F40x) STM32F40X芯片一共包含14个定时器,这14个定时器分为3大类: 通用定时器 10个 TIM9-TIM1和TIM2-TIM5 具有基本定时器功能, 还具有输入捕获,输出比较功…

char 、unsigned char、const char区别

1. const char的意思是该字符是 常量类型的。 比如const char ch a; 是告诉编译器,这个变量不会改变。 当你给这个变量重新赋值的时候,会发出warning,提示用户。 const char *和 char const * 以及char * const Bjarne在他的The C Programm…

Linux TCP 参数设置

文章目录 Linux TCP 参数设置参考 Linux TCP 参数设置 查询tcp相关内核参数 sysctl -a|grep ipv4|grep -i --color tcp[rootlocalhost ~]# sysctl -a|grep ipv4|grep -i --color tcp sysctl: reading key "net.ipv6.conf.all.stable_secret" sysctl: reading key &…

Django——ORM增删改查

基本对象 model.objects 创建数据 可以通过django编写的命令行方式快捷创建数据 python manage.py shell 如果对模型层有任何修改都需要重启shell,否则操作容易出错 在shell中我们需要先引入我们的模型,如from bookstore.models import Book 然后通过…

【接口加密】Java中的接口加密实践

目录 2.1 Java加密相关的基础知识 2.1.1 Java加密框架概述 2.1.2 Java加密常用算法介绍 2.2 Java中的接口加密实现 2.2.1 使用Java加密标准(JCE)实现接口加密 2.2.2 通过Bouncy Castle库实现接口加密 2.2.3 第三方加密工具的集成与应用 2.3 Java…

Uniapp-小程序简单的时间选择组件-年月日时分

文章目录 前言一、组件效果二、组件代码使用 总结 前言 uniapp小程序开发系列。本文实现一个简单时间选择控件。uniapp用个心仪时间控件真的麻烦。官方给得要么年月日,要么时分。产品只要年月日时分。这该怎么玩。旧项目没有引入ui框架,我也不想去引入&…

如何连接ACL认证的Redis

点击上方蓝字关注我 应用程序连接开启了ACL认证的Redis时与原先的方式有差别,本文介绍几种连接开启ACL认证的Redis的Redis的方法。 对于RedisACL认证相关内容,可以参考历史文章: Redis权限管理体系(一):客户端名及用户…

python 中 ftplib库的使用说明

在Python3中,ftplib库是用于处理FTP协议的内置模块。以下是一些使用ftplib库的基本操作示例和说明: 连接与登录FTP服务器 from ftplib import FTP# 创建一个FTP对象 ftp FTP()# 连接到FTP服务器 ftp.connect(ftp.example.com, port21) # 默认端口为2…

【二十七】【C++】二叉树练习

606. 根据二叉树创建字符串 给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。 空节点使用一对空括号对 "()" 表示,转化后需要省略所有不影响字符串与…

【无刷电机学习】各种电机优势比较

目录 0 参考出处 1 有刷与无刷比较 2 交流与直流比较 3 内转子与外转子比较 4 Delta型与Y型定子绕向比较 5 低压BLDC的一些优点 0 参考出处 【仅作自学记录,不出于任何商业目的。如有侵权,请联系删除,谢谢!】 维基百科…

C++力扣题目139--单词拆分 198--打家劫舍 213--打家劫舍II 337打家劫舍III

139.单词拆分 力扣题目链接(opens new window) 给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 …

Java代理模式:实现灵活的控制访问

Java代理模式:实现灵活的控制访问 代理模式是常用的设计模式之一,它提供了一种方式来控制对某个对象的访问,通过引入一个代理对象来间接访问目标对象。在Java中,代理模式广泛应用于远程方法调用、AOP(面向切面编程&am…

Unity中URP实现水体效果(水的深度)

文章目录 前言一、搭建预备场景1、新建一个面片,使其倾斜一个角度,来模拟水底和岸边的效果2、随便创建几个物体,作为与水面接触的物体3、再新建一个面片,作为水面 二、开始编写水体的Shader效果1、新建一个URP基础Shader2、把水体…

knife4j springboot3使用

简介 在日常开发中,写接口文档是我们必不可少的,而Knife4j就是一个接口文档工具,可以看作是Swagger的升级版,但是界面比Swagger更好看,功能更丰富 使用 我使用的是springboot3.2.3 knife4j 4.3.0,knife4j 4.4版本有…

自动化操作读写Excel —— xlrd 和 xlwt 模块参数说明与代码实战【第95篇—自动化操作读写Excel 】

自动化操作读写Excel —— xlrd 和 xlwt 模块参数说明与代码实战 在日常工作中,Excel表格是不可或缺的数据处理工具。为了提高工作效率,Python中的xlrd和xlwt模块为我们提供了强大的功能,使得自动化操作Excel变得更加简便。本文将介绍xlrd和…

「优选算法刷题」:两数之和

一、题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任…

【心得】如何做一个靠谱的程序员

你是否曾经遇到过一些不应该出现的小 BUG ,比如路径错了一个字母,进而找不到文件 File no found, 写的小功能 直接用错了变量,进而出现一些莫名其妙的问题。这些问题容易解决,但也浪费了我们不少时间。 那么&#xff…

利用nginx内部访问特性实现静态资源授权访问

在nginx中,将静态资源设为internal;然后将前端的静态资源地址改为指向后端,在后端的响应头部中写上静态资源地址。 近期客户对我们项目做安全性测评,暴露出一些安全性问题,其中一个是有些静态页面(*.html&…

线性代数:向量、张量、矩阵和标量

线性代数:向量、张量、矩阵和标量 背景 在线性代数中,向量、张量、矩阵和标量都属于基础概念,特别是最近AI的爆火,向量和张量的概念也越来越普及,本文将介绍下这些基本概念。 1. 标量(Scalar&#xff0…

QT QString和QStringLiteral的区别

一、理解QStringLiteral 1、QStringLiteral是Qt提供的一个宏,用于在编译时创建一个QString对象。它的主要作用是将字符串字面值转换为QString对象,同时提高运行性能和减少内存占用。 2、使用QStringLiteral宏可以避免在运行时创建QString对象&#xff…