在Centos 7上使用大量CPU的Virtualbox或KVM Minikube

在Centos 7上使用大量CPU的Virtualbox或KVM Minikube,virtualbox,kvm,minikube,Virtualbox,Kvm,Minikube,我已经按照kubernetes的指示安装了minikube。 在启动它并等待了一段时间后,我注意到它使用了大量的CPU,尽管我没有在其中运行什么特别的东西 top显示以下内容: %Cpu(s): 0.3 us, 7.1 sy, 0.5 ni, 92.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 32521856 total, 2259992 free, 9882020 used, 20379844 buff/cache KiB S

我已经按照kubernetes的指示安装了minikube。 在启动它并等待了一段时间后,我注意到它使用了大量的CPU,尽管我没有在其中运行什么特别的东西

top
显示以下内容:

%Cpu(s):  0.3 us,  7.1 sy,  0.5 ni, 92.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 32521856 total,  2259992 free,  9882020 used, 20379844 buff/cache
KiB Swap:  2097144 total,   616108 free,  1481036 used. 20583844 avail Mem 

 PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                     
4847 root      20   0 3741112  91216  37492 S  52.5  0.3   9:57.15 VBoxHeadless  
lscpu
显示以下内容:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    2
Core(s) per socket:    4
Socket(s):             1
NUMA node(s):          1
Vendor ID:             AuthenticAMD
CPU family:            21
Model:                 2
Model name:            AMD Opteron(tm) Processor 3365
如果我使用KVM而不是VirtualBox,我会看到同样的效果

kubectl get services

NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   20m
问题:

1) 有没有可能找出它为什么使用这么多CPU?(请注意,我没有生成任何加载,并且我的任何容器都没有处理任何数据)


2) 正常吗?

你确定没有任何东西在运行吗?如果键入
kubectl get pods--all namespace
,会发生什么?默认情况下,Kubernetes仅显示默认名称空间内的POD(因此不包括系统名称空间内的POD)

此外,虽然我不是CPU专家,但这似乎是您现有硬件的合理消耗。

在回答问题1时):

您可以
ssh
进入minikube,然后从那里运行
top
查看正在运行的进程:

minikube ssh
top
有很多docker和kublet的东西在运行:

top - 21:43:10 up  8:27,  1 user,  load average: 10.98, 12.00, 11.46
Tasks: 148 total,   1 running, 147 sleeping,   0 stopped,   0 zombie
%Cpu0  :  15.7/15.7   31[||||||||||||||||||||||||||||||||                                                                    ]
%Cpu1  :   6.0/10.0   16[||||||||||||||||                                                                                    ]
GiB Mem : 92.2/1.9      [                                                                                                    ]
GiB Swap:  0.0/0.0      [                                                                                                    ]

11842 docker    20   0   24.5m   3.1m   0.7   0.2   0:00.71 R                  `- top                                                                                           
 1948 root      20   0  480.2m  77.0m   8.6   4.1  27:45.44 S  `- /usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --tlsverify --tlscacert /etc/docker/ca+ 
...
 3176 root      20   0   10.1g  48.4m   2.0   2.6  17:45.61 S              `- etcd --advertise-client-urls=https://192.168.39.197:2379 --cert-file=/var/lib/minikube/certs/etc+ 
这两个进程的处理器时间分别为27小时和17小时


回答问题2):不知道,但可能是。请参阅@alassane ndiaye的答案

您可以运行命令
kubectl top node
kubectl top pod--containers
,以查看更详细的指标。
kubectl top node minikube
起作用。但是我没有运行任何吊舱,这就是为什么这么多CPU被使用的原因。嗨!你找到解决方案了吗?P.S.如果有人感兴趣,我已经注意到Minikube无法在超过2-4个内核上正常运行,它似乎是一个非常未优化的带有活锁的软件,它在空闲模式下消耗40%的资源,如果我给它更多的CPU(6,7..在我的12核桌面上),它的启动速度会慢好几倍Minikube在2020年改进了其性能,但是。到目前为止,我还没有意识到任何解决方案。好吧@alassane ndiaye,没错,还有kube系统的东西——我用新信息更新了帖子。请注意,虽然我没有生成任何负载,而且我的容器都没有处理任何数据,所以说minikube应该占用这么多CPU是很奇怪的。它在做什么?它必须协调所有容器,这不是一件容易的任务。如您所见,有许多组件是使kubernetes发挥最小功能所必需的,如API服务器、etcd存储、各种管理器等等。一般来说,高度分布式的系统必须做大量的工作,以确保系统保持一致性和高可用性,这使得它们比单片系统使用更多的资源。我也不是kubernetes内部的专家:PHi你应该验证为什么有这么大的交换空间。您还可以在启动期间更改minikube参数:minikube start--v=10--cpu 4--memory 8192。请考虑并禁用交换。
top - 21:43:10 up  8:27,  1 user,  load average: 10.98, 12.00, 11.46
Tasks: 148 total,   1 running, 147 sleeping,   0 stopped,   0 zombie
%Cpu0  :  15.7/15.7   31[||||||||||||||||||||||||||||||||                                                                    ]
%Cpu1  :   6.0/10.0   16[||||||||||||||||                                                                                    ]
GiB Mem : 92.2/1.9      [                                                                                                    ]
GiB Swap:  0.0/0.0      [                                                                                                    ]

11842 docker    20   0   24.5m   3.1m   0.7   0.2   0:00.71 R                  `- top                                                                                           
 1948 root      20   0  480.2m  77.0m   8.6   4.1  27:45.44 S  `- /usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --tlsverify --tlscacert /etc/docker/ca+ 
...
 3176 root      20   0   10.1g  48.4m   2.0   2.6  17:45.61 S              `- etcd --advertise-client-urls=https://192.168.39.197:2379 --cert-file=/var/lib/minikube/certs/etc+