精华内容
下载资源
问答
  • 一、Linux查看CPU基本信息,可以使用命令:cat /proc/cpuinfo例如笔者的虚拟机:[root@promote ~]# cat /proc/cpuinfoprocessor: 0vendor_id: GenuineIntelcpu family: 6model: 37model name: Intel(R) Core(TM) i5 ...

    一、Linux查看CPU基本信息,可以使用命令:

    cat /proc/cpuinfo

    例如笔者的虚拟机:

    [root@promote ~]# cat /proc/cpuinfo

    processor: 0

    vendor_id: GenuineIntel

    cpu family: 6

    model: 37

    model name: Intel(R) Core(TM) i5 CPU M 520 @ 2.40GHz

    stepping: 5

    cpu MHz: 2394.049

    cache size: 3072 KB

    fpu: yes

    fpu_exception: yes

    cpuid level: 11

    wp: yes

    flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes hypervisor lahf_lm ida arat dts

    bogomips: 4788.09

    clflush size: 64

    cache_alignment: 64

    address sizes: 40 bits physical, 48 bits virtual

    power management:

    可见,笔者这台虚拟机,有一个逻辑CPU,主频是2.4。

    延伸:

    processor 逻辑处理器的id。

    physical id 物理封装的处理器的id。

    core id 每个核心的id。

    cpu cores 位于相同物理封装的处理器中的内核数量。

    siblings 位于相同物理封装的处理器中的逻辑处理器的数量。

    二、如何查看CPU逻辑个数。

    方法1:

    cat /proc/cpuinfo

    processor: 11

    vendor_id: GenuineIntel

    cpu family: 6

    model: 62

    model name: Intel(R) Xeon(R) CPU E5-2620 v2 @ 2.10GHz

    stepping: 4

    microcode: 1064

    cpu MHz: 2100.170

    cache size: 15360 KB

    physical id: 0

    siblings: 12

    core id: 5

    cpu cores: 6

    apicid: 11

    initial apicid: 11

    fpu: yes

    fpu_exception: yes

    cpuid level: 13

    wp: yes

    flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms

    bogomips: 4200.34

    clflush size: 64

    cache_alignment: 64

    address sizes: 46 bits physical, 48 bits virtual

    power management:

    可以看出有12个逻辑CPU。因为processor从0开始,到11结束,说明有12个。

    方法2:

    cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

    例如,

    [root@localhost ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

    12  Intel(R) Xeon(R) CPU E5-2620 v2 @ 2.10GHz

    可以看到有12个逻辑CPU。

    方法3:

    cat /proc/cpuinfo | grep physical | uniq -c

    例如,

    [root@localhost ~]# cat /proc/cpuinfo | grep physical | uniq -c

    1 physical id: 0

    1 address sizes: 46 bits physical, 48 bits virtual

    1 physical id: 0

    1 address sizes: 46 bits physical, 48 bits virtual

    1 physical id: 0

    1 address sizes: 46 bits physical, 48 bits virtual

    1 physical id: 0

    1 address sizes: 46 bits physical, 48 bits virtual

    1 physical id: 0

    1 address sizes: 46 bits physical, 48 bits virtual

    1 physical id: 0

    1 address sizes: 46 bits physical, 48 bits virtual

    1 physical id: 0

    1 address sizes: 46 bits physical, 48 bits virtual

    1 physical id: 0

    1 address sizes: 46 bits physical, 48 bits virtual

    1 physical id: 0

    1 address sizes: 46 bits physical, 48 bits virtual

    1 physical id: 0

    1 address sizes: 46 bits physical, 48 bits virtual

    1 physical id: 0

    1 address sizes: 46 bits physical, 48 bits virtual

    1 physical id: 0

    1 address sizes: 46 bits physical, 48 bits virtual

    也能看出来是12个,不过需要数一下。

    更简单的方法还有:

    (1)、cat /proc/cpuinfo |grep "processor"|wc -l

    [root@localhost ~]# cat /proc/cpuinfo |grep "processor"|wc -l

    12

    直接计算出来是12,都不用数了。

    (2)、cat /proc/cpuinfo |grep "physical id"

    [root@localhost ~]# cat /proc/cpuinfo |grep "physical id"

    physical id: 0

    physical id: 0

    physical id: 0

    physical id: 0

    physical id: 0

    physical id: 0

    physical id: 0

    physical id: 0

    physical id: 0

    physical id: 0

    physical id: 0

    physical id: 0

    这个需要数一下才能知道是12。

    (3)、cat /proc/cpuinfo |grep "processor"

    [root@localhost ~]#cat /proc/cpuinfo |grep "processor"

    processor: 0

    processor: 1

    processor: 2

    processor: 3

    processor: 4

    processor: 5

    processor: 6

    processor: 7

    processor: 8

    processor: 9

    processor: 10

    processor: 11

    这个法子不错,直接按处理器排序到11。一眼看出来是12。

    三、如何查看每个CPU核心数。

    有个简单的命令:

    cat /proc/cpuinfo |grep "cores"

    [root@localhost ~]# cat /proc/cpuinfo |grep "cores"

    cpu cores: 6

    cpu cores: 6

    cpu cores: 6

    cpu cores: 6

    cpu cores: 6

    cpu cores: 6

    cpu cores: 6

    cpu cores: 6

    cpu cores: 6

    cpu cores: 6

    cpu cores: 6

    cpu cores: 6

    可以看到,12个逻辑CPU中,每个CPU都是6核。

    其实在查看CPU基本信息里,有个cpu cores:6,直接就显示是6个。

    四、查看CPU使用率的命令

    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的结果输出到档案内

    例如,

    可以看到CPU使用率百分比。Ctrl+C可以退出TOP。

    也可以使用命令:cat /proc/stat查看。例如:

    [root@localhost ~]# cat /proc/stat

    cpu 27115520 242 4622815 4662722506 12504018 246 96658 0 0

    cpu0 4126112 0 855568 375445053 10489170 76 32126 0 0

    cpu1 2370590 0 291429 389439543 27264 53 6368 0 0

    cpu2 1744553 0 225295 390309511 16425 12 3430 0 0

    cpu3 1451736 0 256399 390612263 9784 1 3077 0 0

    cpu4 911835 0 257589 391264891 7095 0 2000 0 0

    cpu5 706379 0 249467 391522706 5312 0 1582 0 0

    cpu6 11307712 0 976287 378460372 1915138 0 14559 0 0

    cpu7 1069543 0 354557 390922711 9657 0 8219 0 0

    cpu8 827844 0 269726 391350780 5797 5 7072 0 0

    cpu9 1043103 242 351579 390805163 7193 21 8010 0 0

    cpu10 884193 0 298011 391092737 6363 30 6141 0 0

    cpu11 671915 0 236902 391496772 4814 45 4067 0 0

    intr 3434565703 127 0 0 1 1 0 0 0 1 116 247 0 0 0 0 0 0 0 0 0 0 0 138 113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13094 0 0 0 0 0 0 0 0 0 0 0 0 0 75734895 117 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 56232283 21536519 17473625 17213052 17575845 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    ctxt 6265469303

    btime 1426551690

    processes 7425277

    procs_running 2

    procs_blocked 0

    softirq 1862968701 0 592789560 785619 277080030 72116042 0 72554297 243093245 7677488 596872420

    可以看到12个CPU使用的情况。

    五、查看CPU运行在多少位下的命令

    getconf LONG_BIT

    [root@localhost ~]# getconf LONG_BIT

    64

    [root@localhost ~]#

    可以看到运行在64位下。

    六、查看CPU是否支持64位运算

    cat /proc/cpuinfo | grep flags | grep ' lm '|wc -l

    [root@localhost ~]#cat /proc/cpuinfo | grep flags | grep ' lm '|wc -l

    12

    [root@localhost ~]#

    等于12,说明12个逻辑CPU都支持64位运算, lm指long mode, 支持lm则是64bit。

    展开全文
  • [root@zwz]# ps aux |grep gs4 |grep -v grep root 32289 26.4 1.2 101499888 296768 ?...关于 aux |grep 和 grep -v grep 不明白的可以访问我另外一篇文章《linux命令查询进程与去掉grep并计算行数》,我们主要说...
    [root@zwz]# ps aux |grep gs4 |grep -v grep
    root     32289   26.4   1.2 101499888 296768 ?    Ssl  Apr10 1208:56 /home/gs4
    

    关于 aux |grep 和 grep -v grep 不明白的可以访问我另外一篇文章《linux命令查询进程与去掉grep并计算行数》,我们主要说awk
    awk是一个强大的文本分析工具
    awk '{print $2}'打印当前行里的某一个参数有 $1,$2,$3如下:

    获取进程数

    ps aux |grep gs4 |grep -v grep |awk '{print $2}'
    32289
    

    获取CPU使用率

    ps aux |grep gs4 |grep -v grep |awk '{print $3}'
    26.4
    

    内存使用率

    ps aux |grep gs4 |grep -v grep |awk '{print $4}'
    1.2
    
    展开全文
  • Linux CPU使用率查询

    2018-04-08 10:16:00
    下面详细介绍它的使用方法。 top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48 Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie Cpu(s): 0.3% us, 1.0% sy, 0.0%...

    1. top 命令

    下面详细介绍它的使用方法。
    top - 01:06:48 up  1:22,  1 user,  load average: 0.06, 0.60,  0.48
    Tasks:  29 total,   1 running,  28 sleeping,   0 stopped,   0  zombie
    Cpu(s):  0.3% us,  1.0% sy,  0.0% ni, 98.7% id,  0.0% wa,  0.0%  hi,  0.0% si
    Mem:    191272k total,   173656k used,    17616k free,    22052k  buffers
    Swap:   192772k total,        0k used,   192772k free,   123988k  cached
                
    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM     TIME+  COMMAND
    1379 root      16   0  7976 2456 1980 S  0.7  1.3   0:11.03  sshd
    14704 root      16   0  2128  980  796 R  0.7  0.5   0:02.72 top
    1 root      16   0  1992  632  544 S  0.0  0.3   0:00.90 init
    2 root       34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0
    3 root       RT   0     0    0    0 S  0.0  0.0   0:00.00  watchdog/0
    
    统计信息区前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime  命令的执行结果。其内容如下:
    01:06:48                    当前时间
    up  1:22                    系统运行时间,格式为时:分
    1   user                    当前登录用户数
    load average: 0.06, 0.60, 0.48    系统负载,即任务队列的平均长度。
       三个数值分别为  1分钟、5分钟、15分钟前到现在的平均值。
    
    第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:
    Tasks: 29 total    进程总数
    1 running    正在运行的进程数
    28 sleeping    睡眠的进程数
    0 stopped    停止的进程数
    0 zombie    僵尸进程数
    Cpu(s): 0.3% us    用户空间占用CPU百分比
    1.0% sy            内核空间占用CPU百分比
    0.0% ni            用户进程空间内改变过优先级的进程占用CPU百分比
    98.7% id    空闲CPU百分比
    0.0% wa            等待输入输出的CPU时间百分比
    0.0% hi    
    0.0% si    
    
    最后两行为内存信息。内容如下:
    Mem: 191272k total    物理内存总量
    173656k used            使用的物理内存总量
    17616k free            空闲内存总量
    22052k buffers            用作内核缓存的内存量
    Swap: 192772k total    交换区总量
    0k used                    使用的交换区总量
    192772k free            空闲交换区总量
    123988k cached            缓冲的交换区总量。
                内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
                该数值即为这些内容已存在于内存中的交换区的大小。
                相应的内存再次被换出时可不必再对交换区写入。
    
    进程信息区统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。
    列名    含义
    PID    进程id
    PPID    父进程id
    RUSER    Real user name
    UID    进程所有者的用户id
    USER    进程所有者的用户名
    GROUP    进程所有者的组名
    TTY    启动进程的终端名。不是从终端启动的进程则显示为 ?
    PR    优先级
    NI    nice值。负值表示高优先级,正值表示低优先级
    P    最后使用的CPU,仅在多CPU环境下有意义
    %CPU    上次更新到现在的CPU时间占用百分比
    TIME    进程使用的CPU时间总计,单位秒
    TIME+    进程使用的CPU时间总计,单位1/100秒
    %MEM    进程使用的物理内存百分比
    VIRT    进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
    SWAP    进程使用的虚拟内存中,被换出的大小,单位kb。
    RES    进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
    CODE    可执行代码占用的物理内存大小,单位kb
    DATA    可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
    SHR    共享内存大小,单位kb
    nFLT    页面错误次数
    nDRT    最后一次写入到现在,被修改过的页面数。
    S    进程状态。
                D=不可中断的睡眠状态
                R=运行
                S=睡眠
                T=跟踪/停止
                Z=僵尸进程
    COMMAND    命令名/命令行
    WCHAN    若该进程在睡眠,则显示睡眠中的系统函数名
    Flags    任务标志,参考 sched.h

    load average详解

    top命令中load average显示的是最近1分钟、5分钟和15分钟的系统平均负载。系统平均负载表示

      系统平均负载被定义为在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程数。如果一个进程满足以下条件则其就会位于运行队列中:

      - 它没有在等待I/O操作的结果

      - 它没有主动进入等待状态(也就是没有调用’wait’)

      - 没有被停止(例如:等待终止)

      Update:在Linux中,进程分为三种状态,一种是阻塞的进程blocked process,一种是可运行的进程runnable process,另外就是正在运行的进程running process。当进程阻塞时,进程会等待I/O设备的数据或者系统调用。

      进程可运行状态时,它处在一个运行队列run queue中,与其他可运行进程争夺CPU时间。 系统的load是指正在运行running one和准备好运行runnable one的进程的总数。比如现在系统有2个正在运行的进程,3个可运行进程,那么系统的load就是5。load average就是一定时间内的load数量。

    在Linux系统中,uptime、w、top等命令都会有系统平均负载load average的输出

      load average: 0.09, 0.05, 0.01

      很多人会这样理解负载均值:三个数分别代表不同时间段的系统平均负载(一分钟、五 分钟、以及十五分钟),它们的数字当然是越小越好。数字越高,说明服务器的负载越 大,这也可能是服务器出现某种问题的信号。

      而事实不完全如此,是什么因素构成了负载均值的大小,以及如何区分它们目前的状况是 “好”还是“糟糕”?什么时候应该注意哪些不正常的数值?

      回答这些问题之前,首先需要了解下这些数值背后的些知识。我们先用最简单的例子说明, 一台只配备一块单核处理器的服务器。

      行车过桥

      一只单核的处理器可以形象得比喻成一条单车道。设想下,你现在需要收取这条道路的过桥 费 — 忙于处理那些将要过桥的车辆。你首先当然需要了解些信息,例如车辆的载重、以及 还有多少车辆正在等待过桥。如果前面没有车辆在等待,那么你可以告诉后面的司机通过。 如果车辆众多,那么需要告知他们可能需要稍等一会。

      因此,需要些特定的代号表示目前的车流情况,例如:

      0.00 表示目前桥面上没有任何的车流。 实际上这种情况与 0.00 和 1.00 之间是相同的,总而言之很通畅,过往的车辆可以丝毫不用等待的通过。

      1.00 表示刚好是在这座桥的承受范围内。 这种情况不算糟糕,只是车流会有些堵,不过这种情况可能会造成交通越来越慢。

      超过 1.00,那么说明这座桥已经超出负荷,交通严重的拥堵。 那么情况有多糟糕? 例如 2.00 的情况说明车流已经超出了桥所能承受的一倍,那么将有多余过桥一倍的车辆正在焦急的等待。3.00 的话情况就更不妙了,说明这座桥基本上已经快承受不了,还有超出桥负载两倍多的车辆正在等待。

      上面的情况和处理器的负载情况非常相似。一辆汽车的过桥时间就好比是处理器处理某线程 的实际时间。Unix 系统定义的进程运行时长为所有处理器内核的处理时间加上线程 在队列中等待的时间。

      和收过桥费的管理员一样,你当然希望你的汽车(操作)不会被焦急的等待。所以,理想状态 下,都希望负载平均值小于 1.00 。当然不排除部分峰值会超过 1.00,但长此以往保持这 个状态,就说明会有问题,这时候你应该会很焦急。

      “所以你说的理想负荷为 1.00 ?”

      嗯,这种情况其实并不完全正确。负荷 1.00 说明系统已经没有剩余的资源了。在实际情况中 ,有经验的系统管理员都会将这条线划在 0.70:

      “需要进行调查法则”: 如果长期你的系统负载在 0.70 上下,那么你需要在事情变得更糟糕之前,花些时间了解其原因。

      “现在就要修复法则”:1.00 。 如果你的服务器系统负载长期徘徊于 1.00,那么就应该马上解决这个问题。否则,你将半夜接到你上司的电话,这可不是件令人愉快的事情。

      “凌晨三点半锻炼身体法则”:5.00。 如果你的服务器负载超过了 5.00 这个数字,那么你将失去你的睡眠,还得在会议中说明这情况发生的原因,总之千万不要让它发生。

      那么多个处理器呢?我的均值是 3.00,但是系统运行正常!

      哇喔,你有四个处理器的主机?那么它的负载均值在 3.00 是很正常的。

      在多处理器系统中,负载均值是基于内核的数量决定的。以 100% 负载计算,1.00 表示单个处理器,而 2.00 则说明有两个双处理器,那么 4.00 就说明主机具有四个处理器。

      回到我们上面有关车辆过桥的比喻。1.00 我说过是“一条单车道的道路”。那么在单车道 1.00 情况中,说明这桥梁已经被车塞满了。而在双处理器系统中,这意味着多出了一倍的 负载,也就是说还有 50% 的剩余系统资源 — 因为还有另外条车道可以通行。

      所以,单处理器已经在负载的情况下,双处理器的负载满额的情况是 2.00,它还有一倍的资源可以利用。

      多核与多处理器

      先脱离下主题,我们来讨论下多核心处理器与多处理器的区别。从性能的角度上理解,一台主 机拥有多核心的处理器与另台拥有同样数目的处理性能基本上可以认为是相差无几。当然实际 情况会复杂得多,不同数量的缓存、处理器的频率等因素都可能造成性能的差异。

      但即便这些因素造成的实际性能稍有不同,其实系统还是以处理器的核心数量计算负载均值 。这使我们有了两个新的法则:

      “有多少核心即为有多少负荷”法则: 在多核处理中,你的系统均值不应该高于处理器核心的总数量。

      “核心的核心”法则: 核心分布在分别几个单个物理处理中并不重要,其实两颗四核的处理器 等于 四个双核处理器 等于 八个单处理器。所以,它应该有八个处理器内核。

     

    2. vmstat 查看系统负载

    vmstat
        procs -------memory-------- ----swap-- -----io---- --system-- ----cpu----
        r b   swpd   free buff  cache  si so    bi bo      in cs      us sy id wa
        0 0   100152 2436 97200 289740 0  1     34 45      99  33     0  0  99 0

    procs
    r 列表示运行和等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu。
    b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。


    cpu 表示cpu的使用状态
    us 列显示了用户方式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。
    sy 列显示了内核进程所花费的cpu时间的百分比。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
    wa 列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。
    id 列显示了cpu处在空闲状态的时间百分比


    system 显示采集间隔内发生的中断数
    in 列表示在某一时间间隔中观测到的每秒设备中断数。
    cs列表示每秒产生的上下文切换次数,如当 cs 比磁盘 I/O 和网络信息包速率高得多,都应进行进一步调查。


    memory
    swpd 切换到内存交换区的内存数量(k表示)。如果swpd的值不为0,或者比较大,比如超过了100m,只要si、so的值长期为0,系统性能还是正常
    free 当前的空闲页面列表中内存数量(k表示)
    buff 作为buffer cache的内存数量,一般对块设备的读写才需要缓冲。
    cache: 作为page cache的内存数量,一般作为文件系统的cache,如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率比较好。


    swap
    si 由内存进入内存交换区数量。
    so由内存交换区进入内存数量。


    IO
    bi 从块设备读入数据的总量(读磁盘)(每秒kb)。
    bo 块设备写入数据的总量(写磁盘)(每秒kb)
    这里我们设置的bi+bo参考值为1000,如果超过1000,而且wa值较大应该考虑均衡磁盘负载,可以结合iostat输出来分析。

    3. iostat 查看磁盘负载

    # iostat -x 1 10
    Linux 2.6.18-92.el5xen 02/03/2009
    avg-cpu: %user %nice %system %iowait %steal %idle
    1.10 0.00 4.82 39.54 0.07 54.46
    Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
    sda 0.00 3.50 0.40 2.50 5.60 48.00 18.48 0.00 0.97 0.97 0.28
    sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
    sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
    sdd 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
    sde 0.00 0.10 0.30 0.20 2.40 2.40 9.60 0.00 1.60 1.60 0.08
    sdf 17.40 0.50 102.00 0.20 12095.20 5.60 118.40 0.70 6.81 2.09 21.36
    sdg 232.40 1.90 379.70 0.50 76451.20 19.20 201.13 4.94 13.78 2.45 93.16

    每隔2秒统计一次磁盘IO信息,直到按Ctrl+C终止程序,-d 选项表示统计磁盘信息, -k 表示以每秒KB的形式显示,-t 要求打印出时间信息,2 表示每隔 2 秒输出一次。第一次输出的磁盘IO负载状况提供了关于自从系统启动以来的统计信息。随后的每一次输出则是每个间隔之间的平均IO负载状况。

    rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s
    wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s
    r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s
    w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s
    rsec/s: 每秒读扇区数。即 delta(rsect)/s
    wsec/s: 每秒写扇区数。即 delta(wsect)/s
    rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算)
    wkB/s: 每秒写K字节数。是 wsect/s 的一半。(需要计算)
    avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio)
    avgqu-sz: 平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。
    await: 平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
    svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)
    %util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)

    如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘
    可能存在瓶颈。
    idle小于70% IO压力就较大了,一般读取速度有较多的wait.

    同时可以结合vmstat 查看查看b参数(等待资源的进程数)和wa参数(IO等待所占用的CPU时间的百分比,高过30%时IO压力高)

    4. 获取核心的处理器

    在 Linux 下,可以使用
      cat /proc/cpuinfo
    获取你系统上的每个处理器的信息。如果你只想得到数字,那么就使用下面的命令:
      grep 'model name' /proc/cpuinfo | wc -l

     

    参考:https://blog.csdn.net/u011183653/article/details/19489603

    转载于:https://www.cnblogs.com/shirley-bhu/p/8743377.html

    展开全文
  • linux下c/c++ 实现cpu使用率查询,内存使用率查询,当个程序使用查询 主要应用/proc/stat /proc/meminfo /proc/pid/stat /proc/pid/status 等文件中的内容进行计算
  • linux 负载高,主要是CPU使用、内存的使用、IO消耗三部分。查询linux 负载高,检查:w 或者 uptime 来展示负载蛋壳 load average 分别对应过去1分钟、5分钟、15分钟的负载平均值load :是计算机干活多少的度量...

    linux 负载高,主要是CPU的使用、内存的使用、IO消耗三部分。

    查询linux 负载高,检查:

    w 或者 uptime 来展示负载

    7961d746c1a623528b4d86bdbbc2165e.png

    蛋壳

    load average 分别对应过去1分钟、5分钟、15分钟的负载平均值

    load :是计算机干活多少的度量(WikiPedia:the system Load is a measure of the amount of work that a compute system is doing)

    简单的说就是进程队列的长度。loand average 就是一段时间(1分、5分、15分)内的平均Load

    如何判断系统是否已经over Load :

    对一般的系统来说,根据cpu数量去判断。如果平均负载始终在1.2以下,而你有2颗cup的机器。那么基本不会出现cpu不够用的情况。

    也就是Load平均要小于Cpu的数量,一般是会根据15分钟那个load 平均值为首先。

    top 来查看服务器负载

    78e2a750ecc7a42b92e91bb8dccfaf11.png

    Tasks行展示了目前的进程总数及所处状态,要注意zombie,表示僵尸进程,不为0则表示有进程出现问题。 ------关注 zombie

    Cpu(s)行展示了当前CPU的状态,us表示用户进程占用CPU比例,sy表示内核进程占用CPU比例,id表示空闲CPU百分比,

    wa表示IO等待所占用的CPU时间的百分比。wa占用超过30%则表示IO压力很大。 --------关注 wa

    Mem行展示了当前内存的状态,total是总的内存大小,userd是已使用的,free是剩余的,buffers是目录缓存。

    Swap行同Mem行,cached表示缓存,用户已打开的文件。如果Swap的used很高,则表示系统内存不足。 -----关注swap

    在top命令下,按1,则可以展示出服务器有多少CPU,及每个CPU的使用情况

    shift + "c" : cpu 使用率从大到小排序

    shift + "p" 内存使用率从大到小排序,结合使用很容易定位那些服务使用了较高的CPU和内存。

    iostat 来查看io开销

    d9e906d5787aeea308131c088e31ceab.png

    其中rsec/s表示读入,wsec/s表示每秒写入,这两个参数某一个特别高的时候就表示磁盘IO有很大压力

    util表示IO使用率,如果接近100%,说明IO满负荷运转。

    展开全文
  • 运维需要,当java进程CPU冲高时,经常需要抓jstack,但是结果不直观,以下脚本可以直接按照进程中各个线程CPU使用率的高低进行排序输出; 用法: top下找到对应的pid 然后 sh jstack.sh $pid 可支持终端输出和输出...
  • 更多文章请关注公众号:麻瓜技术闲谈 一、CPU 使用率为了维护 CPU 时间,Linux 通过事先定义的节拍率(内核中表示为 HZ),触发时间中断,并使用全局变量 Jiffies 记录了开机以来的节拍数。每发生一次时间中断,...
  • 在程序开发中,我们一般都是在...那CPU使用率怎么查询,用什么命令查询呢?下面小编就和大家分享几个CPU使用率的几个常用命令。 1、top命令 Top 命令时CPU使用率查询最常用的命令之一,在第三行有显示CPU当...
  • 更多文章请关注公众号:麻瓜技术闲谈 一、CPU 使用率为了维护 CPU 时间,Linux 通过事先定义的节拍率(内核中表示为 HZ),触发时间中断,并使用全局变量 Jiffies 记录了开机以来的节拍数。每发生一次时间中断,...
  • 一、进程查询:  ps -e -o 'pid,comm,... 说明:PCPU是Cpu使用率,8核最多是800。    或者  ps -aux   二、线程查询:  cat /proc/13284/status  说明:13284是进程ID。   转载于:https://w...
  • 最近一台服务器的CPU使用率长期保持在100%的状态,查看进程发现是Mysql服务导致的。于是搜索各方资料,终于成功解决问题。备忘以及分享一下,希望可以帮助各位新手朋友。(服务器运行环境是Windows server2008,Linux...
  • 在php中,可以使用getrusage()获取CPU使用情况,该方法仅适用于linux系统。例子:0[ru_inblock] => 0[ru_msgsnd] => 2[ru_msgrcv] => 3[ru_maxrss] => 12692[ru_ixrss] => 764[ru_idrs...
  • 嵌入式Linux平台查询CPU温度 1. Ubuntu平台:cpuburn CPU burn 官网 在介绍cpuburn时,提到cpuburn只能运行在x86结构CPU上。 PS:因为我的设备是Android设备,没有去尝试cpuburn。有兴趣的同学可以自己尝试一下...
  • linux cpu使用率100%排查

    2020-04-24 17:54:17
    敲了这么久的代码,终于... 查询当前sql正执行的语句 show full processlist 没有找到耗时异常的操作语句 只找到了这么一条语句 SELECT * FROM sec_prize_record limit 11230 , 5 重复多次show full pr...
  • Linux查询cpu情况

    2020-06-03 16:33:21
    先进服务器,用top -c 命令找出当前进程的运行列表(cpu占用从大到小) 显示Java进程 PID 为 2609 的java进程消耗最高 然后我们需要根据PID 查出CPU里面消耗最高的进程 使用命令 top -Hp 2609 找出这个进程下面...
  • 更多文章请关注公众号:麻瓜技术闲谈一、CPU 使用率为了维护 CPU 时间,Linux 通过事先定义的节拍率(内核中表示为 HZ),触发时间中断,并使用全局变量 Jiffies 记录了开机以来的节拍数。每发生一次时间中断,...
  • 作为Linux运维工程师系统维护过程中,需要我们经常查看服务器CPU使用率、内存使用率、带宽占用,从资源使用的程度分析系统整体的运行情况。 在 Linux 香港服务器上查看资源使用情况有很多命令可以参考,CPU、内存、...
  • 问题现象:Linux下Oracle进程CPU使用率过高处理方式 问题分析:一般cpu占用效高都是排序、sql解析和全表扫描,这里首先需要找出占用cpu最高的sql,然后查看他的执行计划,比如:看执行计划是走索引还是全表扫描(刚...
  • 今天使用MobaXterml 连接上一台物联网的Linux服务器的使用,发现该服务器的CPU使用率一直在100%左右。使用top 命令发现Mysql占用了大量的CPU用数据库工具 Navicat premium 以 root 的身份连接数据库,执行查询语句:...
  • 数据库很小(最大的表约为12k行)我在my.conf中启用了慢查询登录,但没有记录查询.错误日志文件不包含任何有用的信息(实际上它是空的)这是服务器规格中央处理器hw.machine: amd64hw.model: Intel...
  • 作为Linux运维工程师系统维护过程中,需要我们经常查看CPU使用率、内存使用率、带宽占用,从资源使用的程度分析系统整体的运行情况。在 Linux 上查看资源使用情况有很多命令可以参考,CPU、内存、IO、NETWORK等资源...
  • 更多文章请关注公众号:麻瓜技术闲谈 一、CPU 使用率为了维护 CPU 时间,Linux 通过事先定义的节拍率(内核中表示为 HZ),触发时间中断,并使用全局变量 Jiffies 记录了开机以来的节拍数。每发生一次时间中断,...
  • 自然的,Linux也提供了非常多的方法来监控宝贵的内存资源的使用情况。下面的清单详细的列出了Linux系统下通过视图工具或命令行来查看内存使用情况的各种方法。1. /proc/meminfo查看RAM使用情况最简单的方法是通过/...
  • 本文定位:想通过python调用top命令获取cpu使用率但暂时没有思路的情况。 如果单纯为了获得cpu的利用率,通过top命令重定向可以轻松实现,命令如下: 复制代码 代码如下: top -bi > cpuHistory.log 或 复制代码 代码...
  • 输入:topPID:进程的ID...S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数%CPU:进程占用CPU使用率%MEM:进程使用的物理内存和总内存的百分比TIME+:该进程启动后占用的总的CPU时间,即占用CP...
  • 为了维护 CPU 时间,Linux 通过事先定义的节拍(内核中表示为 HZ),触发时间中断,并使用全局变量 Jiffies 记录了开机以来的节拍数。每发生一次时间中断,Jiffies 的值就加 1。 1. 内核节拍与用户空间节拍 ...
  • 1.使用命令cat /proc/meminfo 根据以上命令可以得知: memtotal:3881812Kb 其物理内存是3.8G 可供剩余调用的内存是 106184也就是103M: 以下就是测量一个进程在运行的时候占用了多少个内存的验证方法: ...
  • 可能答非所问,不过在linux下最好的用的莫过于psutil了,你可以通过进程名或pid很好的监控任意进程的系统占用情况,甚至进程建立的每个连接都能获取到>>>importpsutil>>>psut...
  • 查看Linux系统内存、CPU、磁盘使用率和详细信息 一、查看内存占用 1、free # free -m 以MB为单位显示内存使用情况 # free -h 以GB为单位显示内存使用情况 # free -t 以总和的形式查询内存的使用信息 ...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 161
精华内容 64
关键字:

linux查询cpu使用率

linux 订阅