Снятие дампов памяти (heap) и потоков
В некоторых очень редких случаях SberMobile Server или SberMobile IIoT Platform Client могут перестать отвечать из-за потери доступа к памяти, 100% нагрузки на процессор или блокировки потоков. Такие ситуации наиболее вероятно могут произойти в версиях Предпросмотра SberMobile.
В большинстве случаев инженеры SberMobile решают такие вопросы через удалённое соединение с машиной, на которой запущен SberMobile. Однако если удаленный доступ ограничен, например, из-за соображений безопасности, клиентам приходится осуществлять снятие дампов потоков и памяти (heap), чтобы передать их SberMobile для последующего анализа.
Создание отслеживания стека зависшего / неотвечающего SberMobile Server или SberMobile IIoT Platform Client
Для создания дампа потоков, использумого для диагностирования неэффективной блокировки потоков и их зависания:
- 1. Проверьте версию Java Runtime Environment (JRE), используемую для работы SberMobile при помощи %SberMobile Server Folder%
/jre/bin/java.exe -version
- 2. Установите комплект разработчика Java (JDK) той же версии, что JRE, используемая на SberMobile
- 3. Выясните идентификатор Процесса (PID) процесса SberMobile:
- Используя Task Manager в Windows
- Путём запуска
ps ax|grep java
на Linux
- 4. Запустите %JDK Folder%
/bin/jstack -l
PID> stack.txt
- 5. Отправьте конечный файл
stack.txt
сотрудникам SberMobile для анализа
Создание дампа памяти (heap) SberMobile Server или SberMobile IIoT Platform Client с высокой загрузкой памяти java
Примечание 1: Использование памяти SberMobile Server можно отследить при помощи Датчика использования памяти сервера. |
Примечание 2: Использование памяти SberMobile IIoT Platform Client можно отследить при помощи утилиты JVisualVM, которая входит в комплект разработчика Java (JDK). |
Примечание 3: Утечку памяти можно успешно определить, если использование памяти сервера постоянно росло в течение нескольких дней и выросло до 200-300% начального использования памяти, зарегистрированного после нескольких запусков сервера. |
Примечание 4: Создание графика истории Датчик использования памяти сервера поможет ясно увидеть растущее использование памяти. |
Для создания дампа памяти, который используется для диагностирования её утечек:
- 1. Установите комплект разработчика Java (JDK) той же версии, что JRE, используемая на SberMobile
- 2. Выясните идентификатор Процесса (PID) процесса SberMobile:
- Используя Task Manager в Windows
- Путём запуска
ps ax|grep java
на Linux
- 3. Запустите команду
jmap -dump:format=b,file=dump.bin
PID - 4. Сожмите конечный файл
dump.bin
и перешлите сотрудникам SberMobile для анализа