如何使用Linux检查CPU空闲时间 (linux cpu idle)

在计算机操作系统中,时间是非常重要的资源。在操作系统中能看到的一项重要统计数据就是CPU时间。CPU时间可以被分为两种:用户CPU时间和系统CPU时间。用来帮助了解计算机如何处理指令和如何使用资源。CPU时间被用作系统级别的性能测量。

CPU本身并没有固定的工作时间,但是在任何给定的时间,它都会有一些时间被放在于等待和空闲中。如果我们能够监视CPU的空闲时间,那么就可以确定计算机是否需要添加更多或减少资源。在本文中,我们将介绍如何通过Linux命令行检查CPU的空闲时间。

Linux系统中的top命令

Linux系统中提供了一个名为top的命令,它可以实时地查看系统的运行情况,包括CPU时间。通过top命令,可以轻松地看到每个进程的CPU使用情况,以及系统中CPU空闲的时间。

以下是如何使用top命令检查CPU空闲时间的步骤:

1. 打开终端窗口并输入以下命令:

“`

top

“`

2. 在top命令的输出中,查找以下行:

“`

%Cpu(s): x.x us, y.y sy, z.z ni, j.j id, k.k wa, l.l hi, m.m si, n.n st

“`

该行中以“id”为标记的数字就是CPU的空闲时间。

3. 可以使用top命令的-i选项来将进程id列添加到输出列表中,以便更容易地检查每个进程的CPU使用情况。

“`

top -i

“`

以上步骤中,top命令的输出可以根据需要定制,以显示所需的信息。

使用mpstat命令检查CPU空闲时间

除了使用top命令,还可以使用mpstat命令来获取系统中CPU空闲时间的信息。mpstat命令用于监视Linux多处理器系统的处理器活动。它可以显示系统上每个处理器的CPU时间。

以下是如何使用mpstat命令检查CPU空闲时间的步骤:

1. 打开终端窗口并输入以下命令:

“`

mpstat

“`

2. mpstat的输出将包含每个处理器的统计信息。找到如下行:

“`

%idle

“`

该行中的数字就是CPU空闲时间的百分比。

3. 如果系统中有多个处理器,可以使用以下命令来显示每个处理器的信息:

“`

mpstat -P ALL

“`

以上命令将显示每个处理器的CPU利用率、执行的进程数以及空闲时间。

在Linux系统中,利用命令行可以轻松地检查CPU的空闲时间。通过top命令和mpstat命令,可以获取系统中CPU空闲时间的信息。这些命令提供了有价值的性能监视工具,可帮助系统管理员识别资源限制问题并优化系统性能。以便更好地使用计算机资源。

相关问题拓展阅读:

如何1分钟内对 Linux 性能快速分析(113资讯网)

当你在IDC主机商购买一台系统为 Linux 服务器之后,我想大家之一时间就是对主机进行一个性能分析,这里我跟大家分享几个命令,能让大家在一分钟以内对自己的性能有一个大致的鸟解?

uptime

dmesg | tail

vmstat 1

mpstat -P ALL 1

pidstat 1

iostat -xz 1

free -m

sar -n DEV 1

sar -n TCP,ETCP 1

top

这10个命令到底是什么意思,我为大家一一解释一下:

1.uptime

# uptime

03:16:26 up 21:31, 1 user, load average: 10.02, 06.43, 09.02

在上面的例子中,平均负载显示是在不断增加的,1 分钟的值是 10,相比 15 分钟的坦兄知值 09 来说是增加了。这个数字让消这么大就意味着有事情发生了.

2. dmesg | tail

# dmesg | tail

ISO 9660 Extensions: RRIP_1991A

ISO 9660 Extensions: Microsoft Joliet Level 3

ISO 9660 Extensions: RRIP_1991A

EXT4-fs (vda1): resizing filesystem fromtoblocks

random: crng init done

random: 7 urandom warning(s) missed due to ratelimiting

EXT4-fs (vda1): resized filesystem to

