Skip to content

Устранение неполадок, связанных с простоем BI

1. Обзор

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

宕机.png

2. Проверка существования процессов

Программа проверки:

Возьмем в качестве примера Tomcat. С помощью команды jps -l можно увидеть, что Tomcat развернут непосредственно в процессе под названием Bootstrap, а установочный пакет развернут в процессе под названием UnixLauncher, как показано на следующем рисунке:

1588916841360977.png

Вы также можете ввести ps -ef|grep tomcat в командной строке, как показано ниже:

6.png

Анализ результатов:

Если процесс исчезнет, перезапустите BI-сервер напрямую, см. раздел: Установка и запуск FineBI.

Если процесс все еще продолжается, продолжите выполнять следующие шаги для устранения неполадок.

3. наличие проблем с суждениями в процессе

3.1 Проверка на переполнение памяти OOM

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

В этот момент JVM выполняет множество Full GC в надежде вернуть неиспользуемую память. Но поскольку данные используются, память никогда не освобождается, поэтому она выполняет Full GC снова и снова.

Программа проверки:

1) После ввода команды top использование процессора процессом стало очень высоким.

2) Высокий процессор не обязательно означает, что выполняется Full GC, необходимо дополнительное подтверждение. Выполнение FullGC не означает OOM, только случай постоянного выполнения FullGC является OOM. Введите команду jstat -gc pid 2000 2000, как показано ниже:

406.png

Обратите внимание на столбец FGC, если значение увеличивается очень быстро, а значение FGCT (Full GC total time) очень велико, например, FGC составляет 20 FGCT было более 2000, среднее время, потраченное на FGC, составляет 100 с, вы можете быть уверены, что переполнение памяти вызвано простоем, вам нужно получить дамп.

3.2 Выявление причин переполнения памяти и соответствующие решения

  • Регистратор занимает слишком много памяти

Отключите плагин Platform Log Export, если он установлен.

  • Задачи обновления занимают слишком много памяти

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

  • OOM вне кучи памяти

Когда группы компонентов графика J2V8 превышают 5000, логика рисования будет обрабатываться в бэкенде, в это время расчеты графика J2V8 используют память вне кучи, когда срабатывает OOM, JVM аварийно завершает работу и генерирует hs-файл, который можно увидеть, перейдя по пути %FineBI%bin.

  • Кэш памяти Glibc

Если вы обнаружили, что память JVM и память вне кучи в норме, необходимо проверить, не восстанавливает ли система linux память вовремя.

Рециркуляция памяти в системе Linux осуществляется программой glibc. Платные пользователи могут обратиться в службу технической поддержки SailSoft для проверки размера файла pmap, чтобы определить, не занимает ли glibc слишком много памяти и не является ли это причиной простоя.

3.3 Переполнение памяти - получение файла дампа

Метод 1: Настройка параметров дампа

Рекомендуется настроить параметр JVM для автоматической генерации журналов дампа при простое проекта. Настройка этого параметра не влияет на работу проекта с точки зрения потери производительности, и он используется только для генерации журналов дампа при простое сервера.

Примечание: Путь /opt/ указывает на путь к файлу времени простоя, и вы можете изменить путь к файлу по своему усмотрению. После сохранения изменений необходимо перезапустить Tomcat, чтобы конфигурация вступила в силу.

  • **Windows:**Перейдите вкаталог%Tomcat_HOME%\bin. Найдите файл с именемsetenv.bat.Если файл не существует, создайте новыйфайлsetenv.bat. Добавьте в него следующие строки для настройки и перезапустите проект после завершения настройки.

set JAVA_OPTS=%JAVA_OPTS% -XX:+HeapDumpOnOutOfMemoryError

set JAVA_OPTS=%JAVA_OPTS% -XX:HeapDumpPath=/opt/

  • Linux **😗*Перейдите вкаталог%Tomcat_HOME%\bin. Найдите файл с именемsetenv.sh.Если он не существует, создайте новыйфайлsetenv.sh. Добавьте в него следующие строки для настройки и перезапустите проект после завершения настройки.

JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError"
JAVA_OPTS="$JAVA_OPTS -XX:HeapDumpPath=/opt/"

Метод 2: Получите файл дампа вручную

Если параметр dump не настроен, вам нужно получить файл дампа вручную, выполнив jmap -dump:format=b,live,file=path process pid, например, чтобы получить файл дампа процесса 22374, как показано в следующем коде:

jmap -dump:format=b,live,file=22374.hprof 22374

3.4 Не переполнение памяти OMM - удар по стеку

Если в окружении пользователя установлен JDK :

1) Идентификация процессов

В среде Linux выполните команду: ps -ef|grep tomcat

Среда Windows: проверьте диспетчер задач, вы можете найти процесс FineBI (pid).

Доступно окно Win7 dos, команда аналогична: netstat -aon|findstr "37799".

2) Наносите удары по стекам, обычно каждые 3 секунды в течение трех-четырех ударов, следующим образом:

jstack pid > a1.txt
jstack pid > a2.txt
jstack pid > a3.txt

Если JDK не установлен в среде пользователя:

Команда jstack полагается на JDK, но у клиента не установлен JDK, а устанавливать JDK в среде клиента неудобно:

1) Скопируйте локальный JDK вашего компьютера в пользовательский проект.

2) Распакуйте файл в каталог на диске, предпочтительно в корневой каталог.

3) На этом этапе с помощью командной строки перейдите в каталог bin.

4) Затем нажмите jstack, и все готово.

Примечание: Если он не выполняется должным образом, настройте переменные окружения.

3.5 Перезапуск сервера BI

После выполнения описанных выше действий по определению проблемы необходимо перезапустить BI-сервер.