У нас есть несколько процессов, работающих на многоядерной (8 ядер) виртуальной машине. Большинство из них являются Java. На другой коробке, которая не V, они работают нормально. Но на этот раз все кажется вялым время от времени.
top показывает 99% загрузки процессора, но ИТ-специалисты говорят, что это не проблема, поскольку его 8-ядерное.
В любом случае, чтобы узнать, доступны ли все 8 или только несколько ядер для процессов Java (из-за некоторой неправильной конфигурации в виртуальных машинах)?
Есть ли способ узнать, затрагиваются ли процессы Java Сканером, который загружает 50% из 2 ядер? В Windows можно увидеть это в диспетчере задач https://ibb.co/mNJhqF , наш сервер не с графическим интерфейсом, поэтому нужна команда терминала (ов)
Любая команда / шаги, чтобы узнать, сколько процессорного времени требуется Java-процессам по сравнению с тем, что они получают?
Ниже приводится вывод top (после ввода 1, чтобы увидеть использование каждого ядра. Удалены лишние пробелы поэтому можно хорошо отформатировать в электронной таблице, заменив "" на "" и "\ n" на "")
top - 15:05:33 up 56 days, 13:35, 7 users, load average: 1.06, 1.08, 1.06
Tasks: 482 total, 2 running, 480 sleeping, 0 stopped, 0 zombie
%Cpu0 : 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 0.3 us, 0.7 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 99.0 us, 0.7 sy, 0.0 ni, 0.0 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu4 : 0.3 us, 1.0 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu5 : 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu6 : 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu7 : 0.7 us, 0.7 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 32934880 total, 32335788 used, 599092 free, 942292 buffers
KiB Swap: 9202684 total, 1338100 used, 7864584 free. 10891396 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
14445 AVuser 20 0 376708 143972 3772 R 99.4 0.4 5:10.55 scanner
11045 user1 20 0 7162456 662720 11024 S 0.7 2.0 11:27.62 java
15685 root3 20 0 25.125g 585900 5300 S 0.7 1.8 156:19.28 java
123326 root3 20 0 5598660 218820 9792 S 0.7 0.7 15:43.57 java
12942 user1 20 0 5366300 409164 5984 S 0.3 1.2 203:47.47 java
14685 user1 20 0 34856 2088 1236 R 0.3 0.0 0:00.08 top
46018 user1 20 0 6417468 464356 15336 S 0.3 1.4 3:46.92 java
46645 user1 20 0 11.936g 2.837g 15020 S 0.3 9.0 3:53.25 java
47504 user1 20 0 3654616 41888 12124 S 0.3 0.1 1:52.82 java
47528 user1 20 0 5683220 316128 15408 S 0.3 1.0 2:51.20 java
122516 root3 20 0 12.371g 176716 9160 S 0.3 0.5 3:36.29 java
122701 root3 20 0 12.374g 177420 9216 S 0.3 0.5 4:00.00 java
122848 root3 20 0 12.373g 172008 9176 S 0.3 0.5 3:43.66 java
129623 user1 20 0 3654624 48728 10472 S 0.3 0.1 3:03.76 java
129653 user1 20 0 6650800 401032 12188 S 0.3 1.2 7:30.19 java
130620 root3 20 0 3645888 44848 6696 S 0.3 0.1 15:05.26 java
Обновления: в одной физической системе включено 8 виртуальных машин. Диски находятся в одной физической системе.
1 В ВМ есть процессы java, которые общаются с mysql и записывают журналы (последний log4j, с async); 3 из java-процессов действительно записывают небольшие текстовые файлы в свои исходящие, но они работают нормально - удаление после обработки в течение нескольких секунд
1 ВМ для mysql (с открытым исходным кодом) немного более защищено. Все они убунту 14.04 LTS.
Ввод / вывод - должен быть минимальным. Как я могу проверить это? Есть ли какая-нибудь утилита, которую я могу написать в моей локальной системе разработчиков, а затем на ВМ?