返回首页

如何监控linux系统性能,io,内存,cpu?

217 2024-01-06 06:03 admin   手机版

一、如何监控linux系统性能,io,内存,cpu?

1概述:

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。

top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.

【文章福利】小编推荐自己的Linux内核源码交流群:【869634926】整理了一些个人觉得比较好的学习书籍、视频资料共享在群文件里面,有需要的可以自行添加哦!!!前50名可进群领取,并额外赠送一份价值600的内核资料包(含视频教程、电子书、实战项目及代码)!
点击下方链接即可免费领取内核相关学习资料哦

学习直通车:Linux内核源码/内存调优/文件系统/进程管理/设备驱动/网络协议栈

2命令格式:

top [参数]

3命令功能:

显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等

4命令参数:

-b 批处理

-c 显示完整的治命令

-I 忽略失效过程

-s 保密模式

-S 累积模式

-i<时间> 设置间隔时间

-u<用户名> 指定用户名

-p<进程号> 指定进程

-n<次数> 循环显示的次数

5使用实例:

01 实例1:显示进程信息:

命令:

top

输出:

说明:

1. 系统运行时间和平均负载:

top命令的顶部显示与uptime命令相似的输出

这些字段显示:

当前时间

系统已运行的时间

当前登录用户的数量

相应最近5、10和15分钟内的平均负载。

可以使用'l'命令切换uptime的显示。

22:46:38 — 当前系统时间

0 days, 3:59 — 系统已经运行了3小时59分钟(在这期间没有重启过)

3 users — 当前有2个用户登录系统

load average:0.01, 0.02, 0.00 — load average后面的三个数分别是5分钟、10分钟、15分钟的负载情况。

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

2.任务:

Tasks — 任务(进程),系统现在共有146个进程,其中处于运行中的有1个,145个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

第二行显示的是任务或者进程的总结。进程可以处于不同的状态。这里显示了全部进程的数量。除此之外,还有正在运行、睡眠、停止、僵尸进程的数量(僵尸是一种进程的状态)。这些进程概括信息可以用't'切换显示

3.CPU 状态:

这里显示不同模式下所占cpu时间百分比,这些不同的cpu时间表示:

us, user:运行(未调整优先级的) 用户进程的CPU时间

sy,system: 运行内核进程的CPU时间

ni,niced:运行已调整优先级的用户进程的CPU时间

wa,IO wait: 用于等待IO完成的CPU时间

hi:处理硬件中断的CPU时间

si: 处理软件中断的CPU时间

st:这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)。

可以使用't'命令切换显示。

0.3% us — 用户空间占用CPU的百分比。

0.7% sy — 内核空间占用CPU的百分比。

0.0% ni — 改变过优先级的进程占用CPU的百分比

99.0% id — 空闲CPU百分比

0.0% wa — IO等待占用CPU的百分比

0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比

0.0% si — 软中断(Software Interrupts)占用CPU的百分比

在这里CPU的使用比率和windows概念不同,如果你不理解用户空间和内核空间,需要充充电了。

4. 内存使用:

接下来两行显示内存使用率,有点像'free'命令。第一行是物理内存使用,第二行是虚拟内存使用(交换空间)。

物理内存显示如下:全部可用内存、已使用内存、空闲内存、缓冲内存。相似地:交换部分显示的是:全部、已使用、空闲和缓冲交换空间。

内存显示可以用'm'命令切换。

1004348k total — 物理内存总量(1004M)

938408k used — 使用中的内存总量(938M)

65940k free — 空闲内存总量(65M)

44344k buffers — 缓存的内存量 (44M)

swap交换分区

2031612k total — 交换区总量(2031M)

4k used — 使用的交换区总量(4k)

2031608k free — 空闲交换区总量(2031M)

538676k cached — 缓冲的交换区总量(538M)

5. 各进程(任务)的状态监控:

PID:进程ID,进程的唯一标识符

USER:进程所有者的实际用户名。

PR:进程的调度优先级。这个字段的一些值是'rt'。这意味这这些进程运行在实时态。

NI:进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级

VIRT:进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES:驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR:SHR是进程使用的共享内存。共享内存大小,单位kb

S:这个是进程的状态。它有以下不同的值:

D - 不可中断的睡眠态。

R – 运行态

S – 睡眠态

T – 被跟踪或已停止

Z – 僵尸态

%CPU:自从上一次更新时到现在任务所使用的CPU时间百分比。

%MEM:进程使用的可用物理内存百分比。

TIME+:任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。

COMMAND:运行进程所使用的命令。进程名称(命令名/命令行)

还有许多在默认情况下不会显示的输出,它们可以显示进程的页错误、有效组和组ID和其他更多的信息。

6.其他使用技巧:

6.1.多U多核CPU监控

在top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况:

6.2.高亮显示当前运行进程

敲击键盘“b”(打开/关闭加亮效果),top的视图变化如下:

我们发现进程id为7600的“top”进程被加亮了,top进程就是视图第二行显示的唯一的运行态(runing)的那个进程,可以通过敲击“y”键关闭或打开运行态进程的加亮效果。

6.3.进程字段排序

