Системный анализ работы сайта на Falcon Space. Профилактика, диагностика работы сайта
Введение
В данной статье мы рассмотрим как проводить диагностику сайта на платформе 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.
Важно сразу понимать, что любое активно работающее приложение должно регулярно обслуживаться и мониториться. Без этого владельцу сайта придется полагаться только на волю случая и решать проблемы на поздней стадии, когда проблема уже напрямую сказывается на пользователях системы.
- Management
- Falcon Space Foundation
- Basic components
- Falcon Space Features
- Коммуникация с пользователем
- Дизайн, стилизация
- Integrations
- Каталоги
- Навигация
- Документы
- Additional component
- Продвижение, SEO
- Системные моменты Migrating components between Databases HOWTO. How can I quickly transfer a solution (tables, forms, pages) to another database? HOWTO. Where can I edit the search procedure, the Layout common elements procedure, the periodic launch procedure, and so on? HOWTO. How to do lazy loading for separate image HOWTO. Tracking changes to stored procedures and pages (logChanges) How to organize the periodic sending of an error report to the mail Feedback form for errors, suggestions How to differentiate rights at the level of the business logic of stored procedures Secure data processing and access verification in stored procedures How to enable the system log in the Core version of the platform To increase the size of downloads Using standard markup in the form of snippets for solving various tasks Working with the code editor Logging changes to objects using stored procedures as an example How to log clicks on certain elements in the system Processing old browsers (message about an outdated browser) How to track and limit a large number of similar queries on a site How to change the timeout of DB requests Safety. How to hide some headers (http headers) in requests Logging events in the application (trace) How to improve the performance of IIS (Internet Information Services web server) Windows Server, IIS, How to make the site work from a certain account Displaying a message about offline (No network) Developer's workplace via the terminal FAQ для системного администратора сервера Системный анализ работы сайта на Falcon Space. Профилактика, диагностика работы сайта Обновляемые метки времени в сообщениях на сайте Подсказка по интерфейсам хранимых процедур компонентов Защита от CSRF атак через дополнительный токен в формах Дополнительные параметры в @parameters (во многих хранимых процедурах) Массовая оптимизация картинок в менеджерах ресурсов Как логировать события в Falcon в другую базу (чтобы ограничить рост основной базы данных)
- HOWTO
- HOWTO Tables
- HOWTO Forms
- Working with SQL
- HOWTO JS
- HOWTO Layout
- Solve problems
Falcon Space Platform
This is a reduction in the cost of ownership
at the expense of fewer people to support
This is a quick change
while using the program
This is a modern interface
full adaptation for mobile devices
- Falcon Space Video
- Platform features demo will allow you to understand how this or that component looks and works
- Have a question? Write to the chat at the bottom right