玩框架exception的CPU负载

最近我们开始使用PlayFramework,并在CPU负载中看到一些不寻常的活动。

机器细节和其他configuration:

32G Machine 12 Cores PlayFramework 2.2.0 java -Xms1024m -Xmx1024m -XX:MaxPermSize=256m -XX:ReservedCodeCacheSize=128m java applications are running within a docker container(Docker version 0.8.0). 

有6个播放服务器运行在nginx后面

 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 31752 root 20 0 7876m 1.2g 14m S 716 3.8 150:55.28 java 26282 root 20 0 7862m 1.2g 14m S 48 3.8 310:51.65 java 56449 root 20 0 7789m 389m 13m S 2 1.2 0:33.10 java 40006 root 20 0 7863m 1.2g 14m S 2 3.8 17:56.41 java 42896 root 20 0 7830m 1.2g 14m S 1 3.8 15:10.30 java 52119 root 20 0 7792m 1.2g 14m S 1 3.7 8:48.38 java 

请求率在最大100Req / s。

有没有人遇到过类似的问题? 请告诉我。

我遇到类似的问题。 但是,我只是在我的机器上的开发设置有问题:

  • 玩! 应用程序通过运行启动
  • docker集装箱内
  • 在虚拟机内运行

– >虚拟机内部100%的CPU负载

问题在我们的实际环境中存在,在这个环境中,应用程序通过启动脚本预打包运行。 我们也将它运行在Docker容器中(它依次运行在EC2 VM中)。

所以看起来就像在我的情况下玩游戏运行有所作为 – 您是否使用Play运行在Docker容器内启动您的应用程序?

编辑:另外,似乎有一个错误在Netty相关epollselect器 : http : //www.electrotank.com/forums/showthread.php?12927-Well-Known-JDK- bug-in-Netty https:// code.google.com/p/spymemcached/issues/detail?id=279

第二个链接描述了一个解决方法,包括将-XX:CMSInitiatingOccupancyFraction JVM参数设置为80或其他。

在我的情况下,这并没有帮助,但…

你可能会考虑分析你的java进程,例如使用

 sudo strace -cf -p <pid> 

看看有没有可疑的东西出现

你如何运行该应用程序? 在运行时,我经历了类似的高负载play ~run ,因为它不断监视文件的变化。