Linux下监控类命令:ps,du,top,df,free详解

news2024/9/21 20:22:11

Linux下监控类命令

  • top命令
    • top信息解释
    • top参数使用
  • ps命令
    • ps信息解释
    • ps参数使用
  • du和df
  • free命令

top命令

top命令,是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,一般系统资源导致的崩溃问题可以使用top实时监控各进程,输出到日志文件分析某个进程是否假性释放… …

top信息解释


在这里引用之前文章的top命令截图 linux系统如何查看内存:文中第四项top命令。下面对图中所示信息逐行说明。

第一行:任务队列信息,同uptime命令的执行结果
16:29:14: 当前系统时间
up 4min: 系统已经运行了4分钟
3 user: 当前有3个用户登录系统
load average: 0.01, 0.06, 0.03: 1分钟,5分钟,15分钟的平均负载情况

第二行:Tasks任务(进程)信息
共有128个进程,处于运行状态的有2个,81个在休眠,stoped(停止)状态0个,zombie(僵尸)状态有1个

第三行:CPU状态信息
us: 用户空间占用CPU的百分比
sy: 内核空间占用cpu的百分比
ni: 改变优先级的进程占用CPU的百分比
id: 空闲CPU百分比
wa: I/O等待只用CPU的百分比
hi: 硬中断(Hardware IRQ)占用CPU的百分比
si: 软中断(Software Interrupts)占用CPU的百分比
st: 虚拟机占用CPU的百分比

第四行:内存状态
total: 物理内存总量
used: 使用中的内存总量
free: 空闲内存总量
buffers: 缓冲的内存量

第五行:swap交换分区信息
total: 交换分区总量
used: 使用的交换区总量
free: 空闲交换区总量
cached: 缓存的内存量

第六行:空行

第七行:给出的各进程(任务)的状态监控
PID(Process ID):进程标示号。
USER:进程所有者的用户名。
PR:进程的优先级别。
NI:进程的优先级别数值。
VIRT:进程占用的虚拟内存值。
RES:进程占用的物理内存值。
SHR:进程使用的共享内存值。
S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。
%CPU:该进程占用的CPU使用率。
%MEM:该进程占用的物理内存和总内存的百分比。
TIME+:该进程启动后占用的总的CPU时间。
Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。

top参数使用

top [-d number] | top [-bnp]

-a  # 将进程按照使用内存排序
-b  # 批处理的模式显示进程信息,输出结果可以传递给其他程序或写入到文件中,配合-n使用,一直打到-n设置的阈值
-c  # 显示进程的整个命令路径,而不是只显示命令名称
-d  # number代表秒数,表示top命令显示的页面更新一次的间隔。默认是5秒。
-H  # 指定这个可以显示每个线程的情况,否则就是进程的总的状态
-i  # 不显示闲置或者僵死的进程状态  
-n  # top输出信息更新的次数,完成后将退出top命令
-p  # 显示指定的进程信息

在top命令显示的页面还可以输入以下按键执行相应的功能(注意大小写区分的):
?(h):显示在top当中可以输入的命令
P:以CPU的使用资源排序显示
M:以内存的使用资源排序显示
N:以pid排序显示
T:由进程使用的时间累计排序显示
k:给某一个pid一个信号。可以用来杀死进程
r:给某个pid重新定制一个nice值(即优先级)
q:退出top(用ctrl+c也可以退出top)

只是为了查看资源信息,一般的写法如:
!!!
top:显示进程信息
top -n 1:显示1秒后终止更新显示
top -d 3:表示更新时间为3秒
top -p PID:显示进程号为PID的进程信息
top -u userName:显示用户userName的进程信息

top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要。但是,它的缺点是会消耗很多系统资源。
使用top命令可以监视指定用户,缺省情况是监视所有用户的进程。如果想查看指定用户的情况,在终端中按“U”键,然后输入用户名,系统就会切换为指定用户的进程运行界面。

ps命令

ps命令是最基本的进程查看命令,格式为:ps [options],通过执行man ps命令进行查看文档说明,使用ps可以看到有哪些进程正在运行,并且可以看到进程的运行状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。
注意的是:ps是显示瞬间进程的状态,并不动态连续,如果想对进程进行实时监控应该用top命令。

ps信息解释

以ps -aux为例(图片引自YoungerChina)
在这里插入图片描述

