<div class="aui-message error aui-message-error">
<p class="title">
<span class="aui-icon icon-error"></span>
<strong>Comala Metadata License Details</strong>
</p>
<p>Invalid commercial evaluation license with a expired error. Please click <a href="https://marketplace.atlassian.com/plugins/org.andya.confluence.plugins.metadata" target="_blank">here</a> to purchase a commercial license.</p>
</div>
Описание
Реляционная СУБД, используемая в проекте SoftWLC для хранения основных данных, необходимых для работы системы управления. Используется версия mysql-server-5.5.
В проекте используются следующие базы данных:
База данных | Описание |
---|---|
eltex_ems | содержит данные о доменной структуре, дереве объектов, пользователях EMS, конфигурационные данные EMS и др. База создается/обновляется при установке пакета eltex-ems-db. |
eltex_alert | содержит журнал событий EMS и устройств. База создается/обновляется при установке пакета eltex-ems-db. |
wireless | хранятся настройки SSID. База создается/обновляется при установке пакета eltex-ems-db. |
eltex_auth_service | база, используемая пакетом eltex-auth-service для хранения данных о пользователях ЛК, конструктора порталов и NBI. База создается/обновляется при установке пакета eltex-auth-service-db. |
radius | в этой базе хранятся данные о Wi-Fi пользователях, их учетные записи настройки и аккаунттинг. База создается/обновляется при установке пакета freeradius-eltex-db. |
ELTEX_PORTAL | содержит данные о виртуальных порталах, используемых в проекте. База создается/обновляется при установке пакета eltex-portal-mysql. |
payments | здесь хранятся данные о платежах Wi-Fi пользователей за подключение к платным тарифам. База создается/обновляется при установке пакета eltex-portal-mysql. |
eltex_doors | содержит JWT токены сгенерированные сервисом eltex-doors. |
Управление сервисом
Действие | Команда | Ответ |
---|---|---|
Проверка состояния | service mysql status | Сервис работает mysql start/running, process <pid> Сервис не работает mysql stop/waiting |
Запуск сервиса | service mysql start | Сервис запустился mysql start/running, process <pid> Сервис уже работает start: Job is already running: mysql |
Остановка сервиса | service mysql stop | Сервис успешно остановлен mysql stop/waiting |
Перезапуск сервиса | service mysql restart | Сервис успешно перезапущен mysql stop/waiting mysql start/running, process <pid> |
Конфигурация
Настройка MySQL осуществляется при помощи конфигурационных фалойв /etc/mysql/my.cnf (дефолтный файл,устанавливается вместе с пакетом mysql-server) и /etc/mysql/conf.d/eltex-ems.cnf (содержит дополнительную конфигурацию, важную для работы системы управления,устанавливается вместе с пакетом eltex-ems-db).
Количество коннектов
В зависимости от предполагаемого количества используемых точек доступа, необходимо указать максимальное количество коннектов к БД. За это отвечает параметр max_connections. По умолчанию он прописан в файле /etc/mysql/mysql.conf.d/mysqld.cnf , но закомментирован. Раскомментируйте его и пропишите необходимое значение, например так:
max_connections = 500
Это значение можно выбрать из таблицы Расчет количества коннектов к БД (нижняя строка таблицы)
Объем памяти
MyISAM используется в БД eltex_alert и syslog. InnoDB во всех остальных БД, включая высоконагруженную таблицу radius.radacct
После установки БД необходимо сконфигурировать объем памяти, выделяемый для служб MyISAM и InnoDB (/etc/mysql/conf.d/eltex-ems.cnf параметры key_buffer_size и innodb_buffer_pool_size соответственно).
Рекомендации по настройке:
При установке БД на выделенном хосте, рекомендуемый объем памяти 30-40% от общей RAM для каждой из служб.
При установке всех сервисов на один хост объем памяти, выделяемый для каждой из служб, рассчитывается исходя из того, что основному Java приложению (eltex-ems), веб-серверу tomcat6, NBI, ЛК, eltex-apb, так же требуются большие объемы виртуальной памяти. Настраиваются отдельно для каждой из служб в соответствующих конфигурационных файлах.
Объем памяти, выделяемый для службы InnoDB, может быть 2-3 раза больше, чем для MyISAM в том случае, если не планируется собирать syslog с большого количества устройств.
Например, при установке всех служб SoftWLC на один хост, выделены следующие объемы:
Для сервера на 16G:
key_buffer_size = 2G innodb_buffer_pool_size = 4G
Для сервера на 64G:
key_buffer_size=8G innodb_buffer_pool_size=24G
После изменения конфигурационного файла файле /etc/mysql/conf.d/eltex-ems.cnf перезапустите MySQL командой:
service mysql restart
Параметры key_buffer_size и innodb_buffer_pool_size могут быть изменены в любое время на основании показателей производительности машины. Смена значений влияет на скорость обработки данных во время работы службы MySQL и не может привести к потере уже сохраненных данных или смене структуры хранениях их на файловой системе.
Дополнительные учетные записи пользователей баз данных
Сбор rsyslog
Для сбора логов с серверов DHCPи RADIUS в базе данных должна быть создана учетная запись пользователя rsyslog.
Команды:
CREATE USER 'rsyslog'@'HOST' identified by 'root'; GRANT ALL on Syslog.* TO 'rsyslog'@'HOST' identified by 'root';
где HOST – адрес серверов RADIUS или DHCP в сети управления. Для каждого сервера должна быть создана отдельная запись.
Проверка репликации из GUI EMS
Для того чтобы сервер EMS имел возможность проверить состояние репликации, нужны дополнительные учетные записи, создать их можно из консоли MySQL:
команды:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'HOST' IDENTIFIED BY 'root'; FLUSH PRIVILEGES;
где HOST – адрес серверов EMS в сети VRRP. Для каждого сервера должна быть создана отдельная запись.
Расчет количества коннектов к БД в зависимости от нагруженности серверов
до 50 ТД | от 50 до 200 ТД | от 200 до 500 ТД | от 500 до 4 тыс. ТД | ||
Количество коннектов на сервисах SoftWLC (эти настройки указываются в конфигурационных файлах сервисов для подключения к БД) | |||||
nbi (суммарное) | 16 | 38 | 78 | 156 | |
Количество подключений сервиса к каждой БД | radius | 4 | 12 | 24 | 48 |
ems | 4 | 10 | 22 | 48 | |
wireless | 4 | 10 | 22 | 48 | |
logs | 2 | 4 | 6 | 8 | |
eltex_auth_service | 2 | 2 | 4 | 4 | |
ems (суммарное) | 20 | 40 | 92 | 186 | |
Количество подключений сервиса к каждой БД | event | 4 | 8 | 16 | 32 |
tree | 4 | 8 | 20 | 40 | |
syslog | 2 | 4 | 4 | 4 | |
radius | 4 | 8 | 20 | 40 | |
wireless | 3 | 6 | 14 | 30 | |
PCRF (суммарное) | 6 | 12 | 24 | 48 | |
Количество подключений сервиса к каждой БД | radius | 2 | 4 | 8 | 16 |
sql.ems | 2 | 4 | 8 | 16 | |
sql.wireless | 2 | 4 | 8 | 16 | |
radius | 5 | 10 | 15 | 32 | |
eltex-auth | 2 | 2 | 2 | 5 | |
eltex-portal | 10 | 10 | 15 | 32 | |
eltex-portal-constructor | 10 | 10 | 10 | 10 | |
rsyslog-mysql | 2 | 4 | 6 | 10 | |
репликация | 2 | 2 | 2 | 2 | |
резерв | 8 | 8 | 8 | 8 | |
Суммарное количество коннектов на MySQL (количество коннектов, которое нужно прописать в настройках БД) | 78 | 130 | 234 | 449 |
Анализ работы сервера mysql c помощью MySQLTuner
MySQLTuner — это perl-скрипт, который анализирует статистику работы MySQL и выдает свои рекомендации по оптимизации настроек MySQL сервера.
Примечание! Для корректного анализа и сбора статистики сервер MySQL должен проработать некоторое время без смены параметров конфигурации и без перезагрузок, по рекомендации самого MySQLTuner не менее 24 часов.
Для запуска скрипта выполните команду:
/usr/lib/eltex-ems-db/tools/mysqltuner.pl -- user root --pass root
После запуска скрипт произведет анализ и выдаст следующую информацию:
>> MySQLTuner 1.2.0 - Major Hayden <major@mhtx.net> >> Bug reports, feature requests, and downloads at http://mysqltuner.com/ >> Run with '--help' for additional options and output filtering [OK] Logged in using credentials from debian maintenance account. -------- General Statistics -------------------------------------------------- [--] Skipped version check for MySQLTuner script [OK] Currently running supported MySQL version 5.5.43-0ubuntu0.14.04.1-log [OK] Operating on 64-bit architecture -------- Storage Engine Statistics ------------------------------------------- [--] Status: +Archive BDB -Federated +InnoDB -ISAM -NDBCluster [-] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17) [--] Data in InnoDB tables: 3G (Tables: 39) [--] Data in MyISAM tables: 22G (Tables: 5) [!!] Total fragmented tables: 10 -------- Security Recommendations ------------------------------------------- [OK] All database users have passwords assigned -------- Performance Metrics ------------------------------------------------- [--] Up for: 127d 22h 20m 14s (746M q [67.539 qps], 25M conn, TX: 302B, RX: 411B) [--] Reads / Writes: 21% / 79% [--] Total buffers: 48.1G global + 2.7M per thread (151 max threads) [OK] Maximum possible memory usage: 48.5G (77% of installed RAM) [OK] Slow queries: 0% (13K/746M) [!!] Highest connection usage: 100% (152/151) [OK] Key buffer size / total MyISAM indexes: 24.0G/9.9G [OK] Key buffer hit rate: 99.9% (4B cached / 5M reads) [OK] Query cache efficiency: 33.6% (114M cached / 340M selects) [!!] Query cache prunes per day: 735211 [OK] Sorts requiring temporary tables: 0% (1K temp sorts / 5M sorts) [OK] Temporary tables created on disk: 0% (3K on disk / 394K total) [OK] Thread cache hit rate: 99% (8K created / 25M connections) [!!] Table cache hit rate: 8% (324 open / 3K opened) [OK] Open file limit used: 19% (3K/16K) [OK] Table locks acquired immediately: 99% (9B immediate / 9B locks) [OK] InnoDB data size / buffer pool: 3.6G/24.0G -------- Recommendations ----------------------------------------------------- General recommendations: Run OPTIMIZE TABLE to defragment tables for better performance Enable the slow query log to troubleshoot bad queries Reduce or eliminate persistent connections to reduce connection usage Increase table_cache gradually to avoid file descriptor limits Variables to adjust: max_connections (> 151) wait_timeout (< 28800) interactive_timeout (< 28800) query_cache_size (> 16M) table_cache (> 400)
Особое внимание стоит уделить строкам, помеченным символами [!!], параметру "Maximum possible memory usage" (он должен быть меньше общего объёма RAM) и секции Recommendations.