2023年8月2日发(作者:)
LinuxCPU监控指标Linux CPU监控指标 Linux提供了⾮常丰富的命令可以进⾏CPU相关数据进⾏监控,例如:top、vmstat等命令。top是⼀个动态显⽰过程,即可以通过⽤户按键来不断刷新当前状态。如果在前台执⾏该命令,它将独占前台,直到⽤户终⽌该程序为⽌,⽐较准确的说,top命令提供了实时的对系统处理器的状态监视,它将显⽰系统中 CPU 最“敏感”的任务列表。该命令可以按 CPU 使⽤,内存使⽤和执⾏时间对任务进⾏排序;⽽且该命令的很多特性都可以通过交互式命令或者在个⼈定制⽂件中进⾏设定。
top命令提供如下参数: top [-] [d delay] [p pid] [q] [c] [C] [S] [s] [i] [n iter] [b]选项名说明称
d delay指定每两次屏幕信息刷新之间的时间间隔(delay 即为具体的间隔时间数值,它的单位是秒),可以使⽤ s交互命令来改变之。
p pidqcCSsin iterb通过指定监控进程 ID(pid)来仅仅监控某个进程的状态。该选项将使 top 没有任何延迟的进⾏刷新。如果调⽤程序有超级⽤户权限,那么 top 将以尽可能⾼的优先级运⾏。
显⽰整个命令⾏⽽不只是显⽰命令名。
显⽰ CPU 总体信息⽽取代分别显⽰每个 CPU 的信息,此参数仅对SMP 系统有效。
指定累计模式。使 top 命令在安全模式中运⾏。这将去除交互命令所带来的潜在危险。使 top 不显⽰任何闲置或者僵死进程。
指定 top命令迭代输出的次数,iter为具体的迭代次数值。"Batch"⽅式运⾏top,在这种⽅式下,所有来⾃终端的输⼊都将被忽略(当然除了ctrl+c),该参数可以结合参数“n"运⾏指定迭代次数退出或者该进程被杀死。这是运⾏top输出到哑终端或输到⾮终端的默认运⾏⽅式
⽰例⼀
在控制台输⼊“top”,回车如下:top命令输出信息包含两部分内容:第⼀部分为统计信息,包含五⾏数据信息;第⼆部分为详细信息,显⽰了各个进程的详细信息。
有必要了解下统计信息部分的输出信息内容的含义:输出信息19:47:24up 15 min2 usersload average:0.02 , 0.14 , 0.21Tasks:122 total, 1 running,120 sleeping,0 stopped,1 zombie说明当前时间系统运⾏时间当前登录⽤户数,这⾥是jzhou和root系统负载,即任务队列的平均长度。三个数值分别为1分钟、5分钟、15分钟前到现在的平均值,即0.02,0.14,0.21122个进程(任务),其中有2个处于运⾏状态,120个处于睡眠状态,没有停⽌的进程,有1个僵⼫进程Cpus:0.7%us,0.7%sy,0.0%ni,97.6%id,0.0%wa,0.7%hi,0.3%si,0.0%stCpu运⾏状态,⽤户进程(user)占⽤CPU的0.7%,系统进程(system)占⽤CPU的0.7%,⽤户进程没有改变过优先级的进程,所以user nice值为0.0%,97.6%的CPU处于空闲状态(idle),没有等待的输⼊输出,所以iowait的值也为0.0%,硬件请求终端时间(hardware interrupt)占CPU的0.7%,软终端请求时间占CPU的0.3%,st代表steal time,具体作⽤不是很清楚,⽹上说是为其它CPU预留的,不清楚Mem:1035244k total,537528k used,497716k free,25816k buffers内存总量为1035244k,已使⽤的内存总量为537528k,497716k为空闲内存总量,25816k⽤作内核缓存的内存总量。(这是虚拟机的情况,物理机好像还有其它参数)交换分区总量为0k,使⽤的交换分区总量为0k,空闲交换分区总量为0k,351392k为缓冲的交换区总量(cached)、内存中的内容被患处到交换区,⽽后⼜被换⼊到内存,但使⽤过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的⼤⼩。相应的内存再次被换出时可不必再对交换区写⼊。Swap:0k total,0k used,0k free,351392k cached然后看看详细信息部分输出的信息的内容:输出信息PIDUSERPR/PRINIVIRT说明进程标识符进程所有者⽤户名进程执⾏的优先级NICE值,负值表⽰⾼优先级,正值表⽰低优先级进程使⽤的虚拟内存总量,单位kb。VIRT=SWAP+RESVIRTRESSHRS/STAT进程使⽤的虚拟内存总量,单位kb。VIRT=SWAP+RES进程使⽤的、未被换出的物理内存⼤⼩,单位kb。RES=CODE+DATA共享内存⼤⼩,单位kb进程状态D:不可中断的睡眠状态R:正在运⾏,或在队列中的进程S:处于休眠状态T:停⽌或被追踪Z:僵⼫进程W:进⼊内存交换X:死掉的进程上次更新到现在的CPU时间占⽤百分⽐进程使⽤的物理内存百分⽐进程使⽤的CPU时间总计,单位1/100s进程被执⾏的命令名称%CPU%MENTIME+COMMAND
⽰例⼆
vmstat 命令,可以使您能够在同⼀⾏看到系统的内存、CPU 等使⽤情况,通常您可以⽤该命令来查看CPU 的利⽤率和饱和度。
先连接两个概念:CPU利⽤率:CPU利⽤率可以使⽤ vmstat通过从 100减去 id 或者 us与 sy之和来计算CPU 利⽤率CPU饱和度:CPU 饱和度可以通过 vmstat 命令的“procs:r”来作为衡量标准,由于它是所有 cpu 运⾏队列的合计值,因此将 procs:r 除以CPU 数⽬所得到的值可与其他服务器相⽐较。任何持续不变的⾮零值都会引起性能的下降,但性能的下降是逐渐的。
vmstat命令参数如下:vmstat [-n] [delay [count]]
也有必要了解下vmstat命令参数的含义:参数名称ndelaycount说明通过这个开关参数,如果启⽤它则仅显⽰⼀次表头信息指定每两次屏幕信息刷新之间的时间间隔,单位:s在结合delay参数使⽤时,如果给指定数值,则运⾏指定的次数后退出,否则将⽆限次运⾏在控制台输⼊“vmstat –n 1”,回车执⾏后,该命令即为仅显⽰⼀次标头信息,每隔 1 秒钟显⽰⼀次 vmstat监控信息然后了解下输出信息内容各部分代表的含义:
⽰例三
还可以通过“uptime”命令来获得 CPU 平均负载的情况。平均负载的计算通常描述为可运⾏和运⾏线程的平均数⽬。举例来说,如果⼀枚单CPU 服务器上有1 个运⾏线程占⽤了 CPU,有3 个运⾏进程在调度程序队列中,那么平均负载即为 1+3=4。对于⼀枚 16CPU 的服务器,负载是16 个运⾏线程,有 24 个运⾏进程在调度程序队列中,那么平均负载是 40。如果平均负载始终⾼于CPU 的数⽬,则可能导致应⽤程序性能的下降。需要说明的是平均负载只适⽤于CPU 负载的初始估算,深⼊的分析我们还需要借助于其他⼯具来做。再对 CPU平均负载有⼀个初步了解以后,让我们来看看该命令是如何使⽤的,它的输出内容⼜包含那些内容。因为“uptime”命令仅提供了⼀个可选参数项“V”,即:显⽰该命令的版本信息,所以不⽤叙述了。
在控制台输⼊“uptime”,回车执⾏后,运⾏结果:可以看到“load average:0.53,0.65,0.34”即为 CPU 平均负载对应系统在第 1分钟,5 分钟和 15 分钟的平均负载值。同时它们也代表CPU 利⽤率和饱和度。如果 CPU 数⽬和平均负载的值相等,通常代表 100%的 CPU利⽤率,⼩于 CPU数⽬,则表⽰利⽤率⼩于 100%,⼤于 CPU数⽬需要⽤饱和度来衡量。
发布者:admin,转转请注明出处:http://www.yc00.com/web/1690958549a473017.html
评论列表(0条)