# USER:表示该进程属于哪个用户
# PID:进程id
# %CPU:该进程占用CPU资源的百分比
# %MEM:该进程占用内存的百分比
# VSZ:该进程使用掉的虚拟内存量 (Kbytes)
# RSS:该进程占用的固定的内存量 (Kbytes)
# TTY:该进程是在那个终端机上面运行,若与终端机无关,则显示?,另外,tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
# STAT:代表该进程目前的状态,主要的状态有:
   R:该进程正在运行
   S:该进程正在休眠,但可被某些信号(signal)唤醒
   D:无法中断的休眠状态(通常为IO进程)
   T:该进程已经停止
   Z:僵死状态,该进程应该已经终止,但是其父进程却无法正常的终止它,造成zombie(疆尸)程序的状态
   W:等待状态,等待内存的分配
    <:高优先级的进程
# N:低优先级的进程
# START:该进程被触发启动的时间
# COMMAND:该进程的实际指令

ps参数使用

ps的参数组合种类非常多,但是常用的也就是几个,下面列出:

  • -a:显示当前终端下的所有进程信息,包括其他用户的进程信息。与x选项结合使用可以显示系统中所有进程的信息。
  • -x:显示当前用户在所有终端下的进程信息。
  • -u: 显示当前用户的进程状态
  • -e:显示系统内的所有进程信息。与-A选项功能相同。
  • -f:使用完整的(full)格式显示进程信息。还会打印命令参数,当与-L一起使用时,将添加NLWP(线程数)和LWP(线程ID)列。
  • -f:以ASCII字符显示进程层次树结构。
  • -j:BSD风格控制格式输出进程信息。
  • -L:显示线程信息,包含LWP(线程ID)列和NLWP(线程数)。

常用组合

# ps -aux:查看系统所有进程
//ps -aux默认是无序的,可以通过--sort命令来排序
# ps -aux --sort -pcpu|less -N     #按照cpu占用来排序
# ps -aux --sort -pmem|less -N     #按照内存占用来排序
# ps -aux | grep debug             #查看指定进程(此为查看名为debug的进程)
# ps -l                            #查看当前用户的进程
# ps -axjf                         #以进程树结构显示过程
# ps -efL                          #获取有关线程的信息

常见使用场景一:找出电脑中的某一个进程,配合kill命令,结束该进程
①使用ps和grep命令,查找出对应程序的进程号,比如查看找tail的进程号:ps -ef |grep “tail”
②找出进程号,使用kill -9 进程号命令结束该进程
常见使用场景二:用于确定某一个程序是否已经启用:ps -ef |grep “tail”

du和df

du显示每个文件和目录的磁盘使用空间,使用格式:du [选项] [文件]

-a或-all  列出所you的文件与目录容量,因为默认仅统计目录下面的文件量  
-b或-bytes  显示目录或文件大小时,以byte为单位。   
-c或--total  除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes  以KB(1024bytes)为单位输出。
-m或--megabytes  以MB为单位输出。   
-s或--summarize  仅显示总量,只列出最后加总的值,而不列出每个个别的目录占用容量。
-S或--separate-dirs   不包括子目录下的总计,与 -s 有点差别
-h或--human-readable  以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem  以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。   
-X<文件>--exclude-from=<文件><文件>指定目录或文件。   
--exclude=<目录或文件>         略过指定的目录或文件。    
-D或--dereference-args   显示指定符号链接的源文件大小。   
-H或--si  与-h参数相同,但是K,M,G是以1000为换算单位。   
-l或--count-links   重复计算硬件链接的文件。   

----------------------------------------------------------------------------------

df 显示磁盘分区上可以使用的磁盘空间,使用格式:df [选项] [文件]

显示指定磁盘文件的可用空间。如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以 1KB为单位进行显示,除非环境变量 POSIXLY_CORRECT 被指定,那样将以512字节为单位进行显示。

-a 列出所有的文件系统,包括系统特有的 /proc 等文件系统
-k 以 KBytes 的容量显示各文件系统。命令 df -k 同命令 df
-m 以 MBytes 的容量显示各文件系统
-h 以人们较易阅读的 GBytes、MBytes、KBytes 等格式自行显示
-H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
-i 不用磁盘容量,而以 inode 的数量来显示
-l 只显示本地文件系统。命令 df -l 同命令 df
-T  连同该磁盘分区的文件系统名称(例如 xfs)也列出
--block-size=<区块大小> 指定区块大小
-t <文件系统类型> 只显示选定文件系统的磁盘信息
-x <文件系统类型> 不显示选定文件系统的磁盘信息

du和df区别
du 是通过搜索文件来计算每个文件的大小然后累加,du所计算的文件是当前存在为被删除的。而df 通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件,df计算的是通过文件系统获取到的文件的大小。严格意义上说df比du计算的更为精确,当文件系统也确定删除了该文件后,这时候du与df就一致了。

以上引JMW1407

free命令

free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等,使用格式为:free [-bkmhotV][-s <间隔秒数>]

命令参数

-b  以Byte为单位显示内存使用情况。
-k  以KB为单位显示内存使用情况。
-m  以MB为单位显示内存使用情况。
-h  以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:
	B = bytes
	K = kilos
	M = megas
	G = gigas
	T = teras
	
-o  不显示缓冲区调节列。
-s<间隔秒数>  持续观察内存使用状况。
-t  显示内存总和列。
-V  显示版本信息。

参数含义

在这里插入图片描述


Mem行(单位均为M):
    total   系统总的可用物理内存大小
    
    used    已被使用的物理内存大小
    
    free    还有多少物理内存可用
    
    shared  被共享使用的物理内存大小
    
    buff/cache  被 buffer 和 cache 使用的物理内存大小
    
    available   还可以被 应用程序 使用的物理内存大小
    
   (-/+ buffers/cache)行:
		(-buffers/cache): 真正使用的内存数,指的是第一部分的 used - buffers - cached
		(+buffers/cache): 可用的内存数,指的是第一部分的 free + buffers + cached

Swap行指交换分区		



该文为整合,有误请指正!
参考列表:
https://blog.csdn.net/daboluo521/article/details/79507194
https://blog.csdn.net/JMW1407/article/details/107902100

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

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

相关文章

魔兽世界服务器架设开服教程(巫妖王之怒外网详细教程)

魔兽世界服务器架设开服教程&#xff08;巫妖王之怒外网详细教程&#xff09;首先需要了解魔兽各个重要文件详细情况说明不管是任何一个魔兽世界GM想要将服务器修改成为自己想要的样子&#xff0c;首先要做的一件事情就是了解自己的服务器文件是说明意思&#xff0c;对于大多数…

2023年java面试之设计模式

1.什么是设计模式设计模式&#xff0c;是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。2.为什么要学习设计模式看懂源代码&#xff1a;如果你不懂设计模式去看Jd…

云原生周刊 | 使用 K8s 可视化工具集来调试业务 | 2023-1-30

开源项目推荐 k8z k8z 意在 K8s 业务层面&#xff0c;提供一个方便好用的 K8s 集群可视化工具集。目前包含以下功能&#xff1a; 终端&#xff1a;连接到集群任意 Pod 容器上&#xff0c;方便调试Tcpdump&#xff1a;对集群内容器进行 tcpdump 抓包&#xff0c;可直接展示抓…

七天实现一个go web框架

目录引流为什么要用web框架复习下net/http库以及http.Handler接口代码结构General.go启动&#xff01;上下文必要性封装前context.go拆分router封装后启动&#xff01;前缀树路由Trie 树目标实现前缀树修改router改变ServeHTTP实现分组控制Group对象的属性其余实现中间件实现其…

云计算|OpenStack|社区版OpenStack安装部署文档(三 --- 身份认证服务keystone安装部署---Rocky版)

一&#xff0c; 什么是keystone keystone是openstack的关键必选组件之一&#xff0c;其作用是提供身份认证服务&#xff0c;所有的身份认证信息都是存储在controller节点的数据库内。 具体的关于keystone的介绍可以参见官方文档&#xff1a;OpenStack Docs: Identity servic…

设备树中的pin 信息,是在什么时候被初始化的?

一、开发环境 SOC : IMX6ULL系统内核&#xff1a;4.1.15 二、问题描述 Linux 内核提供了pinctrl 和gpio 子系统用于GPIO 驱动。pinctrl_ctrl 子系统从设备树中获取pin 信息&#xff0c;然后配置pin复用 和pin电气特征&#xff08;上/下拉&#xff0c;速度&#xff0c;驱动能…

python小游戏——像素鸟代码开源

♥️作者&#xff1a;小刘在这里 ♥️每天分享云计算网络运维课堂笔记&#xff0c;努力不一定有收获&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️夕阳下&#xff0c;是最美的&#xff0c;绽放&#xff0c;愿所有的美好&#…

特斯拉Q4财报:底部反弹70%,为信仰打call

北京时间2023年1月26日美股盘后&#xff0c;探案君的信仰之股——特斯拉公布了2022年第四季度财报&#xff0c;无论营收还是利润依然吊打华尔街预期&#xff0c;这就是特斯拉&#xff0c;当然这也很特斯拉&#xff01; 一、整体业绩&#xff0c;很特斯拉 营收方面&#xff1a…

JavaScript基础复盘4

JavaScript作用域 JavaScript作用域就是代码名字&#xff08;变量&#xff09;在某个范围内起作用和效果 目的是为了提高程序的可靠性&#xff0c;减少命名冲突。 JS没有块级作用域&#xff0c;{}内写的变量外部也可以使用。 作用域链 作用域链&#xff1a;内部函数访问外部函数…

拯救OOM~ 字节自研 Android 虚拟机内存管理优化黑科技 mSponge

本文描述的虚拟机内存管理优化方案&#xff0c;是从应用侧视角对 Android 虚拟机内存管理进行改造&#xff0c;优化了虚拟机对 LargeObjectSpace 的内存管理策略&#xff0c;间接增加其它内存空间使用上限。改造后的方案&#xff0c;32 位运行环境 LargeObjectSpace 的内存使用…

Aspose.CAD for .NET 23.1.0 Crack

Aspose.CAD for .NET 是一个独立的类库&#xff0c;它增强了 Windows 和 ASP.NET 的应用程序&#xff0c;以便在不需要 AutoCAD 甚至任何其他工作流渲染过程的情况下处理和渲染 CAD 绘图。CAD 类库允许将 DWG、DWT、DWXF、IFC、PLT、DGN、OBJ、STL、IGES、CFF2 文件以及图层和布…

封装一个顺序栈,并封装其相应的操作:判空、入栈、出栈、遍历栈、销毁

main.cpp#include <iostream> #include<fei1.h>using namespace std;int main() {der L;//创建L.date(215);//入栈L.ent(45);L.ent(23);L.ent(98);L.ent(12);//遍历L.trav();// 出栈L.come();L.come();//遍历L.trav();//销毁L.dest();return 0; }fei.cpp#include&l…

docker学习(三):docker的常用命令问问

文章目录前言docker镜像分层加载原理docker镜像commit操作产生新镜像本地镜像发布到阿里云将本地镜像推送到私有库前言 大家好&#xff0c;这是我学习docker系列的笔记文章&#xff0c;目标是掌握docker,为后续学习K8s做准备。本文记录了docker镜像分层加载的原理&#xff0c;…

IDEA SpringBoot热部署

IDEA SpringBoot热部署【自动帮开发者重启 SpringBoot项目&#xff0c;以达到】 1.添加SpringBoot热部署框架支持 在pom.xml中添加如下框架引用&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devt…

Smart HTML Elements R1 2023

Smart HTML Elements R1 2023 增加了Angular 15支持。 添加了对Blazor的Microsoft.NET 7支持。 添加了三维图表组件。 添加了对网格保存/加载状态&#xff08;持久状态&#xff09;的支持。 调度程序 定义特定时段的可用性。 现在可以限制用户输入。 当有多个图例时&a…

长沙23岁应届生做软件测试1年,月入10k!室友悔不当初!

先简单的介绍一下自己&#xff0c;大家好&#xff01;我叫做程双喜&#xff0c;今天23&#xff0c;2021年大学毕业于长沙的一所大专学校&#xff0c;专业是软件测试java专业&#xff0c;三年时间过得很快&#xff0c;转眼间来到了毕业季&#xff0c;自己还是一无所成&#xff0…

Hadoop

1 Hadoop常用端口号 hadoop2.xHadoop3.x访问HDFS端口500709870访问MR执行情况端口80888088历史服务器1988819888客户端访问集群端口90008020 2 Hadoop配置文件 hadoop2.x core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml slaves hadoop3.x core-site.xml、hdfs…

ESP-IDF在VSCode中创建工程文件

1.新建工程项目&#xff0c;打开VSCode&#xff0c;打开命令面板&#xff0c;并输入esp-idf new&#xff0c;执行新建esp-idf项目命令&#xff1a; 2.设置项目名&#xff0c;项目工程目录位置&#xff0c;芯片类型&#xff0c;端口号 3.点击choose Template&#xff0c;从一个…

第八届蓝桥杯省赛 C++ A/B组 - 分巧克力

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 &#x1f4da;专栏地址&#xff1a;蓝桥杯题解集合 &#x1f4dd;原题地址&#xff1a;后缀表达式 &#x1f4e3;专栏定位&#xff1a;为想参加蓝桥杯的小伙伴整理常考算法题解&#xff0c;祝大…

全志A40i+Logos FPGA开发板(4核ARM Cortex-A7)硬件说明书(下)

前 言 本文档主要介绍板卡硬件接口资源以及设计注意事项等内容,测试板卡为创龙科技旗下的全志A40i+Logos FPGA开发板。 核心板的ARM端和FPGA端的IO电平标准一般为3.3V,上拉电源一般不超过3.3V,当外接信号电平与IO电平不匹配时,中间需增加电平转换芯片或信号隔离芯片。按键…