docker - 了解Docker容器cpu的用法

标签 docker microservices

docker stats显示cpu的使用率很高。但是top命令显示未使用88.3%的cpu。容器内部是一个Java服务httpthrift服务。

docker stats :
CONTAINER           CPU %               MEM USAGE / LIMIT    MEM %               NET I/O             BLOCK I/O           PIDS
8a0488xxxx5        540.9%             41.99 GiB / 44 GiB   95.43%              0 B / 0 B           0 B / 35.2 MB       286

最高输出:
top - 07:56:58 up 2 days, 22:29,  0 users,  load average: 2.88, 3.01, 3.05
Tasks:  13 total,   1 running,  12 sleeping,   0 stopped,   0 zombie
%Cpu(s):  8.2 us,  2.7 sy,  0.0 ni, 88.3 id,  0.0 wa,  0.0 hi,  0.9 si,  0.0 st
KiB Mem:  65959920 total, 47983628 used, 17976292 free,   357632 buffers
KiB Swap:  7999484 total,        0 used,  7999484 free.  2788868 cached Mem

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                               
  8823 root      20   0 58.950g 0.041t  21080 S 540.9 66.5  16716:32 java 

如何减少cpu的使用率并将其控制在100%以下?

最佳答案

根据top man page:

When operating in Solaris mode (`I' toggled Off), a task's cpu usage will be divided by the total number of CPUs. After issuing this command, you'll be told the new state of this toggle.



因此,在交互模式下使用top时,通过按I键,您将切换到Solaris模式,CPU使用率除以CPU(或内核)总数。

附注:此选项并非在所有版本的top中都可用。

关于docker - 了解Docker容器cpu的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60259135/

相关文章:

java - 来自在 Fargate 集群上的 AWS ECS docker 容器中运行的 java 应用程序的 UnknownHostException

docker - 如何删除早于 X 且未使用的 docker 镜像

git - 部署到 Digital Ocean 时 Dokku 推送导致管道破裂

docker - 用于多个服务的 protected Httponly cookie

spring-boot - 事务发件箱模式与微服务中的 ChainedKafkaTransactionManager

microservices - 我们还需要一个连接池来连接 HTTP2 的微服务吗?

java - 有界上下文在微服务世界中意味着什么?

c# - 如何在c#中监听序列化的Azure Message Bus消息?

linux - shell形式的docker入口点可以使用运行时命令args吗?

docker - 更改静态目录的所有权在kubernetes中不起作用