具有大量CPU使用的Docker Java 8容器

我们目前正在dockerize一个Java 8应用程序,我们有一个非常奇怪的行为。 在docker之外,应用程序使用不到10%的cpu,但是当我们将应用程序运行到一个容器中时,我们有100%的CPU使用率。

容器内部(使用docker exec -it [container-id] top ),jar只使用cpu的10%。

我们试图使用openjdk这样的其他基础docker镜像,但是它没有任何改变。

Docker文件:

 FROM anapsix/alpine-java:8 ADD . /producer WORKDIR /producer COPY ikb-1.0-SNAPSHOT-producer.jar ikb-1.0-SNAPSHOT-producer.jar COPY resources/ /resources/ CMD ["java", "-jar", "ikb-1.0-SNAPSHOT-producer.jar"] 

我们用:

  • Docker版本: 1.13.1,build 092cba3
  • Docker-compose版本: 1.11.2,build dfed245
  • 服务器操作系统: CentOS

正如我们的聊天中所讨论的那样,Java应用程序中有一个线程在紧密循环中旋转,因为没有用户input。 停止该线程导致CPU返回到它所属的位置。