# Запуск GlarusBI GlarusBI работает на виртуальной Java машине (JVM), и в зависимости от того, как она настроена, она может использовать файловую систему сервера для хранения некоторой информации. Поэтому проблемы с JVM или файловой системой могут помешать запуску GlarusBI. ## Java-версия Убедитесь, что вы используете версию Java 11 или выше. Дополнительные сведения см. в разделе [Версии Java](../installation-and-operation/java-versions.md#check-installed-version). ## ВНИМАНИЕ: 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](./docker.md). [eclipse-memory-analyzer]: https://www.eclipse.org/mat/