Выгода от использования Falcon Space
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Профилактика, диагностика работы сайта на Falcon Space
Введение
Смотреть видео Диагностика сайта https://rutube.ru/video/private/7bb64bd786403a0fd99a41d9bd798ec4/?p=mJpgjCB7j4l0cjAYe8L0ug
В данной статье мы рассмотрим как проводить диагностику сайта на платформе 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 поиск по нашей документации
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта