GCP VM - 仅使用运行Keras脚本的30%资源

时间:2018-04-19 10:44:20

标签: python linux keras google-cloud-platform

我在GCP VM的分离屏幕上运行Keras脚本(n1-standard-16(16个vCPU,60 GB内存),并且符合GCP的CPU使用率徘徊在30%左右。我听说python 32位最多只能使用4GB的内存,但是我检查了一下,我使用的是64位64位的Python。我已经运行顶级,输出低于。

有人可以解释为什么脚本无法更多地利用VM资源容量吗?此外,有人可以解释为什么CPU显示超过100%?

top - 10:40:45 up  3:47,  1 user,  load average: 4.83, 4.47, 4.47
Tasks: 184 total,   1 running, 183 sleeping,   0 stopped,   0 zombie
%Cpu(s): 17.2 us,  8.6 sy,  0.0 ni, 74.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 61851636 total,  4809744 free, 55865760 used,  1176132 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  5384248 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                                                                           
 3076 delaicog  20   0 56.465g 0.052t 107064 S 453.5 89.8 350:51.07 python3                                                                                                                                                                           
 3511 delaicog  20   0   42956   3708   2944 R   0.3  0.0   0:00.19 top 

1 个答案:

答案 0 :(得分:0)

要了解您的CPU显示为+ 100%的原因,您必须查看平均负载,即:

 load average: 4.83, 4.47, 4.47

这三个值分别代表最后1分钟,5分钟和15分钟的平均负载。

平均负载为1.00表示您正在使用CPU的容量,而不是更少,并且不需要更多。这意味着您的CPU容量完全符合您的需求。

当你开始超过1.00时,这意味着你需要更多处理能力。此时,工作开始堆积并排队,系统性能受到影响。

正如您所见,平均负载约为4意味着,要执行所有过程,您需要的处理能力大约为x4。通过将CPU负载显示为400%来表示在%CPU上。

如果你的脚本不是多线程的话,你有16个vCPU并不重要,所以你现在的瓶颈就是每个核心的性能。

这也是你没有使用更多RAM的原因,即使它可用。没有必要,所有系统都在等待处理器完成计算,即使有更多可用资源(更多核心,更多RAM),也不会因为不需要而使用它们。