默认进入top时,各进程是按照CPU的占用量来排序的,在下图中进程ID为7517的java进程排在第一(cpu占用0.7%),进程ID为3073的java进程排在第二(cpu占用0.3%)。

敲击键盘“x”(打开/关闭排序列的加亮效果),top的视图变化如下:

可以看到,top默认的排序列是“%CPU”

6.4. 通过”shift + >”或”shift + <”可以向右或左改变排序列

下图是按一次”shift + >”的效果图,视图现在已经按照%MEM来排序。

02 实例2显示完整命令:

命令:

top -c

输出:

03 实例3显示指定进程信息:

命令:

top -p 7517

输出:

6 top交互命令:

在top 命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了s 选项, 其中一些命令可能会被屏蔽。

h 显示帮助画面,给出一些简短的命令总结说明

k 终止一个进程。

i 忽略闲置和僵死进程。这是一个开关式命令。

q 退出程序

r 重新安排一个进程的优先级别

S 切换到累计模式

s 改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s

f或者F 从当前显示中添加或者删除项目

o或者O 改变显示项目的顺序

l 切换显示平均负载和启动时间信息

m 切换显示内存信息

t 切换显示进程和CPU状态信息

c 切换显示命令名称和完整命令行

M 根据驻留内存大小进行排序

P 根据CPU使用百分比大小进行排序

T 根据时间/累计时间进行排序

W 将当前设置写入~/.toprc文件中

原文参考:https://mp.weixin.qq.com/s/QZG20GtRr03EiWaGuY-qwQ
猜你喜欢:Linux 环境下网络分析和抓包是怎么操作的?从头开始写项目Makefile:参数传递、条件判断、include三万字深度剖析Linux 高级路由与流量控制手册(建议收藏)什么是防火墙?真的是不怕火的墙吗?伙伴系统(初始化内存域和结点数据结构,free_area_init_nodes详解)

二、监控内存怎么选?

看需要存储的录像时间要求,如果时间长,可以大一些,一个t的都行,短的话,小一些,几个g就行。

三、监控内存多大合适?

1、监控主机是智能设备,智能设备肯定都是带内存的。

2、但监控主机主要是写磁盘的操作,而且要实时写入,通过内存做缓存反而对安全性不好,所以,不宜用大内存。因此,监控主机的内存都比较小,能运行系统即可,不需要多余内存。一般128G或256M就足够。

四、51单片机内存不够?

51单片机的程序内存ROM是512字节到64k字节不等,数据缓存RAM是256字节,有的51单片机(例如STC)还集成了内部扩展RAM,小则1K字节,多则高达16K字节。在使用数据缓存器RAM时要注意,并不是所有的256字节都可以作为数据缓存,如果运行大形程序或比较复杂的数据结构51单片机内存显然是不够的。

五、单片机内存多大合适?

单片机的总类太多了。

以51为例。早期的ATMEL内存(RAM)为256BYTES。片外可以扩展到64K

现在不同厂家的单片机RAM差别很多。仅片内集成的RAM容量从256BYTES-4096BYTES,甚至更大。

STC15F4K系列的片内RAM可以到4096BYTES。

RAM的大小受数据总线宽度影响,现在32位总线处理器,RAM已经有到几百KBYTES的,甚至更大。

STM32F20X/40X 最大RAM达到200K

六、单片机内存问题请教?

解决方案:

一、在原有的单片机上改动。

1、优化程序,有效果,但效果其实不大。

2、自己扩展片外的RAM,一来是费硬件的钱,二来是电路要不停的飞线。

二、换一大内存的单片机。比如STC32F103C8T6,三个串口,16K的RAM。

三、减少串口对数据的接收量,比如只检查$GPRMC信息,提取到坐标后就把其他信息丢弃了。

七、无线监控内存多大好?

1、监控主机是智能设备,智能设备肯定都是带内存的。

2、但监控主机主要是写磁盘的操作,而且要实时写入,通过内存做缓存反而对安全性不好,所以,不宜用大内存。因此,监控主机的内存都比较小,能运行系统即可,不需要多余内存。一般128G或256M就足够。

八、监控内存卡寿命?

监控内存卡的寿命一般为两年的时间,两年之后就会需要更换,这是跟他的使用频率有直接关系。监控的内存卡是监控上最重要的文件存储装置,只有它的正常运行才能确保监控拍摄的视频可以保存下来。由于连续使用它一般为两年时间就需要更换新的。

九、监控内存计算公式?

计算公式:存储空间=比特率÷8(换算成字节数据量)x3600(每小时存储容量大小)x24(每天存储容量大小)x30(存储天数)x50(前端摄像机路数)÷0.9(磁盘格式化损失10%的空间)

十、监控占多大内存?

需要1T的硬盘,数字的用4T

模拟的一个摄像头全天录像需要空间为约5G,4个一天就是20G,如果需要一个月就是600G,那么用户只需要买1T硬盘即可。

如果用户用的是网络数字就不同了,这个网络数字分2M的码流和4M高清码流,存储空间也不同,2M码流一个头的话一路一天就是21G,相当于模拟的4倍,网络的需要3T,如果4个头不同码流的话准备4T硬盘就够了。

顶一下
(0)
0%
踩一下
(0)
0%
用户反馈
问题反馈
用户名: 验证码:点击我更换图片