new mount options do not match the existing superblock, will be ignored

ISO 9660 Extensions: Microsoft Joliet Level 3

ISO 9660 Extensions: RRIP_1991A

这里展示的是最近 10 条系统消息日志,如果系统消息没有就不会展示。主要是看由于性能问题导致的错误。

3. vmstat 1

# vmstat 1

procemoryswapio—- -systemcpu—–

r  b  swpd  free  buff  cache  si  so    bi    bo  in  cs us sy id wa st

尘凯  0

^C

r: CPU 上的等待运行的可运行进程数。这个指标提供了判断 CPU 饱和度的数据,因为它不包含 I/O 等待的进程。可解释为:“r” 的值比 CPU 数大的时候就是饱和的。

free:空闲内存,单位是 k。如果这个数比较大,就说明你还有充足的空闲内存。“free -m” 和下面第 7 个命令,可以更详细的分析空闲内存的状态。

si,so:交换进来和交换出去的数据量,如果这两个值为非 0 值,那么就说明没有内存了。

us,sy,id,wa,st:这些是 CPU 时间的分解,是所有 CPU 的平均值。它们是用户时间,系统时间(内核),空闲,等待 I/O 时间,和被偷的时间(这里主要指其它的客户,或者使用 Xen,这些客户有自己独立的操作域)。

4. mpstat -P ALL 1

# mpstat -P ALL 1

Linux 4.15.0-88-generic (VM-0-17-ubuntu) 06/15/2023 _x86_64_ (1 CPU)

03:33:26 AM  CPU    %usr  %nice    %sys %iowait    %irq  %soft  %steal  %guest  %gnice  %idle

03:33:27 AM  all    0……….00

03:33:27 AM……….00

这个命令打印各个 CPU 的时间统计,可以看出整体 CPU 的使用是不是均衡的。由于我使用的是1H2G主机看不出区别!

5. pidstat 1

# pidstat 1

Linux 4.15.0-88-generic (VM-0-17-ubuntu) 06/15/2023 _x86_64_ (1 CPU)

03:34:47 AM  UIDPID    %usr %system  %guest  %wait    %CPU  CPU  Command

03:34:48 AM…..sshd

pidstat 命令为每个 CPU 统计信息功能。由于我使用的是1H2G主机看不出区别!

6. iostat -xz 1

# iostat -xz 1

Linux 4.15.0-88-generic (VM-0-17-ubuntu) 06/15/2023 _x86_64_ (1 CPU)

avg-cpu:  %user  %nice %system %iowait  %steal  %idle

……52

Devicer/s    w/s    rkB/s    wkB/s  rrqm/s  wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util

loop……00  0.00  0…00  0…00  0.00  0.00

scd0……00  0.00  0…00  0…00  0.19  0.00

vda0……99  0.00  32…31  0…96  0.24  0.11

avg-cpu:  %user  %nice %system %iowait  %steal  %idle

……00

Devicer/s    w/s    rkB/s    wkB/s  rrqm/s  wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util

r/s, w/s, rkB/s, wkB/s:这些表示设备上每秒钟的读写次数和读写的字节数(单位是k字节)。这些可以看出设备的负载情况。性能问题可能就是简单的因为大量的文件加载请求。

await:I/O 等待的平均时间(单位是毫秒)。这是应用程序所等待的时间,包含了等待队列中的时间和被调度服务的时间。过大的平均等待时间就预示着设备超负荷了或者说设备有问题了。

avgqu-sz:设备上请求的平均数。数值大于 1 可能表示设备饱和了(虽然设备通常都是可以支持并行请求的,特别是在背后挂了多个磁盘的虚拟设备)。

%util:设备利用率。是使用率的百分数,展示每秒钟设备工作的时间。这个数值大于 60% 则会导致性能很低(可以在 await 中看),当然这也取决于设备特点。这个数值接近 100% 则表示设备饱和了。

7. free -m/h

ubuntu@VM-0-17-ubuntu:~# free -m

totalusedfree      shared  buff/cache  available

