Установка
Ознакомьтесь с требованиями к операционной системе и аппаратному обеспечению.
При возникновении вопросов обращайтесь в службу поддержки support-atsd@axibase.com
.
Установка Java
Установите Java 8 для ATSD согласно инструкции.
Установите Java 16 (при установке MOEX консьюмеров на данном сервере) через менеджер пакетов.
sudo apt install zip unzip # Архиватор необходим для установки SDKMAN
curl -s "https://get.sdkman.io" | bash
sdk install java 16.0.1-librca
Установка ATSD
Загрузите установочные файлы.
curl -O https://www.axibase.com/public/atsd.moex.latest.tar.gz
tar -xozf atsd.moex.latest.tar.gz
Произведите запуск базы.
./atsd/bin/atsd-tsd.sh start
Установка консьюмеров
MOEX консьюмеры являются самостоятельными Java-приложениями, выполняющими функцию надежного и высокопроизводительного получения и декодирования FAST сообщений, получаемых от шлюзов FAST Московской биржи.
Загрузите и распакуйте установочные файлы.
curl -O https://www.axibase.com/public/moex-consumer.tar.gz
tar -xzf moex-consumer.tar.gz -C /opt moex-consumer
Присвойте переменной окружения JAVA_HOME
путь к версии Java, используемой консьюмером.
sdk use java 16.0.1-librca
Запустите установочный скрипт.
/opt/moex-consumer/scripts/install.sh
Параметры atsd.host
, atsd.port.tcp
, atsd.port.udp
позволяют указать ATSD, на которую будут отправлены команды. Данные параметры необходимы в случае распределенной инсталляции.
systemctl start moex-consumer-asts-fond
systemctl start moex-consumer-asts-fx
systemctl start moex-consumer-spectra
Альтернативный способ запуска и остановки консьюмеров – через скрипты start.sh
и stop.sh
в каталогах /opt/moex-consumer/{asts-fx,asts-fond,spectra}/bin
Настройка операционной системы
Увеличьте параметр ulimit
nofile
до 32768
и выше.
Оптимизация сетевого стека для консьюмеров
Сконфигурируйте параметры сетевых буферов и отключите Reverse Path Filtering.
sudo vim /etc/sysctl.conf
# Increase the maximum total buffer-space allocatable
net.ipv4.udp_mem = 65536 131072 262144
# Default Socket Receive Buffer
net.core.rmem_default = 25165824
# Maximum Socket Receive Buffer
net.core.rmem_max = 134217728
# Increase the read-buffer space allocatable (minimum size,
# initial size, and maximum size in bytes)
net.ipv4.tcp_rmem = 20480 12582912 25165824
net.ipv4.udp_rmem_min = 16384
# Default Socket Send Buffer
net.core.wmem_default = 25165824
# Maximum Socket Send Buffer
net.core.wmem_max = 25165824
# Increase the write-buffer-space allocatable
net.ipv4.tcp_wmem = 20480 12582912 25165824
net.ipv4.udp_wmem_min = 16384
# Maximum number of packets in waiting queue
net.core.netdev_max_backlog=50000
# Disable Reverse Path Filtering
net.ipv4.conf.all.rp_filter = 0
Примените сохранённые изменения
sudo sysctl -p
Оптимизация сетевого стека для ATSD
При установке ATSD на сервере, отличном от сервера консьюмеров, также увеличьте размеры сетевых буферов.
sudo vim /etc/sysctl.conf
net.ipv4.udp_mem = 65536 131072 262144
net.core.rmem_default = 25165824
net.core.rmem_max = 25165824
net.ipv4.tcp_rmem = 20480 12582912 25165824
net.ipv4.udp_rmem_min = 16384
net.core.wmem_default = 25165824
net.core.wmem_max = 25165824
net.ipv4.tcp_wmem = 20480 12582912 25165824
net.ipv4.udp_wmem_min = 16384
net.core.netdev_max_backlog = 50000
sudo sysctl -p
Синхронизация времени
Для корректной работы систем, в частности встроенных средств мониторинга задержки, необходима синхронизация с сервером точного времени Московской биржи.
Проверьте доступность NTP сервера. В случае недоступности обратитесь к DMA-провайдеру.
ping 91.203.252.12
Установите ntpd
в качестве NTP клиента по умолчанию.
sudo timedatectl set-ntp no
sudo apt update && sudo apt install ntp
Пропишите NTP сервера биржи в качестве единственных источников точного времени, закомментировав пулы умолчанию.
sudo vim /etc/ntp.conf
server 91.203.252.12
server 91.203.254.12
#pool 0.ubuntu.pool.ntp.org iburst
#pool 1.ubuntu.pool.ntp.org iburst
#pool 2.ubuntu.pool.ntp.org iburst
#pool 3.ubuntu.pool.ntp.org iburst
Перезапустите сервис ntpd
.
sudo service ntp restart
Проверьте, что время синхронизировано.
ntpstat
synchronised to NTP server (91.203.254.12) at stratum 3
time correct to within 5 ms
polling server every 64 s
Отправка снэпшотов сделок
Для проверки, что все сделки были корректно заложены, настройте отправку файлов со сделками (снэпшоты) на сервер ATSD для восполнения потерь.
Создайте токен для доступа к сервису закладки снэпшотов. Откройте Admin > Users > Create Token.
Укажите /api/v1/trades/upload
в поле URL, метод POST
и нажмите Issue Token.
Укажите полученный токен в поле TOKEN
в файле /opt/moex-consumer/scripts/moex-consumer-env.sh
.
Добавьте скрипты для отправки снэпшотов по окончании торгового дня.
crontab -e
10 1 * * 1-6 /opt/moex-consumer/scripts/daily_trades_upload.sh spectra
14 1 * * 1-6 /opt/moex-consumer/scripts/daily_trades_upload.sh asts-fx
12 1 * * 1-6 /opt/moex-consumer/scripts/daily_trades_upload.sh asts-fond
20 1 * * 1-6 /opt/moex-consumer/scripts/daily_trade_snapshot_upload.sh asts-fx
22 1 * * 1-6 /opt/moex-consumer/scripts/daily_trade_snapshot_upload.sh asts-fond