如何将cpu分配给进程?

时间:2016-09-08 06:06:24

标签: tomcat cpu monitoring performance-testing cpu-architecture

在我的环境中,我们遇到了超过200%的高CPU使用率问题但我们使用的是14cpus服务器。主要是在Tomcat进程的情况下。你能解释一下cpu如何分配给一个进程吗?

1 个答案:

答案 0 :(得分:1)

我从未在Windows上看到过> 100%,所以我假设您在某些Unix / Linux发行版上运行。

在14核机器上,您可能会看到CPU爬升率高达1400% - 因为您的14个内核中的每个核心都拥有0 - > 100%的容量。

使用top,然后按下数字1,将显示每个核心的使用情况。

top - 02:10:29 up 124 days,  4:52,  1 user,  load average: 0.25, 0.29, 0.28
Tasks: 153 total,   1 running, 152 sleeping,   0 stopped,   0 zombie
%Cpu0  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  1.2 us,  0.0 sy,  0.0 ni, 98.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  1.2 us,  0.0 sy,  0.0 ni, 98.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  1.2 us,  1.2 sy,  0.0 ni, 97.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 16431812 total,   716508 free,  5590424 used, 10124880 buff/cache
KiB Swap:  8265724 total,  7145596 free,  1120128 used. 10221956 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
25836 mclark    20   0  146100   2028   1412 R   1.2  0.0   0:00.02 top
32532 root      20   0       0      0      0 S   1.2  0.0   0:02.18 kworker/2:0
    1 root      20   0  310388 123720   2764 S   0.0  0.8  50:34.97 systemd
    2 root      20   0       0      0      0 S   0.0  0.0   0:05.13 kthreadd

显然,如果您的流程使用> 100%,则为multithreading,如果流程仅使用单个线程,则只能在单个核心上运行。