Mem: 1506

Swap:

ubuntu@VM-0-17-ubuntu:~$ free -h

totalusedfree      shared  buff/cache  available

Mem:.8GMM.8M.3G.5G

Swap:BBB

这个命令我相信大家都熟悉,buffers:用于块设备 I/O 缓冲的缓存,cached:用于文件系统的页缓存。

8. sar -n DEV 1

ubuntu@VM-0-17-ubuntu:~# sar -n DEV 1

Linux 4.15.0-88-generic (VM-0-17-ubuntu) 06/15/2023 _x86_64_ (1 CPU)

03:43:35 AM    IFACE  rxpck/s  txpck/s    rxkB/s    txkB/s  rxcmp/s  txcmp/s  rxmcst/s  %ifutil

03:43:36 AM      eth……..00

03:43:36 AMlo……..00

使用这个工具是可以检测网络接口的吞吐:rxkB/s 和 txkB/s,作为收发数据负载的度量,也是检测是否达到收发极限。在上面这个例子中,eth0 接收数据达到 0.79 kb 字节/秒,发送数据达到1.06 字节/秒。

9. sar -n TCP,ETCP 1

ubuntu@VM-0-17-ubuntu:~# sar -n TCP,ETCP 1

Linux 4.15.0-88-generic (VM-0-17-ubuntu) 06/15/2023 _x86_64_ (1 CPU)

03:49:56 AM  active/s passive/s    iseg/s    oseg/s

03:49:57 AM….03

03:49:56 AM  atmptf/s  estres/s retrans/s isegerr/s  orsts/s

03:49:57 AM…..00

这是对 TCP 关键指标的统计,它包含了以下内容:

active/s:每秒本地发起的 TCP 连接数(例如通过 connect() 发起的连接)。

passive/s:每秒远程发起的连接数(例如通过 accept() 接受的连接)。

retrans/s:每秒TCP重传数。

10. top

ubuntu@VM-0-17-ubuntu:~# top

top – 03:53:20 up 1 day,  1:41,  1 user,  load average: 0.01, 0.04, 0.00

Tasks:  89 total,  1 running,  52 sleeping,  0 stopped,  0 zombie

%Cpu(s):  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

KiB Mem :total,free,used,buff/cache

KiB Swap:total,free,used.avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM    TIME+ COMMAND 

rootS  0.3  0.4  0:00.01 sshd     

rootS  0.3  0.8  2:48.99 YDService

rootS  0.0  0.5  0:06.45 systemd 

rootS  0.0  0.0  0:00.00 kthreadd 

rootI  0.0  0.0  0:00.00 kworker/0:0H

rootI  0.0  0.0  0:00.00 mm_percpu_wq

rootS  0.0  0.0  0:04.29 ksoftirqd/

rootI  0.0  0.0  0:08.85 rcu_sched

rootI  0.0  0.0  0:00.00 rcu_bh   

root      rtS  0.0  0.0  0:00.00 migration/

root      rtS  0.0  0.0  0:00.16 watchdog/

rootS  0.0  0.0  0:00.00 cpuhp/  

rootS  0.0  0.0  0:00.00 kdevtmpfs

top 命令包含了很多我们前面提到的指标。这个命令可以很容易看出指标的变化表示负载的变化,这个看起来和前面的命令有很大不同。

top 的一个缺陷也比较明显,很难看出变化趋势,其它像 vmstat 和 pidstat 这样的工具就会很清晰,它们是以滚动的方式输出统计信息。所以如果你在看到有问题的信息时没有及时的暂停下来(Ctrl-S 是暂停, Ctrl-Q 是继续),那么这些有用的信息就会被清屏。

文章原文:

linux cpu idle的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux cpu idle,如何使用Linux检查CPU空闲时间,如何1分钟内对 Linux 性能快速分析(113资讯网)的信息别忘了在本站进行查找喔。


数据运维技术 » 如何使用Linux检查CPU空闲时间 (linux cpu idle)