首页 > 编程知识 正文

查看cpu使用率命令,top命令的cpu占用率怎么算的

时间:2023-05-06 05:54:56 阅读:135746 作者:4889

##Top、vmstat命令对CPU使用率进行故障诊断,如果负载问题LINUX服务器的CPU使用率仍然很高,则会影响系统的稳定性和业务运营。

CPU使用率/负载显示命令:

第一种方法:是使用vmstat命令确定系统级cpu使用率。

第二种方法:使用TOP命令调查过程级cpu使用情况。

使用vmstat命令从系统维度查看CPU资源的使用情况。 命令格式如下所示,表示结果每秒更新一次。

vmstat -n 1

! [输出结果] 3359 img-blog.csdn img.cn/20210125114703193.png? x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text _ a hr0 CHM6ly9ibg9nlmnzzg4u bmv0L3 dlagd

r表示系统中等待CPU处理的线程。 由于CPU一次只能处理一个线程,因此该值越大,通常表示系统运行越慢。

us :用户模式下消耗的CPU时间百分比。 如果此值较高,则表示用户进程占用了大量的CPU时间。 如果该值长期超过50%,则需要优化程序算法和代码等。

sy )内核模式下消耗的CPU时间百分比。

wa:IO等待消耗的CPU时间百分比。 如果该值较高,I/o等待可能会很严重,磁盘可能被大量随机访问,或者磁盘性能可能存在瓶颈。

id :空闲CPU时间的百分比。 如果此值保持为0,且sy是us的两倍,则系统通常面临CPU资源不足的问题。

2 .通过top命令、进程纬度查看CPU、内存等资源的使用情况。

命令的格式如下所示。

top -d 1

注:默认界面的第三行显示当前CPU资源的总体使用情况,下面显示每个进程的资源使用情况。 在界面中输入大写p时,将按CPU使用率从高到低的顺序显示监视结果,以识别系统中CPU使用率较高的进程。 根据系统日志和程序本身的相关日志,对相应进程进行进一步故障排除分析,以确定处理器消耗过多的原因。

例1

使用top命令终止占用大量CPU的进程

使用top命令检查系统负载问题,确定占用大量CPU资源的进程,并在执行界面中快速终止相应的异常进程。

要结束进程,请首先输入小写的k。 输入要结束的进程的PID。 默认值是输出结果的第一个PID。 如下图所示,如果想结束PID为3488的进程,输入3488回车。

如果操作成功,将显示类似Send pid 3488 signal [15/sigterm]的消息,用户可以看到该消息。 你回车里确认一下就行了。

示例2:CPU使用率低,但负载高

问题的说明

目前Linux系统上没有运行业务程序。 用top命令观察的话,CPU是空闲的,但是load average如下图所示非常高

处理方法

load average会评估CPU负载,值越高表示任务队列越长,等待执行的任务越多。 发生这种情况时,可能是由于僵持的发展。 可以使用ps -axjf命令检查是否存在指向不可中断的休眠状态的d状态进程。 处于此状态的进程无法终止,也无法自行终止。 只能通过恢复依赖的资源或重新启动系统来解决。

示例kswapd0进程的CPU使用率高

操作系统使用分页机制管理物理内存。 操作系统将磁盘的一部分描绘为虚拟内存。 由于内存速度比磁盘快得多,因此操作系统会根据某种页面交换机制将不需要的页面交换到磁盘,然后将需要的页面移动到内存中。 由于内存持续不足,此分页行为正在继续进行。 3358www.Sina.com/是虚拟内存管理中负责页面切换的进程,当服务器内存不足时,kswapd0将执行页面切换操作。 此页面切换操作会充分消耗主机的CPU资源。 如果top命令发现进程不是处于休眠状态,而是运行时间较长,则可以首先确定系统正在继续进行分页操作,然后找出内存不足的原因。

问题的说明

kswapd0进程占用了大量的系统CPU资源。

处理方法

如果通过top命令等监视发现kswapd0进程没有进入休眠状态,而是运行时间较长且持续占用CPU资源,则通常是因为系统持续执行分页操作。 free、ps等命令可以进一步调查系统和系统内进程的内存消耗情况,进行进一步的故障排除分析。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。