Мониторинг использования кучи Java на сервере Weblogic

Я наблюдаю за использованием кучи Java на всех управляемых серверах в Weblogic 10.3 использование домена WLST, Я написал сценарий Jython для достижения этой цели. Этот скрипт сначала входит на сервер администратора в домене. Ниже приведен фрагмент кода, который выбирает статистику кучи для каждого управляемого сервера:

def getServerJavaHeap():

    domainRuntime()

    servers=domainRuntimeService.getServerRuntimes()

    for server in servers:
         free    = int(server.getJVMRuntime().getHeapFreeCurrent())/(1024*1024)
         freePct = int(server.getJVMRuntime().getHeapFreePercent())
         current = int(server.getJVMRuntime().getHeapSizeCurrent())/(1024*1024)
         max     = int(server.getJVMRuntime().getHeapSizeMax())/(1024*1024)
         print 'Domain Name                  #', cmo.getName()
         print 'Server Name                  #', server.getName()    
         print 'Current Heap Size            #', current
         print 'Current Heap Free            #', free
         print 'Maximum Heap Size            #', max
         print 'Percentage Heap Free         #', freePct

Статистика кучи, которую получает приведенный выше код, отличается от того, что показывает консоль администратора Weblogic. Например, для управляемого сервера123

Приведенный выше код дает использование размера кучи как 1.25GB в то время как консоль администратора показывает использование кучи как 3GB

Мне интересно, почему есть несоответствие в том, что показывает консоль администратора и вывод приведенного выше кода. Я пытаюсь определить, ищу ли я правильное место и вызываю ли правильные вызовы методов ( перечисленные здесь в документации), чтобы получить статистику кучи на каждом управляемом сервере.

Я уверен, что время запуска сценария также является фактором. Было интересно, как часто консоль администратора обновляет эти таблицы.

1 ответ

Решение

Я не вижу ничего плохого в твоем подходе. Страница консоли администратора не будет обновляться автоматически, если вы не нажмете значок автообновления (две стрелки, образующие круг) в левом верхнем углу таблицы. По умолчанию интервал обновления составляет 10 секунд, но это можно установить на странице "Настройки" - ссылка находится на баннере каждой страницы.

Я пробовал как на сервере администратора, так и на управляемом сервере, и пока я выполнял код, близкий к обновлению, числа были связаны. Я могу только предположить, что сборка мусора выполняется между моментом, когда консоль отображала данные, и выполнялся ваш скрипт.

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