Я пытаюсь написать программу, которая использует JMX, чтобы найти процент использования ЦП для активности GC JVM в этот момент времени (или для небольшого подмножества времени говорят 1 сек), аналогично тому, что JVisualVM. Используя JMX, я могу найти GarbageCollectionTime, когда цикл GC lasdt начался и закончился. Но пока не нашли способ конвертировать эту информацию в загрузку процессора для GC.Процент CPU, используемый GC с помощью JMX
ответ
Ну, вы не сможете найти ответ программно. GC будет использовать 100% доступного процессора. Реальный вопрос: «Сколько CPU доступно?»
Серийный ГХ (
-XX:+UseSerialGC
) будет использовать один процессор.Параллельные коллекторы (
-XX:+UseParallelGC
,-XX:+UseParallelOldGC
и-XX:+UseParNewGC
) будет использовать количество CPU вы даете (-XX:ParallelGCThreads=N
), или все из них, если не указан номерВ основном-параллельные коллекторы (
-XX:+UseConcMarkSweepGC
и-XX:+UseG1GC
) будет использовать количество CPU вы даете (-XX:ConcGCThreads=N
), или Половину из них, если не указан номер
Обратите внимание, что, с CMS и G1, вы можете установить некоторые цели к GC со следующими параметрами:
-XX:MaxGCPauseMillis=X
будет установить максимальное время цели паузы в миллисекундах:-XX:GCPauseIntervalMillis=<X>
задаст минимальный интервал цели между двумя циклами GC
Источник: http://jvm-options.tech.xebia.fr/
Вы можете найти советы по разбору журналов iCMS на this page и советы по настройке GC на this page.
Надеюсь, что это поможет!
Что я имел в виду, чтобы получить информацию, аналогичную той, что вы можете найти с помощью VisualVM , В данный момент времени GC использует целое ядро (или больше), или это не происходит, когда я говорю, что процент больше в течение периода времени, например, процента от времени, проведенного в GC за последние 1 секунду. – Ritwaj
Последовательный и параллельный GC являются STW и начинаются, когда пулы памяти заполнены, поэтому вы не можете их ограничить. Вы можете установить цели для CMS и G1, я отредактировал свой ответ с дополнительной информацией. –
К сожалению, эта информация недоступна через JMX (отображение IMHO VisualVM на дисплее не соответствует времени GC CPU).
Вы можете использовать jstat -gc <pid>
для сбора использования центрального процессора для использования в JVM.
jstat -gc <pid> 1s
будет производить что-то вроде этого
S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT
6528.0 6528.0 6523.9 6528.0 52480.0 51600.0 2097152.0 1697279.8 21248.0 5647.8 39 6.873 5 11.685 18.559
6528.0 6528.0 0.0 6528.0 52480.0 13355.5 2097152.0 1794839.9 21248.0 5649.8 41 7.322 5 11.685 19.008
6528.0 6528.0 0.0 6528.0 52480.0 27790.8 2097152.0 1884439.9 21248.0 5649.8 43 7.646 5 11.685 19.332
6528.0 6528.0 0.0 6528.0 52480.0 50942.9 2097152.0 1974055.9 21248.0 5649.8 46 7.969 5 11.685 19.654
- YGCT - процессорного времени секунды, потребляемые небольшими коллекциями с начала виртуальной машины Java
- FGCT - процессорного времени секунд потребляемый небольшими коллекциями с начала виртуальной машины Java
- GCT - сумма выше
Maybe jvmtop может помочь вам (взгляните на GC
колонке)
JvmTop 0.3 alpha (expect bugs) amd64 8 cpus, Linux 2.6.32-27, load avg 0.12
http://code.google.com/p/jvmtop
PID MAIN-CLASS HPCUR HPMAX NHCUR NHMAX CPU GC VM USERNAME #T DL
3370 rapperSimpleApp 165m 455m 109m 176m 0.12% 0.00% S6U37 web 21
11272 ver.resin.Resin [ERROR: Could not attach to VM]
27338 WatchdogManager 11m 28m 23m 130m 0.00% 0.00% S6U37 web 31
19187 m.jvmtop.JvmTop 20m 3544m 13m 130m 0.93% 0.47% S6U37 web 20
16733 artup.Bootstrap 159m 455m 166m 304m 0.12% 0.00% S6U37 web 46
- 1. Эффективный способ получить время поток CPU с помощью JMX
- 2. Мониторинг использования CPU Cassandra с JMX/MBeans
- 3. Powershell Получить процент CPU
- 4. Процент CPU, найденный в Perfmon
- 5. процент используемой памяти, используемый процессом
- 6. Как запускать «Выполнить GC» программно в JMX
- 7. JMX: CPU + Blocked + Wait time = Wall time?
- 8. Как определить средний процент CPU с помощью команды Powershell и вывести процент CPU в виде числового процента без ярлыков
- 9. CPU, используемый дочерними процессами, порожденными ruby
- 10. Получить в настоящее время процент CPU CPU от SQL Server
- 11. Используемый кейс для ручного вызова GC?
- 12. использовать JMX (jconsole) для мониторинга JVM GC. Как получить информацию о GC и полную информацию GC?
- 13. Процент объектов, переживших молодой ген GC?
- 14. Процент различных операций с плавающей точкой в SPEC CPU Benchmarks
- 15. Возможно ли контролировать частоту «Full GC» в JMX (на HotSpot)?
- 16. Как получить общий процент использования ЦП процессора от удаленного компьютера с помощью java-программы или JMX
- 17. Процент процентов с помощью JavaScript
- 18. Процент калькулятор с помощью JavaScript
- 19. Вычислить процент с помощью функций
- 20. Получить процент использования процессора с помощью пакетного скрипта
- 21. JMX или нет JMX
- 22. Процент процессора от JBoss 7
- 23. Azure App Service - CPU Процент экземпляра vs plan
- 24. Почему статистика докеров CPU Процент больше 100 раз Число ядер
- 25. Мониторинг JBoss с помощью JMX удаленного
- 26. Перезапуск журнала Log4J с помощью JMX
- 27. Проверка ActiveMQ с помощью консоли JMX -jConsole
- 28. Программная публикация статистики вызовов с помощью JMX
- 29. Доступ GridKernalMBean с помощью соединения JMX
- 30. Остановить Apache Tomcat с помощью JMX
JVisualVM использует jstat API, а не JMX, чтобы отобразить CPU график использования –