Запуск Glarus BI¶
Glarus BI работает на виртуальной Java машине (JVM), и в зависимости от того, как она настроена, она может использовать файловую систему сервера для хранения некоторой информации. Поэтому проблемы с JVM или файловой системой могут помешать запуску Glarus BI.
Версия Java¶
Убедитесь, что вы используете версию Java 11 или выше. Дополнительные сведения см. в разделе Версии Java.
ВНИМАНИЕ: sun.reflect.Reflection.getCallerClass не поддерживается¶
Если вы видите вышеуказанную ошибку, игнорируйте её. Ваша Glarus BI работает в штатном режиме и не требует дополнительных настроек.
Glarus BI не запускается из-за Heap Space OutOfMemoryErrors¶
Обычно JVM может определить, сколько оперативной памяти доступно в системе, и автоматически установит разумную верхнюю границу использования памяти кучи. Однако в некоторых средах общего хостинга это не всегда работает должным образом. Обычным признаком этого является сообщение об ошибке, например:
Если вы видите это, вам нужно установить параметр JVM, чтобы сообщить Java явно, сколько памяти она должна использовать для кучи. Например, ваша среда выполнения Java может использовать для этого флаг -X
:
Увеличивайте выделение памяти до тех пор, пока ошибка не исчезнет, но следите за тем, чтобы число не превышало общего объёма оперативной памяти, доступной на вашем компьютере, потому что, скорее всего, Glarus BI не будет единственным запущенным процессом. Как правило, достаточно оставить 1-2 ГБ ОЗУ для других процессов, поэтому вы можете установить «-Xmx» на «1g» на машине с 2 ГБ ОЗУ, «2g» на машине с 4 ГБ ОЗУ и т.д. Возможно, вам придется поэкспериментировать с этими настройками, чтобы найти тот, который позволит Glarus BI и всем остальным процессам оптимально работать вместе.
Вы также можете использовать переменную окружения JAVA_OPTS
для установки аргументов JVM вместо того, чтобы передавать их непосредственно в java
. Это особенно полезно при запуске образа Docker:
Диагностика проблем с памятью, вызывающих OutOfMemoryErrors¶
Если экземпляр Glarus BI запускается и работает в течение значительного времени, прежде чем исчерпается память, вполне вероятно, что ошибку переполнения памяти вызывает определённое событие, например большой запрос. Один из способов определить, где используется память, — включить дампы кучи при срабатывании ошибки OutOfMemoryError. Чтобы включить это, вам нужно добавить два флага к вызову java
:
Флаг -XX:HeapDumpPath
указывает, куда поместить дамп --- по умолчанию используется текущий каталог. Когда возникает ошибка OutOfMemoryError, файл hprof выгружается в указанный каталог. Эти файлы могут быть очень большими (например, по размеру аргумента -Xmx
), поэтому убедитесь, что на вашем диске достаточно места. Эти файлы hprof
можно прочитать с помощью множества различных инструментов, таких как jhat
(входит в состав JDK) или [Eclipse Memory Analyzer Tool].eclipse-memory-analyzer.
Glarus BI не может читать или писать из файла или папки (IOError)¶
Если вы видите ошибку, связанную с правами доступа к файлам, например, Glarus BI не может прочитать базу данных SQLite или пользовательский файл карты GeoJSON, ознакомьтесь с разделом «Glarus BI не может читать в/из файла или каталога» в нашем руководстве по устранению неполадок Docker.