Системный анализ работы сайта на Falcon Space. Профилактика, диагностика работы сайта
Введение
Видео на ВК (август 2024) - https://vk.com/video-70971776_456239407
В данной статье мы рассмотрим как проводить диагностику сайта на платформе Falcon Space.
Анализ работы сайта сводится к анализу работы базы данных SQL Server.
В панели администратора есть средство диагностики /diag
Пройдемся по ключевым отчетам. Эти отчеты позволяют выявить скрытые проблемы в работе сайта.
Trace codes
Показывает статистику по trace кодам во времени. Есть возможность посмотреть последние записи по данному коду, а также удалить коды.
Описание кодов есть в документации платформы.
Красные числа показывают аномальные значения по сравнению с соседними числами.
Поиск проблемных процедур SQL
Весь проект Falcon Space - это 95% работы в хранимых процедурах. Большинство проблемных мест может встретиться именно в проблемных хранимых процедурах.
Здесь вы можете найти проблемные хранимые процедуры - по времени выполнения, по количеству чтений или записей и др.
Также по процедуре можно посмотреть какая именно часть кода в процедуре вызывает проблемы (плюсик рядом с названием процедуры).
Поиск проблемных запросов SQL
Здесь мы ищем проблемный SQL, но уже в контексте отдельных запросов.
Здесь есть несколько дополнительных параметров, которых нет у процедур.
Эти таблицы позволяют найти проблемные, по различным параметрам (через сортировки):
- кто занимает процессор?
- кто выполняется очень часто?
- где много чтений или записей?
- где идут записи во временную таблицу tempdb (spills)?
- где выдается слишком большое количество строк?
Общий анализ сайта
- Week SP changes - отчет по изменениям хранимых процедур
- user activity - посмотреть активность пользователей по trace
- falcon diagnostics - проверка базовых правил настройки основных компонентов (таблицы, формы, страницы и т.д.)
- exceptions - таблица зафиксированных ошибок (исключений)
- where was user - sql запрос для анализа пути посещения конкретного пользователя в нужный момент времени
- search text in db - запрос для поиска текста по таблицам базы данных и по хранимым процедурам
- suggestions - выводит данные из trace по предложениям на сайте (если подключена эта форма)
- cache items - анализ состояния кеша на сайте (что хранится в памяти сервера).
Поиск проблем по базе данных
DB State - состояние базы данных
- Big Tables - показывает таблицы с большим количеством строк. Запросы к очень большим таблицам (>500 тысяч строк) необходимо писать особенно аккуратно. Один плохой запрос к очень большой таблице может очень негативно сказываться на всей системе.
- SQL Server Memory Usage - сколько потребляет в реальности памяти SQL Server. Если это значение малое, то что-то не так в настройках SQL Server (как минимум, нужно перезагрузить и следить за показателем)
- Locks - таблица показывает существующие блокировки на базе данных.
Search bad queries - поиск проблемных запросов
Фактически запросы выше уже решают эту задачу, но мы оставили их для дополнительного анализа
- SQL Plan Warnings - показ запросов с проблемами в Плане исполнения. Эти запросы можно улучшить - скопируйте их в Management studio и посмотрите план выполнения запроса.
- Add indexes, delete indexes - где можно добавить индексы, где можно убрать индексы (где количество записей превышает количество чтений).
- High CPU - запросы, где сильно нагружен CPU
- Long Duration - запросы, которые долго выполняются
- SQL Stress - специальный код SQL для проверки как быстро выполняется некий sql код при большом количестве итераций (например 1000 выполнений).
Bad Events - события на сайте, которые имеет смысл изучить
- Huge SP - запросы, которые выдали очень много строк. Если у вас есть запросы, выдающие более 1000 строк за 1 раз, то это создает большие циклы в приложении, что может нагружать процессор.
- DBL Request - дубли одинаковых ajax запросов. Если таких запросов слишком много с одной страницы - в базе фиксируется этот момент.
- Slow request - фиксация медленных ajax запросов.
- Not found - заход на несуществующую страницу
- No access - фиксация момента, когда пользователь запросил некий объект, но получил отказ в доступе.
Security - диагностика проблем безопасности
- SP with DynSQL - ищем по SQL динамическое выполнение запросов (когда запрос выполняется не как вызов хранимой процедуры, а как выполнение запроса из сформированной строки с SQL).
- Search XSS - ищем по процедурам возможные включения скриптов
Заключение
Периодический осмотр приложения позволяет фиксировать проблемные ситуации и решать их на ранней стадии. Если не решать возникающие проблемы, то рано или поздно они будут сказываться на работе приложения:
- данные в таблицах растут - необходимо оптимизировать запросы, очищать ненужные логовые данные
- идут доработки системы, пишется новый SQL - это может порождать ошибки или новые проблемы производительности
- злоумышленник лезет в систему - важно понять где он был, что пробовал делать
- кто-то парсит данные сайта - можно посмотреть его IP и какие страницы он парсил
- система иногда подвисает - нужно искать проблемный запрос, который вызывает затуп системы.
- почему-то уменьшилось количество регистраций или других ключевых действий - надо смотреть ошибки, события notfound.
Важно сразу понимать, что любое активно работающее приложение должно регулярно обслуживаться и мониториться. Без этого владельцу сайта придется полагаться только на волю случая и решать проблемы на поздней стадии, когда проблема уже напрямую сказывается на пользователях системы.
Google поиск по нашей документации
- Руководства
- Основа Falcon Space
- Основные компоненты
- Возможности
- Коммуникация с пользователем
- Дизайн, стилизация, юзабилити
- Лендинги
- Универсальный API
- Примеры интеграций
- Каталоги
- Навигация
- Документы
- Дополнительные компоненты
- Продвижение, SEO
- Системные моменты
- Системное администрирование Установка веб-платформы Falcon Space на сервер/хостинг Перенос компонентов между БД Как организовать периодическую отправку на почту отчета по ошибкам Как включить системный лог в Core версии платформы Как изменить таймаут запросов к БД Как улучшить производительность IIS (IIS Perfomance Boost) Windows Server, IIS, Как сделать, чтобы сайт работал от определенной учетной записи FAQ для системного администратора сервера Системный анализ работы сайта на Falcon Space. Профилактика, диагностика работы сайта Как сделать копию сайта для тестов
- HOWTO
- Таблицы
- Формы
- Загрузка файлов, картинок
- Работа с SQL
- HOWTO JS
- HOWTO Верстка
- Решение проблем
Выгода от использования Falcon Space
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта