Как решать проблемы оптимизации быстродействия falcon приложения
Как прорабатывать ошибки замедления системы
В случае если ваше приложение работает корректно, но иногда возникают затупы приложения, попробуйте следующий порядок действий
1. смотрим as_perf
Процедура показывает узкие места по памяти, по процессору, по быстродействию, блокировки. Для работы процедуры должны быть права на трассировку.
2. смотрим as_trace
Смотрим в первую очередь ошибки (code=exception).
Также смотрим и другие типы записей. Отслеживаем частоту создания записей (может быть так, что, например, код tg из-за ошибки работы с телеграм создает по 5 записей в 1 секунду при обращении к серверу). Смотрим прирост записей за сегодня, вчера и общее количество записей по типам.
select code, count(*) totalCount,
(select count(*) from as_trace t3 where t3.code=t1.code and cast(created as date) = cast(dateadd(day, -1, getdate()) as date) ) yesterday,
(select count(*) from as_trace t2 where t2.code=t1.code and cast(created as date) = cast(getdate() as date) ) today
from as_trace t1
group by code
3. Смотрим Event Viewer на сервере. В нем могут быть системные ошибки, которые не попадают в базу.
4. Ручная локализация проблемы
Делаем проход по основным страницам кабинета. Наша задача - найти страницу, после которой начинаются замедления. Дело может быть либо в sql самой странице, либо в том, что страница генерирует кучу сниппетов компонентов, которые затем массово инициализируются (например, если в строку таблицы вывести сниппет формы и поставить pagesize=100. В результате будет 100 параллельных запросов на сервер, что плохо).
Если место найдено - пробуем отключить все в проблемном компоненте и оцениваем работу системы без него. Если все хорошо, то проблема найдена и дальше постепенно добавляем в компоненте различные реализованные возможности, которые мы ранее закомментировали (сложные фильтрации, сортировки, вывод сниппетов компонентов)
Частые возможные проблемы
- много однотипных запросов с каждой строки таблицы. Смотрите в консоли браузера какие запросы отправляются - если их очень много и они непрерывным потоком идут долго - вероятно ваша страница допускает множество подгружаемых элементов (форм) на каждую выводимую строку таблицы. Обновление Июнь 2021. Внедрили код отслеживания таких дублей запросов dblreq в as_trace
- плохой sql - оптимизируйте плохие запросы. Найти их можно через as_perf или через мониторинг выполняющихся запросов через SQL Profiler Express.
- проблема с телеграм или другим внешним вызовом (уведомления). Проверьте, что нет ошибок и уберите токен телеграма в web.config
- тяжелые периодические sync процедуры. Не делайте очень тяжелых процедур каждые N секунд. Это будет постоянно грузить систему.
- множественная ошибка почты. Проверьте, что при отправке почты не возникает исключений и она корректно отправляется через тестовую форму в панели управления.
- плохие запросы select к as_trace (и к другим большим таблицам). Находим самые большие таблицы в БД и анализируем запросы к ним.
Google поиск по нашей документации
- Руководства
- Основа Falcon Space
- Основные компоненты
- Возможности
- Коммуникация с пользователем
- Дизайн, стилизация, юзабилити
- Лендинги
- Универсальный API
- Примеры интеграций
- Каталоги
- Навигация
- Документы
- Дополнительные компоненты
- Продвижение, SEO
- Системные моменты
- Системное администрирование
- HOWTO
- Таблицы
- Формы
- Загрузка файлов, картинок
- Работа с SQL
- HOWTO JS
- HOWTO Верстка
- Решение проблем Решение проблем. Нюанс с правильными select в хранимых процедурах (Проблема лишнего select в запросах GetItems) Не используйте системные названия переменных username, langID Показывается неактуальное содержимое хранимой процедуры в программе. Переименование хранимых процедур Что делать, когда есть непонятная ошибка? Распространенные ошибки в Falcon Space Как решать проблемы оптимизации быстродействия falcon приложения Как решить проблему с почтовыми фильтрами SPAM (СПАМ) Спецсимволы на странице выводятся как знаки вопроса Нет доступных сокетов. Решение проблемы с 6+ вкладками в браузере Механизм анализа ошибок Падение сайта при локализации поля страницы [menuPreTitle]
Выгода от использования Falcon Space
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта