Оптимизация производительности
INFRAX включает множество встроенных механизмов оптимизации для обеспечения высокой производительности даже при работе с большими объемами данных и множеством узлов.
Обзор оптимизации
Производительность INFRAX зависит от множества факторов: количества узлов, интенсивности мониторинга, объема исторических данных и ресурсов сервера.
Встроенные механизмы оптимизации
- Автоматическая ротация данных — удаление старых данных мониторинга
- Интеллектуальная оптимизация графиков — прореживание точек данных
- Асинхронная обработка задач — фоновое выполнение операций
- Кэширование данных — уменьшение нагрузки на базу данных
- Оптимизация запросов — эффективные SQL запросы
Факторы влияющие на производительность
| Фактор | Влияние | Способ оптимизации |
|---|---|---|
| Количество узлов | Прямое | Увеличение ресурсов сервера |
| Интервалы опроса | Прямое | Настройка оптимальных интервалов |
| Глубина хранения данных | На диск и запросы | Уменьшение срока хранения |
| Количество метрик | На БД и сеть | Отключение ненужных метрик |
| Размер базы данных | На запросы | Регулярная очистка, индексы |
Управление данными мониторинга
Автоматическая ротация данных
INFRAX автоматически удаляет старые данные мониторинга для контроля размера базы данных.
Настройка глубины хранения
В настройках приложения (раздел "Мониторинг") можно указать параметр "Глубина хранения данных мониторинга (дней)".
- Данные старше указанного срока автоматически удаляются
- Процесс выполняется периодически в фоновом режиме
- Рекомендуемое значение: 30-90 дней
Более длительное хранение данных позволяет анализировать исторические тренды, но увеличивает размер БД и может замедлить запросы. Найдите оптимальный баланс для вашей инфраструктуры.
Очистка неактуальных данных
Помимо автоматической ротации, рекомендуется периодически:
- Удалять данные по удаленным узлам
- Очищать историю выполненных задач
- Удалять старые записи сессий
- Архивировать закрытые тикеты
Оптимизация графиков
При отображении графиков мониторинга INFRAX использует интеллектуальную систему оптимизации для обеспечения плавной работы интерфейса.
Ограничение количества точек
Параметр "Максимальное количество точек на графиках" определяет максимальное число точек данных, отображаемых на графике.
Как это работает?
- При запросе данных система подсчитывает количество точек
- Если точек больше максимума, применяется оптимизация
- Данные прореживаются с сохранением общей формы графика
- Пики и аномалии сохраняются для точности
Аппроксимация данных
Параметр "Включить аппроксимацию данных при превышении максимального количества точек" управляет режимом прореживания:
| Режим | Описание | Применение |
|---|---|---|
| Включено | Умное прореживание с сохранением важных точек | Рекомендуется для лучшей визуализации |
| Выключено | Простое равномерное прореживание | Более быстрая обработка, возможна потеря деталей |
Рекомендуемые настройки
Для небольших инфраструктур (до 100 узлов)
- Максимум точек: 2000-3000
- Аппроксимация: Включена
Для средних инфраструктур (100-500 узлов)
- Максимум точек: 1500-2000
- Аппроксимация: Включена
Для крупных инфраструктур (500+ узлов)
- Максимум точек: 1000-1500
- Аппроксимация: Включена
Слишком большое количество точек может замедлить работу браузера, особенно при одновременном отображении нескольких графиков. Оптимизация графиков критична для комфортной работы.
Оптимизация базы данных
Автоматические процессы
INFRAX автоматически выполняет оптимизацию базы данных:
- Создание индексов — для ускорения запросов
- Анализ таблиц — обновление статистики для оптимизатора
- Очистка временных данных — удаление устаревших записей
- Оптимизация таблиц — дефрагментация и пересборка
Мониторинг размера БД
Регулярно проверяйте размер базы данных для планирования ресурсов:
PostgreSQL команды:
-- Размер базы данных
SELECT pg_size_pretty(pg_database_size('infrax'));
-- Размер таблиц
SELECT
schemaname,
tablename,
pg_size_pretty(pg_total_relation_size(schemaname||'.'||tablename)) AS size
FROM pg_tables
WHERE schemaname = 'public'
ORDER BY pg_total_relation_size(schemaname||'.'||tablename) DESC
LIMIT 10;
Рекомендации по оптимизации БД
- Используйте SSD для хранения базы данных
- Выделите достаточно памяти для кэша PostgreSQL
- Настройте параметры
shared_buffersиwork_mem - Регулярно выполняйте
VACUUMиANALYZE - Мониторьте медленные запросы и оптимизируйте их
Кэширование
INFRAX использует различные уровни кэширования для снижения нагрузки на базу данных и ускорения отклика системы.
Типы кэширования
| Тип | Что кэшируется | Время жизни |
|---|---|---|
| Кэш метрик | Последние значения метрик | 1-5 минут |
| Кэш конфигурации | Настройки системы | До изменения |
| Кэш узлов | Список узлов и их параметры | До обновления |
| Кэш пользователей | Информация о пользователях | До изменения |
| Кэш сессий | Данные сессий пользователей | Время сессии |
Браузерное кэширование
Веб-интерфейс также использует кэширование:
- LocalStorage — для хранения настроек интерфейса
- IndexedDB — для хранения больших объемов данных
- Service Workers — для offline-режима (если включен)
При проблемах с интерфейсом попробуйте очистить кэш браузера или используйте режим инкогнито для диагностики.
Мониторинг производительности
Ключевые метрики
Отслеживайте следующие метрики для контроля производительности INFRAX:
Сервер
- CPU Usage — загрузка процессора
- Memory Usage — использование RAM
- Disk I/O — нагрузка на диск
- Network I/O — сетевой трафик
База данных
- Connection count — количество соединений
- Query duration — время выполнения запросов
- Database size — размер БД
- Cache hit ratio — эффективность кэша
Приложение
- Response time — время отклика
- Request rate — количество запросов
- Error rate — частота ошибок
- Active sessions — активные сессии
Признаки проблем с производительностью
- Медленная загрузка страниц (более 3-5 секунд)
- Зависание интерфейса при загрузке графиков
- Высокая загрузка CPU или памяти на сервере
- Медленные SQL запросы (более 1 секунды)
- Постоянный рост размера базы данных
- Ошибки timeout при выполнении операций
Рекомендации
🚀 Регулярно обновляйте систему
Новые версии INFRAX часто содержат оптимизации производительности. Устанавливайте обновления своевременно.
📊 Настройте оптимальные интервалы мониторинга
Не все узлы требуют опроса каждую минуту. Настройте разные интервалы для разных типов устройств.
🗄️ Контролируйте размер базы данных
Настройте разумную глубину хранения данных. Для большинства случаев достаточно 30-60 дней.
💻 Используйте адекватное оборудование
Убедитесь, что сервер имеет достаточно ресурсов для вашей инфраструктуры:
- До 100 узлов: 4 CPU, 8 GB RAM, SSD
- 100-500 узлов: 8 CPU, 16 GB RAM, SSD
- 500+ узлов: 16+ CPU, 32+ GB RAM, NVMe SSD
🔧 Оптимизируйте графики
Настройте параметры отображения графиков в соответствии с размером инфраструктуры. Включите аппроксимацию данных.
🧹 Регулярно очищайте неиспользуемые данные
- Удаляйте старые узлы, которые больше не мониторятся
- Архивируйте или удаляйте старые закрытые тикеты
- Очищайте историю выполненных задач
- Удаляйте старые записи удаленных сессий
📈 Мониторьте саму систему INFRAX
Добавьте сервер INFRAX как узел мониторинга для отслеживания его собственной производительности.
🔍 Анализируйте медленные операции
Если какие-то операции выполняются медленно, проверьте логи и определите узкие места. Возможно, потребуется оптимизация конкретных запросов или процессов.
⚡ Используйте асинхронные операции
Для массовых операций используйте систему задач вместо синхронного выполнения. Это не блокирует интерфейс и распределяет нагрузку.
🌐 Оптимизируйте сетевую инфраструктуру
Убедитесь, что сеть между INFRAX и мониторируемыми узлами имеет достаточную пропускную способность и низкую латентность.