Java -AbandonedConnectionCleanupThread требует больше процессорного времени

Мое приложение считывает данные из csv и вставляет в mysql.it, занимая больше процессора.

Когда я отлаживал ниже, поток jdbc потребляет больше процессора.

com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:40) 

Сентос,

1.верх

7435 root      20   0 7677556 366436  14528 S  86.4  4.8  67:05.60 java

2. верх

top -n 1 -H -p 7435
top - 15:48:23 up 57 days, 21 min, 11 users,  load average: 0.47, 0.53, 0.62
Threads:  28 total,   1 running,  27 sleeping,   0 stopped,   0 zombie
%Cpu(s):  4.9 us,  3.3 sy,  0.0 ni, 91.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  7650496 total,   188012 free,  1122392 used,  6340092 buff/cache
KiB Swap: 16777212 total, 16775664 free,     1548 used.  5914108 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 7595 root      20   0 7677556 345864  14528 R 60.0  4.5 142:04.27 java
 7435 root      20   0 7677556 345864  14528 S  0.0  4.5   0:00.00 java
 7436 root      20   0 7677556 345864  14528 S  0.0  4.5   0:01.24 java
 7454 root      20   0 7677556 345864  14528 S  0.0  4.5   1:06.92 java
 7459 root      20   0 7677556 345864  14528 S  0.0  4.5   1:07.11 java

Есть идеи?

ExecutorService service=Executors.newFixedThreadPool(count);
            FileAlterationObserver fao = new FileAlterationObserver(folder);
            fao.addListener(new FileListener(service));
            final FileAlterationMonitor monitor = new FileAlterationMonitor(Integer.parseInt("100"));
            monitor.addObserver(fao);
            monitor.start();

Всякий раз, когда листнер получает csv, я отправляю его в службу Excutor.

service.submit(new PerformanceFileReader(f));

Это не воспроизводится в Windows, это только в ОС типа Linux.

Abdul Hameed M 02.04.2019 12:37

Если вы правильно закрываете объекты Connection в коде, в AbandonedConnectionCleanupThread нет необходимости. Вот почему некоторые пулы просто не имеют этой функции, например. HikariCP.

Karol Dowbecki 02.04.2019 12:42

Я правильно закрываю все соединения

Abdul Hameed M 02.04.2019 12:49
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
151
0

Другие вопросы по теме