Запуск GlarusBI

GlarusBI работает на виртуальной Java машине (JVM), и в зависимости от того, как она настроена, она может использовать файловую систему сервера для хранения некоторой информации. Поэтому проблемы с JVM или файловой системой могут помешать запуску GlarusBI.

Java-версия

Убедитесь, что вы используете версию Java 11 или выше. Дополнительные сведения см. в разделе Версии Java.

ВНИМАНИЕ: sun.reflect.Reflection.getCallerClass не поддерживается

WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.

Если вы видите вышеуказанную ошибку, игнорируйте ее. Ваша GlarusBI работает в штатном режиме и не требует дополнительных настроек.

GlarusBI не запускается из-за Heap Space OutOfMemoryErrors

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

java.lang.OutOfMemoryError: Java heap space

Если вы видите это, вам нужно установить параметр JVM, чтобы сообщить Java явно, сколько памяти она должна использовать для кучи. Например, ваша среда выполнения Java может использовать для этого флаг -X:

java -Xmx2g -jar glarusBI.jar

Увеличивайте выделение памяти до тех пор, пока ошибка не исчезнет, но следите за тем, чтобы число не превышало общего объема оперативной памяти, доступной на вашем компьютере, потому что, скорее всего, GlarusBI не будет единственным запущенным процессом. Как правило, достаточно оставить 1-2 ГБ ОЗУ для других процессов, поэтому вы можете установить «-Xmx» на «1g» на машине с 2 ГБ ОЗУ, «2g» на машине с 4 ГБ ОЗУ и т. д. Возможно, вам придется поэкспериментировать с этими настройками, чтобы найти тот, который позволит GlarusBI и всем остальным процессам оптимально работать вместе.

Вы также можете использовать переменную окружения JAVA_OPTS для установки аргументов JVM вместо того, чтобы передавать их непосредственно в java. Это особенно полезно при запуске образа Docker:

docker run -d -p 3000:3000 -e "JAVA_OPTS=-Xmx2g" metabase/metabase

Диагностика проблем с памятью, вызывающих OutOfMemoryErrors

Если экземпляр GlarusBI запускается и работает в течение значительного времени, прежде чем исчерпается память, вполне вероятно, что ошибку переполнения памяти вызывает определенное событие, например большой запрос. Один из способов определить, где используется память, — включить дампы кучи при срабатывании ошибки OutOfMemoryError. Чтобы включить это, вам нужно добавить два флага к вызову java:

java -Xmx2g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/a/directory -jar metabase-jar

Флаг -XX:HeapDumpPath указывает, куда поместить дамп — по умолчанию используется текущий каталог. Когда возникает ошибка OutOfMemoryError, файл hprof выгружается в указанный каталог. Эти файлы могут быть очень большими (например, по размеру аргумента -Xmx), поэтому убедитесь, что на вашем диске достаточно места. Эти файлы hprof можно прочитать с помощью множества различных инструментов, таких как jhat (входит в состав JDK) или [Eclipse Memory Analyzer Tool].eclipse-memory-analyzer.

GlarusBI не может читать или писать из файла или папки (IOError)

Если вы видите ошибку, связанную с правами доступа к файлам, например, GlarusBI не может прочитать базу данных SQLite или пользовательский файл карты GeoJSON, ознакомьтесь с разделом «GlarusBI не может читать в/из файла или каталога» в нашем руководстве по устранению неполадок Docker.