簡體   English   中英

在Docker上運行的Spring Cloud Netflix App被容器殺死了嗎?

[英]Spring Cloud Netflix apps running on Docker are killed by the container why?

我正在測試一些Spring Cloud Netflix微服務,它們在Windows上作為單獨的Docker容器運行。

其中有很多,十個或更多。 關鍵是,在運行其中一些7、8 ...之后,應用程序的性能開始下降,並且某些容器被殺死,例如,我看到:

2017-01-24 14:05:52.165  INFO 5 --- [nfoReplicator-0] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@67b129a3: startup date [Tue Jan 24 14:05:52 GMT 2017]; root of context hierarchy
Killed
  • 為什么性能會受到影響?
  • 這是內存問題嗎? 我該如何解決?
  • 如何防止我的容器化Java應用程序被殺死?

我為應用程序使用了相同的Dockerfile(它們每個都更改了ADD命令):

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD archimedes-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

我想知道是否有必要提供-Xms和-Xmx標志以強制最小/最大可用內存...

另一方面,我啟動的容器越多,應用程序的響應就越慢...但是Window的任務管理器沒有顯示CPU / RAM耗盡。 也許我必須調整Windows Docker安裝?

可以在這里找到代碼: https : //github.com/codependent/storyteller-microservices/tree/high-availability-rxjava

要啟動每個微服務,在每個文件夾下都有一個startContainer.sh,其中顯示了我正在使用的docker命令,例如:

mvn clean package docker:build -DskipTests
docker run -e "SPRING_PROFILES_ACTIVE=archimedes1" -p 8761:8761 \
  --name archimedes1 --add-host archimedes1:192.168.99.100 --add-host archimedes2:192.168.99.100 --add-host my-rabbit:192.168.99.100 \
  -d storyteller/archimedes 
docker run -e "SPRING_PROFILES_ACTIVE=archimedes2" -p 8762:8762 \
  --name archimedes2 --add-host archimedes1:192.168.99.100 --add-host archimedes2:192.168.99.100 --add-host my-rabbit:192.168.99.100 -d storyteller/archimedes

我通過為VirtualBox分配更多內存來修復它:在設置視圖的“系統”選項卡->“基本內存4GB”中。

這樣,容器運行平穩且不會被殺死。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM