Сервер:FAQ
Yura (обсуждение | вклад) (→Общие вопросы) |
Yura (обсуждение | вклад) (→Какая версия Java нужна для работы?) |
||
Строка 13: | Строка 13: | ||
dl.locarus.ru/java/jre-7u80-linux-i586.rpm | dl.locarus.ru/java/jre-7u80-linux-i586.rpm | ||
+ | |||
dl.locarus.ru/java/jre-7u80-linux-i586.tar.gz | dl.locarus.ru/java/jre-7u80-linux-i586.tar.gz | ||
+ | |||
dl.locarus.ru/java/jre-7u80-linux-x64.rpm | dl.locarus.ru/java/jre-7u80-linux-x64.rpm | ||
+ | |||
dl.locarus.ru/java/jre-7u80-linux-x64.tar.gz | dl.locarus.ru/java/jre-7u80-linux-x64.tar.gz | ||
+ | |||
dl.locarus.ru/java/jre-7u80-windows-i586.exe | dl.locarus.ru/java/jre-7u80-windows-i586.exe | ||
+ | |||
dl.locarus.ru/java/jre-7u80-windows-i586.tar.gz | dl.locarus.ru/java/jre-7u80-windows-i586.tar.gz | ||
+ | |||
dl.locarus.ru/java/jre-7u80-windows-x64.exe | dl.locarus.ru/java/jre-7u80-windows-x64.exe | ||
+ | |||
dl.locarus.ru/java/jre-7u80-windows-x64.tar.gz | dl.locarus.ru/java/jre-7u80-windows-x64.tar.gz | ||
Текущая версия на 08:56, 5 октября 2016
Общие вопросы
Какая версия PostgreSQL нужна для работы?
Не ниже 8.4. Необходима поддержка RETURNS в UPDATE запросах, версия 8.1 этого не поддерживает. Рекомендуется ставить версию не ниже 9.х
Какая версия Java нужна для работы?
Обязательно не ниже 1.7. Рекомендуется ставить версию Java 1.7.80 :
http://www.oracle.com/technetwork/java/javase/downloads/1880261
dl.locarus.ru/java/jre-7u80-linux-i586.rpm
dl.locarus.ru/java/jre-7u80-linux-i586.tar.gz
dl.locarus.ru/java/jre-7u80-linux-x64.rpm
dl.locarus.ru/java/jre-7u80-linux-x64.tar.gz
dl.locarus.ru/java/jre-7u80-windows-i586.exe
dl.locarus.ru/java/jre-7u80-windows-i586.tar.gz
dl.locarus.ru/java/jre-7u80-windows-x64.exe
dl.locarus.ru/java/jre-7u80-windows-x64.tar.gz
Java 8: не рекомендуется использовать - потребляет существенно больше RAM
LocarusInformer тормозит и отваливается при получении данных
Разделяйте порты. Если у вас на один TCP порт шлют данные 1500 приборов и одновременно с этим качают треки 200 клиентов то тормозить будет 100%. Если у вас приборы работают на порту 1128, переключите все LI на 1130. И почувствуйте разницу.
Зачем нужна синхронизация времени? Можно ли ее отключить? (UDP порт 123)
Сервер создается в расчете на распределенное "облачное" хранение данных, поэтому каждый пакет данных имеет уникальный в мировом масштабе идентификатор, который формируется с использованием времени по Гринвичу. Если вы используете один изолированный сервер то от синхронизации времени можно отказаться. Для отключения синхронизации используйте параметр TIMESYNC_ENABLE=false в conf/LocarusServer.conf
Можно ли использовать сервер без доступа к HTTP (80-й порт)
Можно. Для этого нужно
- Установить в conf/LocarusServer.conf реальный внешний IP адрес сервера параметром SERVER_ADDRESS=
- Отключить самотестирование параметром WATCHDOG_SELFCONTROL=false
При запуске locarus-xconv возникает исключение java.lang.OutOfMemoryError: Java heap space
Добавьте java параметр -Xmx1024m, что выделит ява-машине гигабайт памяти:
java -jar -Xmx1024m locarus-xaconv.jar ...
Если будет еще недостаточно, попробуйте выделить больше. Если не получится - импортируйте данные в несколько этапов, используя ключи locarus-xconv:
- -noclear - добавить данные к имеющимся без предварительной очистки базы данных
- -x<IMEI> - импортировать жанные начиная с указанного IMEI
Ошибка при запуске PostgreSQL сервера - Ident authentication failed for user ...
При этом база данных доступна через pgAdmin под этим именем
В pg_hba.conf найти запись
host all all 127.0.0.1/32 ident
заменить на
host all all 127.0.0.1/32 trust
Это добавит разрешение на соединение с базой для любого юзера с локального хоста.
Перестают приниматься соединения по TCP, в locarus-server.log появляется java.net.SocketException: Too many open files
Превышен лимит системы на количество одновременно открытых файловых дескрипторов. Обычно это значение установлено в 1024. Можно его увеличить, например, до 2048.
Для Linux В файл /etc/security/limits.conf Добавляем две строки
∗ soft nofile 2048 ∗ hard nofile 2048
Перезагружаем систему, проверяем: ulimit -n
Для Windows В регистри, раздел
HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\Tcpip\Parameters
Устанавливаем для
TcpNumConnections
значение 2048. Перезагружаемся.
В логах время отстает на час от системного
Поставьте апдейт Java http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html
Распаковываем архив, переходим в распакованный каталог и даем команду:
Linux:
sudo java -jar tzupdater.jar -u -v
Windows (запуск консоли от Администратора):
java -jar tzupdater.jar -u -v
Сервер непрерывно перезагружается из-за нехватки памяти
Есть два пути решения.
1. Выделить серверу больше памяти. Для этого служат ключи -Xms (минимальная память) и -Xmx (максимальная память). При запуске сервисом эти ключи указываются в файле конфигурации ваппера. Запуск в тестовом режиме:
java -jar -Xms2048m -Xmx4096m locarus-server.jar -test
2. Отключить аварийную перезагрузку при нехватке памяти. В конфиге сервера указать:
WATCHDOG_MEMORY_MIN_ABS=-1 WATCHDOG_MEMORY_MIN_REL=0
Изменение объема оперативной памяти, выделяемой для работы сервера
Оперативная память, используемая сервером, условно делится на три части:
- heap (хип) - основная память, динамически используемая сервером для работы.
- стек - временная память для текущих операций. объем может влиять на максимально возможное количество порождаемых тредов (threads), дескрипторы которых хранятся в стеке
- перманентная память - предназначена для хранения констант и статических объектов
В процессе работы может возникнуть необходимость изменить выделяемый размер всех видов памяти. В тестовом режиме это делается с использованием опций при запуске сервера:
- Heap:
java -jar -Xms2048m -Xmx4096m locarus-server.jar -test -Xms - минимально выделяемый, -Xmx - максимально возможный объем хипа
- Стек:
java -jar -Xss1024k locarus-server.jar -test
- Перманентная память
java -jar -XX:PermSize=512m -XX:MaxPermSize=512m locarus-server.jar -test
Опции можно определять в любых комбинациях
java -jar -Xms2048m -Xmx4096m -Xss1024k-XX:PermSize=512m -XX:MaxPermSize=512m locarus-server.jar -test
При запуске сервера в качестве службы с использованием враппера параметры распределения памяти указываются в настройках враппера
- Для Linux/Unix/Aix/Solaris/MacOS
Файл конфигурации /usr/local/locarus/conf/wrapper.conf Используются ключи конфигурации: wrapper.java.additional.1 = -Xms1024m wrapper.java.additional.2 = -Xmx1024m wrapper.java.additional.3 = -Xss1024k wrapper.java.additional.4 = -XX:MaxPermSize=512m wrapper.java.additional.5 = -XX:PermSize=512m Обратите внимание на нумерацию ключей. Если вы используете дополнительные опции, или не все из перечисленных, нумерация должна быть приведена к нужной последовательности.
- Для Window:
Файл C:\java\locarus\bin\server-control.bat Используется установка переменных среды, значения в мегабайтах: REM JVM configuration set PR_JVMMS=2048 set PR_JVMMX=4096 set PR_JVMSS=4 set PR_JVMOPTIONS=-XX:MaxPermSize=512m;-XX:PermSize=512m; Распределение перманетной памяти задается в списке дополнительных параметров
MS Windows
При установке под MS Windows 7 и Windows Server 2003 возникает ошибка
- Problem running post-install step. Installation may not complete correctly. The database cluster initialisation failed
После установки при этом сервер PostgreSQL не запущен.
- Запускаем службу "Вторичный вход в систему" или "Secondary Logon"
- В панели Управление (Management) проверяем наличие пользователя postgres, если его нет, создаем, назначаем пароль, добавляем в группу Администраторы.
- Устанавливаем полные права доступа на папку "C:\Program Files\PostgreSQL\9.0\data\" для пользователя postgres
- Устанавливаем PostgreSQL повторно, запустив его от имени созданного пользователя postgres.
Если и после этого служба не стартует - нужно установить в свойствах службы "Вход в систему" (Log On) - "С системной учетной записью" (Local System Account)
Локарус-сервер не стартует службой. Не может найти wrapper
В конфиге wrapper-server внизу файла есть строка - wrapper.java.app.jar = %WORKING_DIR%/locarus-server.jar вместо %WORKING_DIR% надо указать полный путь
Linux
- Открываем файл /etc/fstab
- Ищем строку содержащую во второй колонке /tmp
- В четвертой колонке, содержащей defaults,noexec,nodev,noatime удаляем опцию noexec
- Перезагружаем компьютер
Проблему решили увеличением количества процессов на пользователя. Именно они и были «resource temporarily unavailable». Но если возможно, то лучше, наверное, поправить это в сервере, чтобы при входе в админку не открывать отдельное соединение на каждый прибор.
Увеличение числа подключений PostgreSQL у Вас описано в FAQ, может пригодится и увеличение ulimit применительно к centos. Посмотреть можно командой ulimit –a (параметр max user processes). Изменить в файле /etc/security/limits.conf добавив строку типа: “* - nproc 4096” и перезагрузить систему.
Автор ответа: Коршунов В.Г.