Подробное содержание материалов
1. Вводная часть
- Какие знания и навыки дает данный курс
- Что дает сертификат 1С:Эксперт его обладателю
- Карьера специалистов, получивших сертификат 1С:Эксперт
- Навыки 1С:Эксперта для проектирования, разработки, сопровождения и ускорения крупных систем 1С
- Внедрения в КОРП сегменте, большие базы, высокая нагрузка: почему здесь никак без 1С:Эксперта
- Архитектор программного обеспечения: зачем ему знания 1С:Эксперта
- Полезные материалы для подготовки к экзамену и просто повышения своего уровня
2. Производительность глазами ИТ менеджера (Руководитель проектов, Директор ИТ)
- Легко сказать, не просто сделать: полноценный тюнинг или просто набор рекомендаций?
- Настройки
- Вертикальное масштабирование: подбор оборудования, очевидные моменты при апгрейде
- Горизонтальное масштабирование: кластеризация, сплит базы
3. Обзор средств и методик мониторинга и расследования проблем производительности и стабильности
4. Как объективно оценить, насколько быстро работает система
- Что такое индекс производительности (Apdex)
- Типовые средства БСП для вычисления индекса производительности
- Как быстро составить список ключевых операций и целевое время
- Apdex и SLA для ежедневного мониторинга
- Apdex для проекта по нагрузочному тестированию
- Apdex для проекта по оптимизации: методика ЦКТП для ускорения 1С
- Обратный Apdex, DeltaApdex
- Как по Apdex понять, насколько можно увеличить скорость работы
- Примеры с реальных проектов
5. Когда уже тормозит
- С чего начать расследование
- Когда целесообразно ускорение единичной операции
- Штатный замер производительности: когда применим и подводные камни
- Когда замера не достаточно: скорость скрытых действий платформы 1С
- Когда замера не достаточно: время на взаимодействие клиент-сервер
- Оптимизация клиент-серверного взаимодействия
- Когда необходим поиск и устранение узких мест всей системы
- Ускорение целой системы: инструменты, подходы, подводные камни
- Различие в методиках ускорения отдельных операций и целой системы, типичные ошибки новичков
- Как из отдельных кусков собрать общую картину - что происходит с системой
6. Производительность оборудования
- Счетчики производительности железа на Windows и их расшифровка
- Интерактивная задача: настройка анализа загрузки железа на Windows
- Мониторинг железа на Linux
- Счетчики производительности MS SQL Server и их расшифровка
- Как узнать, кто нагружает CPU, диски и неэффективно использует память на сервере 1С:Предприятие
- Утечки памяти и прожорливые вызовы сервера: как различить и как расследовать
- Как узнать, кто нагружает CPU, диски и неэффективно использует память на сервере СУБД
- Счетчики виртуальной машины на примере VMWare
- Особенности эксплуатации виртуальных машин на примере VMWare
- Чек-листы по настройке продуктивного контура для максимальной производительности
7. Средства диагностики 1С и СУБД
- Технологический журнал (ТЖ)
- Практическая задача по настройке ТЖ и расследовании проблемы с помощью ТЖ
- Динамические представления для MS SQL и Postgres
- Трассировка Extended Events
- Нормализация запросов из трассировки или ТЖ
- Как из трассировки или DMV найти запрос в коде конфигурации 1С
- Практическая задача по настройке трассировки и расследованию проблемы с помощью трассировки
- Как настроить логи Postgres для сбора информации о выполняющихся запросах
- В каких случаях ТЖ и трассировка влияют на производительность
- 1С:Центр управления производительностью
8. Проектируем, чтобы работало быстро: индексы базы данных
- Что такое индекс базы данных
- Когда индексы ускоряют выполнение запросов и почему
- Какие индексы бывают и какие поддерживает платформа 1С
- Чем хорош кластерный индекс
- Преимущества покрывающего индекса
- Когда индексы бесполезны
- Рекомендации по индексированию и почему оптимизатор запросов может принять решение, отличное от вашего
- Интерактивная задача по использованию индексов
- Как узнать каких индексов не хватает
- Как узнать, какие индексы лишние
- Особенности индексов, создаваемых платформой. Подводные камни.
9. Анализируем работу запроса: план запроса
- Зачем нужен план запроса
- Какие бывают планы запроса
- Как получить план запроса в MS SQL Server и Postgres
- Основные операторы плана запроса: сравнение для MS SQL Server и Postgres
- Признаки неоптимальных планов: разбор нескольких планов с реальных проектов
- Влияние статистики СУБД на качество плана запроса
- Параллелизм в MS SQL Server и Postgres: влияние на производительность и подводные камни
10. Сопровождаем, чтобы работало быстро: обслуживание индексов и статистики для MS SQL Server и Postgres
- Как MS SQL Server и Postgres автоматически обновляют статистику и когда ее нужно обновлять дополнительно
- Практическая задача: настройка плана обслуживания индексов и статистики для небольших баз на примере MS SQL Server
- Обслуживание больших баз и баз 24/7 на примере MS SQL Server
- Обслуживание баз Postgres
11. Пишем запросы, которые работают быстро
- Рекомендации по написанию запросов
- Типичные причины неоптимальной работы запросов
- Приемы оптимизации запросов
- Особенности разработки запросов для крупных (высоконагруженных) систем 1С
12. Транзакции с точки зрения 1С и СУБД
- Что такое транзакция
- Как начать транзакцию в 1С явно
- Примеры, когда платформа неявно начинает транзакцию
- Неявные транзакции для СУБД на примере MS SQL Server
- Что подразумевается под утверждением "1С не поддерживает вложенные транзакции"
- Свойства транзакции и их расшифровка
- Защита от грязного чтения в СУБД - "блокировочнике" и СУБД - "версионнике"
- Каким образом реализован механизм MVCC в MS SQL Server, Postgres и Oracle
- Для чего нужны уровни изоляции транзакций и транзакционные блокировки
- Уровни изоляции в разных версиях платформы 1С
- Как узнать, что действие выполняется в транзакции
13. Лог транзакций MS SQL Server и WAL для Postgres, бэкапы и отказоустойчивость СУБД
- Для чего нужен лог транзакций MS SQL Server и WAL для Postgres
- Модель восстановления базы MS SQL Server
- Настройки для WAL Postgres, влияющие на производительность и надежность
- Особенности резервного копирования (backup) для разных моделей восстановления базы MS SQL Server
- Особенности резервного копирования (backup) для Postgres
- Обзор механизмов отказоустойчивости для MS SQL Server и Postgres
14. Разрабатываем так, чтобы обеспечить высокую параллельность: транзакционные блокировки
- Когда блокировка оправдана, а когда считается избыточной
- Что такое автоматический и управляемый режим блокировок
- Как быстро перевести конфигурацию на управляемые блокировки
- Отличие таймаута на блокировке и дедлока
- Совместимость управляемых блокировок 1С
- Совместимость блокировок MS SQL Server
- Блокировки в Postgres
- Все способы, как узнать, кто кого заблокировал и найти причину
- Практическая задача: конфликты на управляемых блокировках 1С - как воспроизвести и как расследовать
- Практическая задача: конфликты на блокировках СУБД - как воспроизвести и как расследовать
- Практическая задача: подходы к разработке, приводящие к конфликтам блокировок и как разрабатывать правильно
- Практическая задача: расследование таймаута и дедлока с помощью "1С: Центр управления производительностью" (ЦУП)
- Интерактивная задача: разбор причин конфликтов блокировок с реальной системы 1С
15. Другие виды блокировок
- Объектные блокировки
- Латчи (PAGELATCH, PAGEIOLATCH)
16. Как повысить надежность работы кластера 1С
- Возможности кластера 1С для распределения нагрузки
- Возможности кластера 1С для защиты от чрезмерного потребления памяти процессами кластера
- Возможности кластера 1С для защиты от чрезмерного потребления памяти и CPU серверным вызовом
- Система мониторинга кластера 1С
- Сеансы и соединения для тонкого и толстого клиента
- Счетчики потребления ресурсов в кластере 1С
- Ограничения потребления ресурсов в кластере 1С
17. Лицензии 1С
- Типичные проблемы с аппаратными ключами 1С и способы их решения
- Особенности эксплуатации программных лицензий 1С
18. Проверяем в "песочнице", а не в продуктиве: нагрузочное тестирование
- Для чего нужно нагрузочное тестирование и чем оно отличается от функционального
- Нагрузочное тестирование как часть приемо-сдаточных испытаний
- Нагрузочное тестирование для выявления нестабильно воспроизводимых проблем
- Нагрузочное тестирование для сайзинга (подбора) оборудования
- Стресс-тестирование
- Что такое реалистичный нагрузочный тест
- Обзор возможностей конфигурации "1С: Тест центр"
- Пример простого нагрузочного теста
- Особенности подготовки, разработки и запуска больших нагрузочных тестов (до нескольких тысяч пользователей)
- Как найти оборудование для тестирования, лицензии для системного ПО и платформы 1С:Предприятие