精华内容
下载资源
问答
  • linux查看cpu使用率命令
    千次阅读
    2021-05-12 01:43:25

    1 CPU占用率计算原理

    1.1 相关概念

    在Linux/Unix下,CPU利用率分为用户态、系统态和空闲态, 分别表示CPU处于用户态执行的时间,系统内核执行的时间,和空闲系统进程执行的时间。    下面是几个与CPU占用率相关的概念。

     CPU利用率       CPU的使用情况。

     用户时间(User time)

    表示CPU执行用户进程的时间,包括nices时间。通常期望用户空间CPU越高越好。

     系统时间(System time)

    表示CPU在内核运行时间,包括IRQ和softirq时间。系统CPU占用率高,表明系统某部分存在瓶颈。通常值越低越好。

     等待时间(Waiting time)

    CPI在等待I/O操作完成所花费的时间。系统部应该花费大量时间来等待I/O操作,否则就说明I/O存在瓶颈。

     空闲时间(Idle time)

    系统处于空闲期,等待进程运行。

     Nice时间(Nice time)

    系统调整进程优先级所花费的时间。

     硬中断处理时间(Hard Irq time)       系统处理硬中断所花费的时间。

     软中断处理时间(SoftIrq time)       系统处理软中断中断所花费的时间。

     丢失时间(Steal  time)

    被强制等待(involuntary wait)虚拟CPU的时间,此时hypervisor在为另一个虚拟处理器服务。

    下面是我们在top命令看到的CPU占用率信息及各项值含义。

    Cpu(s):  0.2%us,  0.2%sy,  0.0%ni, 99.2%id,  0.5%wa,  0.0%hi,  0.0%si,  0.0%st

    us: User time

    sy: System time

    ni: Nice time

    id: Idle time

    wa: Waiting time

    hi: Hard Irq time

    si: SoftIrq time

    st: Steal time

    1.2 CPU占用率计算

    Linux CPU占用率计算,都是根据/proc/stat文件内容计算而来,下面是stat文件内容样例,内核版本不同,会稍有不同,但内容基本一致。

    1.top

    使用权限:所有使用者

    使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]

    说明:即时显示process的动态

    d :改变显示的更新速度,或是在交谈式指令列( interactive command)按s

    q :没有任何延迟的显示速度,如果使用者是有superuser的权限,则top将会以最高的优先序执行

    c :切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S :累积模式,会将己完成或消失的子行程( dead child process )的CPU time累积起来

    s :安全模式,将交谈式指令取消,避免潜在的危机

    i :不显示任何闲置(idle)或无用(zombie)的行程

    n :更新的次数,完成后将会退出top

    b :批次档模式,搭配"n"参数一起使用,可以用来将top的结果输出到档案内

    范例:

    显示更新十次后退出;

    top -n 10

    使用者将不能利用交谈式指令来对行程下命令:

    top -s

    将更新显示二次的结果输入到名称为top.log的档案里:

    top -n 2 -b < top.log

    另附一个命令简介linux traceroutewindows tracert两个命令相当,跟踪网络路由

    2.vmstat

    正如我们之前讨论的任何系统的性能比较都是基于基线的,并且监控CPU的性能就是以上3点,运行队列、CPU使用率和上下文切换。以下是一些对于CPU很普遍的性能要求:

    1.对于每一个CPU来说运行队列不要超过3,例如,如果是双核CPU就不要超过6;

    2.如果CPU在满负荷运行,应该符合下列分布,

    a) User Time:65%~70%

    b) System Time:30%~35%

    c) Idle:0%~5%

    3. mpstat

    对于上下文切换要结合CPU使用率来看,如果CPU使用满足上述分布,大量的上下文切换也是可以接受的。

    常用的监视工具有:vmstat, top,dstat和mpstat.

    # vmstat 1

    procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----

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

    0 0 104300 16800 95328 72200 0 0 5 26 7 14 4 1 95 0

    0 0 104300 16800 95328 72200 0 0 0 24 1021 64 1 1 98 0

    0 0 104300 16800 95328 72200 0 0 0 0 1009 59 1 1 98 0

    r表示运行队列的大小,

    b表示由于IO等待而block的线程数量,

    in表示中断的数量,

    cs表示上下文切换的数量,

    us表示用户CPU时间,

    sys表示系统CPU时间,

    wa表示由于IO等待而是CPU处于idle状态的时间,

    id表示CPU处于idle状态的总时间。

    dstat可以给出每一个设备产生的中断数:

    # dstat -cip 1

    ----total-cpu-usage---- ----interrupts--- ---procs---

    usr sys idl wai hiq siq| 15 169 185 |run blk new

    6 1 91 2 0 0| 12 0 13  | 0 0 0

    1 0 99 0 0 0| 0    0  6 | 0 0 0

    0 0 100 0 0 0| 18 0  2 | 0 0 0

    0 0 100 0 0 0| 0    0  3 | 0 0 0

    我们可以看到这里有3个设备号15,169和185.设备名和设备号的关系我们可以参考文件/proc/interrupts,这里185代表网卡eth1.

    # cat /proc/interrupts

    CPU0

    0: 1277238713 IO-APIC-edge timer

    6: 5 IO-APIC-edge floppy

    7: 0 IO-APIC-edge parport0

    8: 1 IO-APIC-edge rtc

    9: 1 IO-APIC-level acpi

    14: 6011913 IO-APIC-edge ide0

    15: 15761438 IO-APIC-edge ide1

    169: 26 IO-APIC-level Intel 82801BA-ICH2

    185: 16785489 IO-APIC-level eth1

    193: 0 IO-APIC-level uhci_hcd:usb1

    mpstat可以显示每个CPU的运行状况,比如系统有4个CPU。我们可以看到:

    # mpstat –P ALL 1

    Linux 2.4.21-20.ELsmp (localhost.localdomain) 05/23/2006

    05:17:31 PM CPU %user %nice %system %idle intr/s

    05:17:32 PM all 0.00 0.00 3.19 96.53 13.27

    05:17:32 PM 0 0.00 0.00 0.00 100.00 0.00

    05:17:32 PM 1 1.12 0.00 12.73 86.15 13.27

    05:17:32 PM 2 0.00 0.00 0.00 100.00 0.00

    05:17:32 PM 3 0.00 0.00 0.00 100.00 0.00

    总结的说,CPU性能监控包含以下方面:

    检查系统的运行队列,确保每一个CPU的运行队列不大于3.

    确保CPU使用分布满足70/30原则(用户70%,系统30%)。

    如果系统时间过长,可能是因为频繁的调度和改变优先级。

    CPU Bound进程总是会被惩罚(降低优先级)而IO Bound进程总会被奖励(提高优先级)。

    4.prstat命令

    要显示系统上当前运行的进程和项目的各种统计信息,请使用带有-J选项的prstat命令:

    %prstat -J

    PID USERNAME SIZE  RSS STATE PRI NICE     TIME CPU PROCESS/NLWP

    21634 jtd     5512K 4848K cpu0   44   0  0:00.00 0.3% prstat/1

    324 root      29M  75M sleep  59   0  0:08.27 0.2% Xsun/1

    15497 jtd       48M  41M sleep  49   0  0:08.26 0.1% adeptedit/1

    328 root    2856K 2600K sleep  58   0  0:00.00 0.0% mibiisa/11

    1979 jtd     1568K 1352K sleep  49   0  0:00.00 0.0% csh/1

    1977 jtd     7256K 5512K sleep  49   0  0:00.00 0.0% dtterm/1

    192 root    3680K 2856K sleep  58   0  0:00.36 0.0% automountd/5

    1845 jtd       24M  22M sleep  49   0  0:00.29 0.0% dtmail/11

    1009 jtd     9864K 8384K sleep  49   0  0:00.59 0.0% dtwm/8

    114 root    1640K 704K sleep  58   0  0:01.16 0.0% in.routed/1

    180 daemon  2704K 1944K sleep  58   0  0:00.00 0.0% statd/4

    145 root    2120K 1520K sleep  58   0  0:00.00 0.0% ypbind/1

    181 root    1864K 1336K sleep  51   0  0:00.00 0.0% lockd/1

    173 root    2584K 2136K sleep  58   0  0:00.00 0.0% inetd/1

    135 root    2960K 1424K sleep   0   0  0:00.00 0.0% keyserv/4

    PROJID   NPROC SIZE  RSS MEMORY     TIME CPU PROJECT

    10      52 400M 271M   68%  0:11.45 0.4% booksite

    0      35 113M 129M   32%  0:10.46 0.2% system

    Total: 87 processes, 205 lwps, load averages: 0.05, 0.02, 0.02

    要显示系统上当前运行的进程和任务的各种统计信息,请使用带有-T选项的prstat命令:

    %prstat -T

    PID USERNAME SIZE  RSS STATE PRI NICE     TIME CPU PROCESS/NLWP

    23023 root      26M  20M sleep  59   0  0:03:18 0.6% Xsun/1

    23476 jtd       51M  45M sleep  49   0  0:04:31 0.5% adeptedit/1

    23432 jtd     6928K 5064K sleep  59   0  0:00:00 0.1% dtterm/1

    28959 jtd       26M  18M sleep  49   0  0:00:18 0.0% .netscape.bin/1

    23116 jtd     9232K 8104K sleep  59   0  0:00:27 0.0% dtwm/5

    29010 jtd     5144K 4664K cpu0   59   0  0:00:00 0.0% prstat/1

    200 root    3096K 1024K sleep  59   0  0:00:00 0.0% lpsched/1

    161 root    2120K 1600K sleep  59   0  0:00:00 0.0% lockd/2

    170 root    5888K 4248K sleep  59   0  0:03:10 0.0% automountd/3

    132 root    2120K 1408K sleep  59   0  0:00:00 0.0% ypbind/1

    162 daemon  2504K 1936K sleep  59   0  0:00:00 0.0% statd/2

    146 root    2560K 2008K sleep  59   0  0:00:00 0.0% inetd/1

    122 root    2336K 1264K sleep  59   0  0:00:00 0.0% keyserv/2

    119 root    2336K 1496K sleep  59   0  0:00:02 0.0% rpcbind/1

    104 root    1664K 672K sleep  59   0  0:00:03 0.0% in.rdisc/1

    TASKID   NPROC SIZE  RSS MEMORY     TIME CPU PROJECT

    222      30 229M 161M   44%  0:05:54 0.6% group.staff

    223       1  26M  20M  5.3%  0:03:18 0.6% group.staff

    12       1  61M  33M  8.9%  0:00:31 0.0% group.staff

    1      33  85M  53M   14%  0:03:33 0.0% system

    Total: 65 processes, 154 lwps, load averages: 0.04, 0.05, 0.06

    注–

    -J和-T选项不能一起使用。

    更多相关内容
  • 怎么使用Linux命令查看CPU使用率

    千次阅读 2021-05-15 23:18:39
    本教程分享有关cpu使用图文教程内容,希望对您有用在Linux系统操作中,有时需要查看cpu的使用率,这就需要用到Linux命令了,Linux查看cpu使用率命令主要有4个,即top、vmstat、mpstat和prstat命令,一起来了解下吧...

    本教程分享有关cpu使用图文教程内容,希望对您有用

    在Linux系统操作中,有时需要查看cpu的使用率,这就需要用到Linux命令了,Linux查看cpu使用率的命令主要有4个,即top、vmstat、mpstat和prstat命令,一起来了解下吧。

    27e2d75cbcf487109e39368b95e1aec3.png

    1.top

    使用权限:所有使用者

    使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]

    说明:即时显示process的动态

    d :改变显示的更新速度,或是在交谈式指令列( interactive command)按s

    q :没有任何延迟的显示速度,如果使用者是有superuser的权限,则top将会以最高的优先序执行

    c :切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S :累积模式,会将己完成或消失的子行程( dead child process )的CPU time累积起来

    s :安全模式,将交谈式指令取消,避免潜在的危机

    i :不显示任何闲置(idle)或无用(zombie)的行程

    n :更新的次数,完成后将会退出top

    b :批次档模式,搭配“n”参数一起使用,可以用来将top的结果输出到档案内

    范例:

    显示更新十次后退出;

    top -n 10

    使用者将不能利用交谈式指令来对行程下命令:

    top -s

    将更新显示二次的结果输入到名称为top.log的档案里:

    top -n 2 -b 《 top.log

    另附一个命令简介linux traceroutewindows tracert两个命令相当,跟踪网络路由

    2.vmstat

    正如我们之前讨论的任何系统的性能比较都是基于基线的,并且监控CPU的性能就是以上3点,运行队列、CPU使用率和上下文切换。以下是一些对于CPU很普遍的性能要求:

    1.对于每一个CPU来说运行队列不要超过3,例如,如果是双核CPU就不要超过6;

    2.如果CPU在满负荷运行,应该符合下列分布,

    a) User Time:65%~70%

    b) System Time:30%~35%

    c) Idle:0%~5%

    3. mpstat

    对于上下文切换要结合CPU使用率来看,如果CPU使用满足上述分布,大量的上下文切换也是可以接受的。

    常用的监视工具有:vmstat, top,dstat和mpstat.

    # vmstat 1

    procs ———–memory———- —swap– —–io—- –system– —-cpu—-

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

    0 0 104300 16800 95328 72200 0 0 5 26 7 14 4 1 95 0

    0 0 104300 16800 95328 72200 0 0 0 24 1021 64 1 1 98 0

    0 0 104300 16800 95328 72200 0 0 0 0 1009 59 1 1 98 0

    r表示运行队列的大小,

    b表示由于IO等待而block的线程数量,

    in表示中断的数量,

    cs表示上下文切换的数量,

    us表示用户CPU时间,

    sys表示系统CPU时间,

    wa表示由于IO等待而是CPU处于idle状态的时间,

    id表示CPU处于idle状态的总时间。

    dstat可以给出每一个设备产生的中断数:

    # dstat -cip 1

    —-total-cpu-usage—- —-interrupts— —procs—

    usr sys idl wai hiq siq| 15 169 185 |run blk new

    6 1 91 2 0 0| 12 0 13 | 0 0 0

    1 0 99 0 0 0| 0 0 6 | 0 0 0

    0 0 100 0 0 0| 18 0 2 | 0 0 0

    0 0 100 0 0 0| 0 0 3 | 0 0 0

    我们可以看到这里有3个设备号15,169和185.设备名和设备号的关系我们可以参考文件/proc/interrupts,这里185代表网卡eth1.

    # cat /proc/interrupts

    CPU0

    0: 1277238713 IO-APIC-edge timer

    6: 5 IO-APIC-edge floppy

    7: 0 IO-APIC-edge parport0

    8: 1 IO-APIC-edge rtc

    9: 1 IO-APIC-level acpi

    14: 6011913 IO-APIC-edge ide0

    15: 15761438 IO-APIC-edge ide1

    169: 26 IO-APIC-level Intel 82801BA-ICH2

    185: 16785489 IO-APIC-level eth1

    193: 0 IO-APIC-level uhci_hcd:usb1

    mpstat可以显示每个CPU的运行状况,比如系统有4个CPU。我们可以看到:

    # mpstat –P ALL 1

    Linux 2.4.21-20.ELsmp (localhost.localdomain) 05/23/2006

    05:17:31 PM CPU \user %nice %system %idle intr/s

    05:17:32 PM all 0.00 0.00 3.19 96.53 13.27

    05:17:32 PM 0 0.00 0.00 0.00 100.00 0.00

    05:17:32 PM 1 1.12 0.00 12.73 86.15 13.27

    05:17:32 PM 2 0.00 0.00 0.00 100.00 0.00

    05:17:32 PM 3 0.00 0.00 0.00 100.00 0.00

    总结的说,CPU性能监控包含以下方面:

    检查系统的运行队列,确保每一个CPU的运行队列不大于3.

    确保CPU使用分布满足70/30原则(用户70%,系统30%)。

    如果系统时间过长,可能是因为频繁的调度和改变优先级。

    CPU Bound进程总是会被惩罚(降低优先级)而IO Bound进程总会被奖励(提高优先级)。

    4.prstat命令

    要显示系统上当前运行的进程和项目的各种统计信息,请使用带有-J选项的prstat命令:

    %prstat -J

    PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP

    21634 jtd 5512K 4848K cpu0 44 0 0:00.00 0.3% prstat/1

    324 root 29M 75M sleep 59 0 0:08.27 0.2% Xsun/1

    15497 jtd 48M 41M sleep 49 0 0:08.26 0.1% adeptedit/1

    328 root 2856K 2600K sleep 58 0 0:00.00 0.0% mibiisa/11

    1979 jtd 1568K 1352K sleep 49 0 0:00.00 0.0% csh/1

    1977 jtd 7256K 5512K sleep 49 0 0:00.00 0.0% dtterm/1

    192 root 3680K 2856K sleep 58 0 0:00.36 0.0% automountd/5

    1845 jtd 24M 22M sleep 49 0 0:00.29 0.0% dtmail/11

    1009 jtd 9864K 8384K sleep 49 0 0:00.59 0.0% dtwm/8

    114 root 1640K 704K sleep 58 0 0:01.16 0.0% in.routed/1

    180 daemon 2704K 1944K sleep 58 0 0:00.00 0.0% statd/4

    145 root 2120K 1520K sleep 58 0 0:00.00 0.0% ypbind/1

    181 root 1864K 1336K sleep 51 0 0:00.00 0.0% lockd/1

    173 root 2584K 2136K sleep 58 0 0:00.00 0.0% inetd/1

    135 root 2960K 1424K sleep 0 0 0:00.00 0.0% keyserv/4

    PROJID NPROC SIZE RSS MEMORY TIME CPU PROJECT

    10 52 400M 271M 68% 0:11.45 0.4% booksite

    0 35 113M 129M 32% 0:10.46 0.2% system

    Total: 87 processes, 205 lwps, load averages: 0.05, 0.02, 0.02

    要显示系统上当前运行的进程和任务的各种统计信息,请使用带有-T选项的prstat命令:

    %prstat -T

    PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP

    23023 root 26M 20M sleep 59 0 0:03:18 0.6% Xsun/1

    23476 jtd 51M 45M sleep 49 0 0:04:31 0.5% adeptedit/1

    23432 jtd 6928K 5064K sleep 59 0 0:00:00 0.1% dtterm/1

    28959 jtd 26M 18M sleep 49 0 0:00:18 0.0% .netscape.bin/1

    23116 jtd 9232K 8104K sleep 59 0 0:00:27 0.0% dtwm/5

    29010 jtd 5144K 4664K cpu0 59 0 0:00:00 0.0% prstat/1

    200 root 3096K 1024K sleep 59 0 0:00:00 0.0% lpsched/1

    161 root 2120K 1600K sleep 59 0 0:00:00 0.0% lockd/2

    170 root 5888K 4248K sleep 59 0 0:03:10 0.0% automountd/3

    132 root 2120K 1408K sleep 59 0 0:00:00 0.0% ypbind/1

    162 daemon 2504K 1936K sleep 59 0 0:00:00 0.0% statd/2

    146 root 2560K 2008K sleep 59 0 0:00:00 0.0% inetd/1

    122 root 2336K 1264K sleep 59 0 0:00:00 0.0% keyserv/2

    119 root 2336K 1496K sleep 59 0 0:00:02 0.0% rpcbind/1

    104 root 1664K 672K sleep 59 0 0:00:03 0.0% in.rdisc/1

    TASKID NPROC SIZE RSS MEMORY TIME CPU PROJECT

    222 30 229M 161M 44% 0:05:54 0.6% group.staff

    223 1 26M 20M 5.3% 0:03:18 0.6% group.staff

    12 1 61M 33M 8.9% 0:00:31 0.0% group.staff

    1 33 85M 53M 14% 0:03:33 0.0% system

    Total: 65 processes, 154 lwps, load averages: 0.04, 0.05, 0.06

    注–

    -J和-T选项不能一起使用。

    上面就是Linux下查看CPU使用率的命令介绍了,使用这些命令可以详细的看到目前cpu的使用情况,且四个命令所显示的cpu使用率的效果有点区别,需根据个人要求来选择使用。

    本文转载于http://www.xitongzhijia.net/xtjc/20141205/32039_all.html,版权归原作者所有!!

    文章名称:怎么使用Linux命令查看CPU使用率

    文章连接:https://www.340e.com/2051.html

    未经允许不得转载

    展开全文
  • Linux查看CPU使用率的一些命令

    千次阅读 2019-01-22 09:59:36
    在使用linux系统进行运维的过程中,我们经常要查看一下CPU使用率,以便观察以及分析系统的整体运行情况。 那么使用以下这些命令有何作用?我们一起看看: 1. top 使用频率比较高的命令,可在第三行看到cpu的...

    在使用linux系统进行运维的过程中,我们经常要查看一下CPU的使用率,以便观察以及分析系统的整体运行情况。

    那么使用以下这些命令有何作用?我们一起看看:

    1. top

    使用频率比较高的命令,可在第三行看到cpu的使用情况。

    [root@db 22:42 ~]$ top -bn 1 -i -c
    top - 22:52:17 up 55 days, 22:56,  2 users,  load average: 1.92, 2.31, 2.08
    Tasks: 266 total,   1 running, 265 sleeping,   0 stopped,   0 zombie
    Cpu(s):  2.4%us,  1.7%sy,  0.0%ni, 94.8%id,  0.0%wa,  0.0%hi,  1.1%si,  0.0%st
    Mem:   8062036k total,  6161944k used,  1900092k free,   167064k buffers
    Swap: 16777208k total,   539444k used, 16237764k free,  3075204k cached

      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                           
    11455 root      20   0 15160 1240  832 R  3.3  0.0   0:00.13 top -bn 1 -i -c        
                                              

    如上所示,top命令可以看到总体的系统运行状态和cpu的使用率 。

    %us:表示用户空间程序的cpu使用率(没有通过nice调度)

    %sy:表示系统空间的cpu使用率,主要是内核程序。

    %ni:表示用户空间且通过nice调度过的程序的cpu使用率。

    %id:空闲cpu

    %wa:cpu运行时在等待io的时间

    %hi:cpu处理硬中断的数量

    %si:cpu处理软中断的数量

    %st:被虚拟机偷走的cpu

    2. sar

    此命令不存在时需要安装sysstat包。

    [root@dbserver ~]# sar -P 0 -u 2 5
    Linux 5.4.5-x86_64-linode52 (li676-235) 07/20/2015 _x86_64_ (1 CPU)
    10:26:34 PM CPU %user %nice %system %iowait %steal %idle
    10:26:36 PM 0 41.00 0.00 55.00 4.00 0.00 0.00
    10:26:38 PM 0 8.27 0.00 27.81 62.88 1.01 0.00
    10:26:40 PM 0 2.07 0.00 15.28 81.63 1.02 0.00
    10:26:42 PM 0 4.13 0.00 24.69 72.16 1.03 0.00
    10:26:44 PM 0 4.14 0.00 23.68 72.16 1.03 0.00
    Average: 0 15.09 0.00 26.82 49.29 0.82 0.00

    进程队列长度和平均负责状态

    例如每2秒采集1次,共采集5次。

    [root@dbserver ~]# sar -q 2 5
    Linux 5.4.5-x86_64-linode52 (dbserver) 09/23/2017 _x86_64_ (1 CPU)
    10:28:37 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
    10:28:38 PM 1 131 0.35 0.44 0.41
    10:28:39 PM 2 132 0.34 0.43 0.41
    10:28:40 PM 1 133 0.34 0.43 0.41
    10:28:41 PM 2 134 0.31 0.42 0.40
    10:28:42 PM 1 133 0.31 0.42 0.40
    Average: 1 133 0.33 0.43 0.41

    输出项:

    runq-sz:运行队列的长度(等待运行的进程数)

    plist-sz:进程列表中进程(processes)和线程(threads)的数量

    ldavg-1:最后1分钟的系统平均负载(System load average)

    ldavg-5:过去5分钟的系统平均负载

    ldavg-15:过去15分钟的系统平均负载

    进程创建的平均值和上下文切换的次数

    例如每2秒收集1次,共收集5次。

    [root@dbserver  ~]# sar -w 2 5
    Linux 5.4.5-x86_64-linode52 (dbserver) 09/23/2017 _x86_64_ (1 CPU)
    10:44:03 PM proc/s cswch/s
    10:44:05 PM 1.01 156.57
    10:44:07 PM 1.00 132.00
    10:44:09 PM 2.00 201.00
    10:44:11 PM 2.02 126.26
    10:44:13 PM 2.00 114.00
    Average: 1.61 145.98

    sar命令也可以获取过去指定日期的性能参数。

    [root@dbserver ~]# sar -u -f /var/log/sa/sa20
    Linux 5.4.5-x86_64-linode52 (dbserver) 09/23/2017 _x86_64_ (1 CPU)
    11:10:01 PM CPU %user %nice %system %iowait %steal %idle
    11:20:02 PM all 25.78 0.00 8.88 3.59 0.15 61.60
    11:30:01 PM all 26.06 0.00 9.96 3.33 0.10 60.55
    11:40:01 PM all 25.73 0.00 9.17 3.70 0.09 61.32
    11:50:01 PM all 25.70 0.00 9.50 2.79 0.12 61.89
    12:00:01 PM all 26.70 0.00 9.73 2.20 0.10 61.28
    12:10:01 PM all 26.16 0.00 9.56 4.34 0.11 59.82
    12:20:01 PM all 25.49 0.00 9.61 2.76 0.07 62.07
    12:30:01 PM all 26.47 0.00 9.94 0.64 0.30 62.65
    12:40:02 PM all 27.32 0.00 10.37 3.86 0.15 58.30
    12:50:02 PM all 26.98 0.00 10.38 4.56 0.13 57.95
    Average: all 26.24 0.00 9.71 3.18 0.13 60.74

    3.vmstat

    vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存 交换情况,IO读写情况。相比top,通过vmstat可以看到整个机器的 CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率。

    [root@dbserver 23:20 ~]$ vmstat 2
    procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     0  0 539444 1889712 167068 3077024    0    0     0     3    1    0  2  3 95  0  0    
     0  0 539444 1889704 167068 3077028    0    0     0     0 1474 1742  1  0 99  0  0    
     8  0 539444 1889704 167068 3077028    0    0     0     0 1472 1224  6  8 86  0  0  
     

     表示vmstat每2秒采集数据,一直采集,直到我们主动结束程序。

    参数详解

    Linux 内存监控vmstat命令输出分成六个部分:

    (1)进程procs
        r:在运行队列中等待的进程数
        b:在等待io的进程数
    (2)Linux 内存监控内存memoy
        swpd:现时可用的交换内存(单位KB)。
        free:空闲的内存(单位KB)。
        buff: 缓冲去中的内存数(单位:KB)。
        cache:被用来做为高速缓存的内存数(单位:KB)。
    (3) Linux 内存监控swap交换页面
        si: 从磁盘交换到内存的交换页数量,单位:KB/秒。
        so: 从内存交换到磁盘的交换页数量,单位:KB/秒。
    (4)Linux 内存监控 io块设备:
        bi: 发送到块设备的块数,单位:块/秒。
        bo: 从块设备接收到的块数,单位:块/秒。
    (5)Linux 内存监控system系统:
        in: 每秒的中断数,包括时钟中断。
        cs: 每秒的环境(上下文)转换次数。
    (6)Linux 内存监控cpu中央处理器:
        cs:用户进程使用的时间 。以百分比表示。
        sy:系统进程使用的时间。 以百分比表示。
        id:中央处理器的空闲时间 。以百分比表示。

    常见诊断:

    1) 假如 r 经常大于4 ,且 id 经常小于40,表示中央处理器的负荷很重。

    2) 假如 bi,bo 长期不等于0,表示物理内存容量太小。

    每个参数的具体意思如下:

    r 表示运行队列(就是说多少个进程真的分配到CPU),我测试的服务器目前CPU比较空闲,没什么程序在跑,当这个值超过了CPU数目,就会出现CPU瓶颈 了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队 列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。

    b 表示阻塞的进程,这个不多说,进程阻塞,大家懂的。

    swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。

    free   空闲的物理内存的大小,我的机器内存总共8G,剩余3415M。

    buff   Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存,我本机大概占用300多M

    cache cache直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用300多M(这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。)

    si  每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。我的机器内存充裕,一切正常。

    so  每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。

    bi  块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte,我本机上没什么IO操作,所以一直是0,但是我曾在处理拷贝大量数据(2-3T)的机器上看过可以达到140000/s,磁盘写入速度差不多140M每秒

    bo 块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。

    in 每秒CPU的中断次数,包括时间中断

    cs 每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的 数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或 者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核 空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的 时间少了,CPU没有充分利用,是不可取的。

    us 用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。

    sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。

    id  空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。

    wt 等待IO CPU时间。

    4.dstat

    每秒cpu使用率情况获取

    [root@dbserver 23:27 ~]$ dstat -c
    ----total-cpu-usage----
    usr sys idl wai hiq siq
      2   2  95   0   0   1
      4   2  92   0   0   2
     11   7  75   0   0   6
      2   2  96   0   0   0
      0   0  99   0   0   0

    最占cpu的进程获取
    [root@dbserver 23:29 ~]$ dstat --top-cpu
    -most-expensive-
      cpu process   
    java         2.6
    java         3.1
    java          21
    java         0.1
    java         0.6


     

    展开全文
  • 1、创建存放脚本文件目录 mkdir -p /etc/press chmod 777 /etc/press 2、启动定时任务进程 echo 'systemctl start crond.service...部署成功后查看当前使用率:top -n 1|grep Cpu|awk '{print "当前CPU使用率:"$2"%"}'
  • Linux系统查看CPU使用率命令

    万次阅读 2022-03-28 22:13:23
    Linux系统查看CPU使用率命令

    Linux系统查看CPU使用率命令 - 暮日温柔 - 博客园

    1、top#

    这个命令很常用,在第三行有显示CPU当前的使用情况。

    如上所示,top命令可以看到总体的系统运行状态和cpu的使用率 。

    %us:表示用户空间程序的cpu使用率(没有通过nice调度)

    %sy:表示系统空间的cpu使用率,主要是内核程序。

    %ni:表示用户空间且通过nice调度过的程序的cpu使用率。

    %id:空闲cpu

    %wa:cpu运行时在等待io的时间

    %hi:cpu处理硬中断的数量

    %si:cpu处理软中断的数量

    %st:被虚拟机偷走的cpu

    2、vmstat

    3、sar#

    sar命令语法和vmstat一样。命令不存在时需要安装sysstat包,这个包很有用。

    CPU使用率#

    例如每1秒采集一次CPU使用率,共采集5次。

    和top一样,可以看到所有cpu的使用情况。如果需要查看某颗cpu的使用可以用-P参数。例如指定显示0号cpu 的使用情况。

     

    进程队列长度和平均负载状态#

    例如每1秒采集一次,共采集5次。

    输出项:

    runq-sz:运行队列的长度(等待运行的进程数)

    plist-sz:进程列表中进程(processes)和线程(threads)的数量

    ldavg-1:最后1分钟的系统平均负载(System load average)

    ldavg-5:过去5分钟的系统平均负载

    ldavg-15:过去15分钟的系统平均负载

    展开全文
  • Linux系统查看CPU使用率、内存使用率、磁盘使用率

    万次阅读 多人点赞 2019-04-16 15:17:00
    一、查看CPU使用率 1. top 命令 top命令可以看到总体的系统运行状态和cpu的使用率 。 %us:表示用户空间程序的cpu使用率(没有通过nice调度) %sy:表示系统空间的cpu使用率,主要是内核程序。 %ni:表示用户空间...
  • 第 第 PAGE 1 页 共 NUMPAGES 1 页 Linux top命令查看多核CPU每个核心的使用率 ... Linux top命令查看多核CPU每个核心的使用率 top命令是linux下常用的工具可以查看各个进程的CPU使用情况先看一个实例 这是Ramnode双核
  • linux查看cpu状态相关命令

    千次阅读 2022-04-01 14:41:49
    linux查看cpu状态相关命令
  • linux查看cpu占用的方法:

    万次阅读 2022-07-07 15:16:09
    linux查看cpu占用的方法: Linux top命令里面%CPUcpu(s)的差别
  • 本文定位:想通过python调用top命令获取cpu使用率但暂时没有思路的情况。 如果单纯为了获得cpu的利用率,通过top命令重定向可以轻松实现,命令如下: 复制代码 代码如下: top -bi > cpuHistory.log 或 复制代码 代码...
  • linux 查看CPU使用率

    万次阅读 2019-02-18 11:14:06
    top命令可以看到总体的系统运行状态和cpu使用效率 %us: 表示用户空间程序的cpu使用效率 %sy:表示系统空间程序的cpu使用效率 %ni: 表示用户空间通过nice调度过的程序的cpu使用效率 %id: 空闲cpu %wa:cpu运行时...
  • linux获取cpu使用率

    千次阅读 2021-05-15 21:13:16
    Windows查看CPU使用率很...linux获取cpu使用率的方法工具/原料Centos获取CPU使用率1实时CPU使用率类似任务管理器实时系统信息可以通过top命令查看。显示的信息四个参数分别是:用户的模式(user)、低优先级的用户模...
  • 深入理解LinuxCPU使用率

    千次阅读 2021-05-16 11:46:11
    理解CPU使用率的含义首先,Linux 作为一个多任务操作系统,将每个 CPU 的时间片划分为很短的时间片,再通过调度器轮流分配给各个任务,造成多任务同时运行的错觉。1、CPU时间的含义为了维护 CPU 时间,Linux 通过...
  • Linux上使用shell脚本回显系统当前的CPU使用率、内存使用率和磁盘空间使用率 1.CPU使用率: 使用top命令能够实时显示系统中各个进程的资源占用状况,所以这边可以使用top命令,截取CPU占用情况的那一段,之后输出...
  • Linux提高CPU使用率并设置固定占比

    千次阅读 2021-06-01 10:52:50
    背景:项目申请的服务器资源要达到使用要求,不然就会减配,为了方便后续扩展不考虑减配,直接将使用率提高。 思路是先将CPU占用率直接上到100% 然后用 cpulimit 限定进程占用上限 1、安装 cpumit 下载 cpulimit...
  • 主要介绍了linux使用管道命令执行ps获取cpu与内存占用的示例,需要的朋友可以参考下
  • 本文讲解如何在 Linux 中使用不同的几个命令来检查 RAM 内存使用率。 一、free 命令 free命令是检查一个 Linux 系统中内存使用率最常用的命令。它显示关于内存总量,已经使用的内存以及空闲内存的相关信息。 通常, ...
  • Linux系统查看CPU使用率的几个命令

    万次阅读 多人点赞 2017-06-06 18:02:19
    linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。而监控CPU的性能一般包括以下3点:运行队列、CPU使用率和上下文切换。 对于每一个CPU来说运行队列最好不要超过3,例如,如果是双核CPU就...
  • Linux查看CPU使用率、内存使用率等

    千次阅读 2020-04-16 11:56:01
    一、CPU使用率查看 1.cat /proc/loadavg命令 $ cat /proc/loadavg 0.08 0.06 0.10 1/442 8347 前三项分别是最近1分钟、5分钟和15分钟的系统平均负载。系统平均负载为在特定时间间隔内运行队列中的平均进程数,...
  • Linux服务器如何查看CPU使用率、内存占用情况Top命令Free命令Vmstat命令 作为Linux运维工程师,系统维护过程中,需要我们经常查看CPU使用率、内存使用率、带宽占用,从资源使用的程度分析系统整体的运行情况。 在 ...
  • Linux系统下,使用top命令查看CPU使用情况。%Cpu(s): 0.3 us, 0.1 sy, 0.0 ni, 99.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stus(user):表示 CPU 在用户运行的时间百分比,通常用户 CPU 高表示有应用程序比较...
  • 可参考linux系统查看CPU使用率命令 常用命令:top top命令Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。 [root@izwz94b8tt3jlf3ne0ymp3z ~]# top top - ...
  • 使用命令Linux查看CPU和MEM利用

    千次阅读 2020-09-03 14:20:37
    使用命令Linux查看CPU和MEM利用 0、查看CPU或者MEM可以一般使用top、free等,除此之外还可以用其他方式 查看CPU工具 1、mpstat: [root@moc ~]# mpstat 1 5 Linux 3.10.0-1127.13.1.el7.x86_64 (moc) 09/03/...
  • 文章目录一、查看CPU使用率1. top 命令2、vmstat3、sar4、mpstat5、iostat二、查看内存使用率1、top命令2、free命令(1).命令格式:(2).命令功能:(3) .命令参数:(4).使用实例:三、查看磁盘使用率1、...
  • Linux 查看服务器内存、CPU 命令

    千次阅读 2022-07-23 10:49:01
    Linux 查看服务器内存、CPU 命令
  • linuxCPU占用率查看方法

    千次阅读 2021-08-30 11:45:42
    关键词:top、perf、...top是最常用的查看系统资源使用情况的工具,包括CPU、内存等等资源。 这里主要关注CPU资源。 1.1 /proc/loadavg load average取自/proc/loadavg。 9.53 9.12 8.37 3/889 28165 前三个数

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 101,855
精华内容 40,742
关键字:

linux查看cpu使用率命令