Ontem, depois de instalar as atualizações diárias de software, experimentei alto uso da CPU em um aplicativo Java que funcionava bem até então. Java estava entre os pacotes atualizados. De /var/log/apt/history.log
:
Start-Date: 2015-10-29 07:18:28
Commandline: aptdaemon role='role-commit-packages' sender=':1.108'
Install: libsctp1:amd64 (1.0.16+dfsg-2), lksctp-tools:amd64 (1.0.16+dfsg-2, automatic)
Upgrade: python3-problem-report:amd64 (2.17.2-0ubuntu1.5, 2.17.2-0ubuntu1.7), qtcreator-plugin-ubuntu-common:amd64 (3.1.1+15.10.20150720-0ubuntu1~0vivid1, 3.1.1+15.10.20151018-0ubuntu1~0vivid1), python-apport:amd64 (2.17.2-0ubuntu1.5, 2.17.2-0ubuntu1.7), ubuntu-sdk-qmake-extras:amd64 (3.1.1+15.10.20150720-0ubuntu1~0vivid1, 3.1.1+15.10.20151018-0ubuntu1~0vivid1), libapache2-mod-php5:amd64 (5.6.4+dfsg-4ubuntu6.3, 5.6.4+dfsg-4ubuntu6.4), php5-mysql:amd64 (5.6.4+dfsg-4ubuntu6.3, 5.6.4+dfsg-4ubuntu6.4), php5-common:amd64 (5.6.4+dfsg-4ubuntu6.3, 5.6.4+dfsg-4ubuntu6.4), php5-curl:amd64 (5.6.4+dfsg-4ubuntu6.3, 5.6.4+dfsg-4ubuntu6.4), php5-dev:amd64 (5.6.4+dfsg-4ubuntu6.3, 5.6.4+dfsg-4ubuntu6.4), python-problem-report:amd64 (2.17.2-0ubuntu1.5, 2.17.2-0ubuntu1.7), qtcreator-plugin-ubuntu:amd64 (3.1.1+15.10.20150720-0ubuntu1~0vivid1, 3.1.1+15.10.20151018-0ubuntu1~0vivid1), php5-readline:amd64 (5.6.4+dfsg-4ubuntu6.3, 5.6.4+dfsg-4ubuntu6.4), php5:amd64 (5.6.4+dfsg-4ubuntu6.3, 5.6.4+dfsg-4ubuntu6.4), openjdk-7-jdk:amd64 (7u79-2.5.6-0ubuntu1.15.04.1, 7u85-2.6.1-5ubuntu0.15.04.1), shotwell-common:amd64 (0.20.2-0ubuntu3, 0.20.2-0ubuntu4), shotwell:amd64 (0.20.2-0ubuntu3, 0.20.2-0ubuntu4), openjdk-7-jre-headless:amd64 (7u79-2.5.6-0ubuntu1.15.04.1, 7u85-2.6.1-5ubuntu0.15.04.1), ntp:amd64 (4.2.6.p5+dfsg-3ubuntu6, 4.2.6.p5+dfsg-3ubuntu6.2), apport-kde:amd64 (2.17.2-0ubuntu1.5, 2.17.2-0ubuntu1.7), php5-cli:amd64 (5.6.4+dfsg-4ubuntu6.3, 5.6.4+dfsg-4ubuntu6.4), openjdk-7-jre:amd64 (7u79-2.5.6-0ubuntu1.15.04.1, 7u85-2.6.1-5ubuntu0.15.04.1), openjdk-7-source:amd64 (7u79-2.5.6-0ubuntu1.15.04.1, 7u85-2.6.1-5ubuntu0.15.04.1), apport-gtk:amd64 (2.17.2-0ubuntu1.5, 2.17.2-0ubuntu1.7), apport:amd64 (2.17.2-0ubuntu1.5, 2.17.2-0ubuntu1.7), php-pear:amd64 (5.6.4+dfsg-4ubuntu6.3, 5.6.4+dfsg-4ubuntu6.4), libaudiofile1:amd64 (0.3.6-2, 0.3.6-2ubuntu0.15.04.1), icedtea-7-jre-jamvm:amd64 (7u79-2.5.6-0ubuntu1.15.04.1, 7u85-2.6.1-5ubuntu0.15.04.1), openjdk-7-doc:amd64 (7u79-2.5.6-0ubuntu1.15.04.1, 7u85-2.6.1-5ubuntu0.15.04.1), python3-apport:amd64 (2.17.2-0ubuntu1.5, 2.17.2-0ubuntu1.7), php5-gd:amd64 (5.6.4+dfsg-4ubuntu6.3, 5.6.4+dfsg-4ubuntu6.4), ntpdate:amd64 (4.2.6.p5+dfsg-3ubuntu6, 4.2.6.p5+dfsg-3ubuntu6.2)
End-Date: 2015-10-29 07:19:15
Enquanto o aplicativo está em execução, tanto java
quanto Xorg
usam mais de 50% da CPU. Isso está causando lentidão geral no aplicativo e tenho certeza de que não era o caso no passado.
A aplicação é na verdade um jogo (baseado em swing). Embora seja de código aberto, suponho que não seja adequado para um instrumento , por isso não posso usá-lo para enviar um relatório de bug. Além disso, eu não sei onde eu poderia denunciar.
Minha pergunta é: como posso descobrir o que está errado, para que eu possa relatar um bug em algum lugar (onde?) e ajudar a corrigir o problema?
Eu fiz um dump de thread , mas eu não sei o que fazer com ele, já que nenhum thread é realmente bloqueado.
Meu ambiente:
$ java -version
java version "1.7.0_85"
OpenJDK Runtime Environment (IcedTea 2.6.1) (7u85-2.6.1-5ubuntu0.15.04.1)
OpenJDK 64-Bit Server VM (build 24.85-b03, mixed mode)
$ uname -a
Linux pif 3.19.0-31-generic #36-Ubuntu SMP Wed Oct 7 15:04:02 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 15.04
Release: 15.04
Codename: vivid
Eu dei uma olhada com o VisualVM e notei que o uso da CPU relatado lá (10%) é muito menor que o reportado por top
(45%):
Outra coisa que eu tentei foi executá-lo com o Java 8. Nesse caso, o jogo é executado corretamente e o uso da CPU informado por top
é de cerca de 20-22% para cada um deles: java
, Xorg
e compiz
.