1с эксперт нужен ли. Методики решения технологических вопросов крупных внедрений

10.02.2024

Настольная книга 1С:Эксперта по технологическим вопросам. Издание 2 посвящена теории и практике решения проблем производительности и параллельности в информационных системах на платформе «1С:Предприятие 8».

В работе приводятся теоретические сведения, необходимые для понимания основных механизмов, обеспечивающих функционирование платформы «1С:Предприятие 8» и СУБД как многоуровневой многопользовательской системы. Кроме этого, дается алгоритм основного бизнес-процесса расследования проблем и приводятся практические приемы решения конкретных прикладных задач: описывается развертывание, настройка и использование инструментов для воспроизведения и расследования, а также возможные способы исправления, применяемые, когда причины проблем найдены.

При работе над изданием был учтен опыт подготовки сотрудников на аттестацию «1С:Эксперт по технологическим вопросам»: в книге собраны необходимые для подготовки к аттестации материалы и методики.

Также в книгу вошли методики, наработанные автором за длительный срок решения практических проблем производительности и параллельности. В значительной степени это методики профилактики, регулярного контроля и ранней диагностики.

Во втором издании скорректированы неточности в теоретической части и в инструкциях, а также добавлены новые материалы.

Книга предназначена для «1С:Экспертов по технологическим вопросам», для сотрудников ИТ-служб заказчика (ИТ-директоров, системных администраторов, методистов, администраторов СУБД), а также для сотрудников фирм-1С:Франчайзи: внедренцев, разработчиков, руководителей проектов.

Глава 1. Поднимемся на крыльцо, откроем дверь

Глава 2. Основной подход к решению проблем

  • Мы работаем только с проблемами
  • Как измерять, как получать цифры
  • Как устроена система
  • Бизнес-процесс решения проблем по ключевым операциям

Глава 3. Теория

  • Ключевые операции
  • Методика APDEX
  • Критичные ошибки
  • Расчет доступности системы
  • Регламентные работы транзакции. Откат транзакций
  • Блокировки данных СУБД. Уровни блокировок. Совместимость блокировок
  • Сведения об управляемых и объектных блокировках
  • Ошибки блокировок: таймауты и взаимоблокировки
    • Общие вопросы
    • Таймаут
    • Взаимоблокировка (deadlock)
  • Эскалация блокировок
  • Сведения о параллельности операций с данными разных типов
    • Общие сведения
    • Узкие места
    • Реальные транзакции Запись + Запись
    • Реальные транзакции Чтение + Запись
  • Сведения о размещении данных. Способ получения этих сведений
  • Сведения об индексах базы. Способ получения этих сведений.Кластерный и некластерные индексы
    • Важное дополнение по индексам для 8.3 без режима совместимости
  • Планы запросов. Получение плана запроса в профайлере SQL. Операторы плана,наиболее важные для нас
    • Получение плана запроса в профайлере SQL
    • Наиболее важные для нас операторы
  • Особенности чтения в объектной модели
  • Работа с SQL Server. Где хранятся временные таблицы. Где хранятся снимки Snapshot для уровня изоляции Read Committed Snapshot
  • Работа с SQL Server. Где размещать базы. Как переносить базы
  • Работа с SQL Server. Различия между полной (FULL) и простой (SIMPLE) моделями восстановления базы. Особенности сжатия журнала транзакций
  • Работа с SQL Server. Настройка и использование бэкапов различных видов

Глава 4. Инструкции

  • Как настроить сбор информации о загрузке оборудования и как оценить эту загрузку
  • Выяснение скорости диска
  • Настройка автоматического перезапуска сервера «1С»
    • Перезапуск средствами платформы
    • Перезапуск службы средствами операционной системы
  • Регламентные операции SQL Server и настройка их автоматического выполнения
    • Общие вопросы
    • Обновление статистики SQL Server
    • Очистка процедурного кеша (кеша планов)
    • Дефрагментация индексов
    • Реиндексация таблиц базы
    • Контроль выполнения регламентных заданий
  • Как включить технологический журнал «1С» и как его можно разбирать
  • Общий подход к анализу технологического журнала «1С»
  • Замеры производительности
    • Замер производительности отладчиком 1С8
    • Простейший код замера времени
    • Оценка производительности БСП (инструкция по установке, описание работы)
  • Требования к сети. Как проверить сеть
    • Общие вопросы
    • Ошибки сети
    • Недостаточная пропускная способность
    • Маршрутизация
    • Надстройки активного оборудования
    • Надстройки серверов ландшафта «1С»
    • Сетевые службы
  • Сбор статистики дампов (общий принцип)
    • Автоматизированный сбор дампов
    • Сбор дампов вручную
  • Работа с ЦКК. Общие принципы, стандартные возможности, первичная настройка
    • Общие вопросы
  • Работа с ЦКК. Настройка собственных контрольных процедур
  • Работа в профайлере. Как получить план запроса
  • Работа в профайлере. Как получить сумму duration
  • Работа в профайлере. Как получить граф взаимоблокировки
  • Работа в профайлере. Как получить сведения об эскалации блокировок
  • Работа с ЦУП. Общие принципы, стандартные возможности, общая последовательность работы, мастер настройки, таблица прав
    • Общие вопросы
    • Что надо сделать для начала работы
    • Мастер подключения к базе
    • Права, необходимые для работы ЦУП
  • Работа с ЦУП. Получение плана запроса
  • Работа с ЦУП. Разбор взаимоблокировки
  • Работа с ЦУП. Регламентный мониторинг
  • Работа в конфигураторе. Исправление запросов
    • Список правил
    • Пояснение к правилу 3 («ДЛЯ ИЗМЕНЕНИЯ»)
    • Пояснение к правилу 4 (соответствие индексов и условий запроса)
    • Пояснение к правилу 8 (не использовать подзапросы в условиях)
    • Пояснение к правилу 9 (не использовать соединения с подзапросами, а использовать временные таблицы)
    • Пояснение к правилу 10 (не соединять виртуальные таблицы с реальными,а также виртуальные с виртуальными)
    • Пояснение к правилу 13 (в проблемных запросах отказываться от ИЛИ)
    • Пояснение к правилу 14 (избегать запросов к пустым таблицам в режиме автоматического управления блокировками «1С»)
    • Пояснение к правилу 15 (не получать значение через точку от поля составного типа)
    • Пояснение к правилу 16 (понимать, как запрос может быть изменен платформой при работе механизма RLS)
  • Нагрузочные тесты
    • Простейший
    • Останов в отладчике
    • Останов в модальной форме
    • Нагрузочное тестирование групповыми обработками
    • Работа с Тест-центром. Общие принципы и стандартные возможности. Простой тест с помощью Тест-центра
    • Встраивание Тест-центра
    • Работа с Тест-центром. Шаблон полноформатного теста
    • Работа с Тест-центром. Универсальный нагрузочный тест
    • Работа со Стандартным нагрузочным тестом «1С». Общие принципы и стандартные возможности
    • Новые возможности 8.3 по функциональному и нагрузочному тестированию
    • Классификация нагрузочных тестирований
    • Расследование падений платформы, ошибок блокировок и причин неудовлетворительной производительности, которые воспроизвелись при выполнении теста
  • Бизнес-процесс общей диагностики
  • Работа в конфигураторе. Редактирование параметра времени ожидания блокировки
  • Работа с ТЖ. Как посмотреть, какие управляемые блокировки были установлены
  • Работа с ТЖ. Как расследовать конфликт на управляемых блокировках
  • Измерение динамики производительности по журналу регистрации
  • Про открытие модальных окон в транзакции
  • Ловушка для получения стека вызовов, когда отладка недоступна
  • Как собрать отказоустойчивый кластер 8.3 из двух серверов
  • Как оставить сервис лицензирования только на одном сервере кластера 8.3
  • Как собрать отказоустойчивый кластер 8.2 из двух серверов
    • Настройка отказоустойчивой схемы 8.2 с масштабированием и балансировкой нагрузки
  • Работа с ЦКК. Как сделать код доступным для отладки
  • Работа с ЦКК. Развертывание для целей контроля ошибок блокировок

Глава 5. Методики и дополнительная информация

  • Обзор платных и бесплатных инструментов
  • Требования с диска ИТС, применяемые при проверке на 1С:Совместимо!, влияющие на производительность
  • Уточнения, важные для общего понимания картины
  • Проектные и технические решения, приводящие к проблемам
  • Приемы конфигурирования, приводящие к проблемам
  • Ежедневный мониторинг

Глава 6. Дополнительные заметки

  • Экономический смысл автоматизации учета и оптимизации производительности
  • О режиме доступности 24х7
  • О методике расчета оборудования
  • О работах в различных СУБД

Глава 7. Заключение. О гарантиях работоспособности системы через несколько лет

Список сокращений

На курсе вы получите систематизированные знания по следующим вопросам:

1. Вводная часть

Какие знания и навыки дает данный курс
- Почему важно уметь самому проектировать, сопровождать и ускорять крупные системы 1С, а не надеятся на других
- Что дает сертификат 1С:Эксперт его обладателю
- Полезные материалы для подготовки к экзамену и просто повышения своего уровня

2. Как объективно оценить, насколько быстро работает система

Что такое индекс производительности (Apdex)
- Типовые средства БСП для вычисления индекса производительности
- Экспорт Apdex в другие системы
- Как быстро составить список ключевых операций и целевое время
- Как Apdex помогает при оптимизации производительности
Пример с реального проекта

3. Общие подходы к анализу производительности

С чего начать
- Какие методики в каком случае применимы
- Ускорение единичной операции (документ, отчет)
- Штатный замер производительности: подводные камни, когда замера достаточно, а когда нет
- Ускорение целой системы: инструменты, подходы, подводные камни
- Различие в методиках ускорения отдельных операций и целой системы, типичные ошибки новичков
- Как из отдельных кусков собрать общую картину - что происходит с системой

4. Производительность оборудования

Счетчики производительности железа на Windows и их расшифровка
- Интерактивная задача: настройка и использование инструментов анализа загрузки железа на Windows
- Интерактивная задача: использование команд Linux для оценки загрузки железа
- Счетчики производительности MS SQL Server и их расшифровка
- Интерактивная задача: настройка и использование инструментов для анализа загрузки MS SQL
- Как узнать, кто нагружает CPU, диски и неэффективно использует память на сервере СУБД
- Как узнать, кто нагружает CPU, диски и неэффективно использует память на сервере 1С:Предприятие
- Счетчики виртуальной машины на примере VMWare
- Особенности эксплутации виртуальных машин на примере VMWare
- В каких случаях апгрейд оборудования целесообразен
- Влияение настроек энергосбережения на производительность
- Экзотические случаи повышенной загрузки оборудования с реальных систем
- Пример расследования проблем производительности с реальной системы

Что такое индекс базы данных
- Когда индексы ускоряют выполнение запросов и почему
- Какие индексы бывают и какие поддерживает платформа 1С
- Чем хорош кластерный индекс
- Преимущества покрывающего индекса
- Когда индексы бесполезны
- Рекомендации по индексированию и почему оптимизатор запросов может принять решение, отличное от вашего
- Интерактивная задача по использованию индексов
- Как узнать каких индексов не хватает
- Как узнать, какие индексы лишние
- Особенности индексов, создаваемых платформой. Подводные камни.
- Почему фрагментация индексов снижает производительность и как ее устранить

6. Как получить информацию о запросах, которые выполняет 1С

Технологический журнал
- Трассировка
- Системы мониторинга на примере "1С:Центр управления производительностью"
- Что такое план запроса и как его получить с помощью трассировки, ТЖ и ЦУП

7. Технологический журнал 1С

Как настроить технологический журнал 1С (ТЖ)
- Полезные настройки технологического журнала (ТЖ)
- Как анализировать логи ТЖ: приемы и методики
- Регулярные выражения для анализа логов или почему вы начнете отвыкать от систем мониторинга
- Нормализация запросов из ТЖ
- Разбор нескольких скриптов для анализа ТЖ (исключительные ситуации, серверные вызовы, долгие запросы)
- Как ТЖ влияет на производительность, особенности сбора и анализа ТЖ на больших системах
- Примеры расследования проблем с реальных проектов: анализируем ТЖ быстро и бесплатно

8. Трассировка запросов и DMV для анализа запросов

Как получить трассировку в MS SQL Server
- Как анализировать трассировку
- Методики анализа трассировки
- Как найти в коде 1С запрос из трассировки
- Нормализация запросов из трассировки
- Примеры использования DMV для получения информации о запросах
- Как настроить логи Postgres для сбора информации о выполняющихся запросах
- Влияние трассировки на производительность
- Примеры расследования проблем с реальных проектов с помощью трассировки
- Интерактивная задача: настройка трассировки для MS SQL Server
- Интерактивная задача: настройка логов Postrges для сбора информации о запросах

9. План запроса

Зачем нужен план запроса
- Какие бывают планы запроса
- Как получить план запроса в MS SQL Server и Postgres
- Основные операторы плана запроса на примере MS SQL Server
- Признаки неоптимальных планов
- Влияние статистики СУБД на качество плана запроса
- Обновление статистики СУБД для MS SQL Server и Postgres
- Параллелизм в MS SQL Server и Postgres: влияние на производительность и подводные камни
- Интерактивная задача: разбор планов запроса с реальных крупных (высоконагруженных) систем 1С

10. Как писать запросы, которые работают быстро

Типичные причины неоптимальной работы запросов
- Приемы оптимизации запросов
- Особенности оптимизации запросов для крупных (высоконагруженных) систем 1С
- Разбор скрипта для анализа ТЖ для поиска запросов, больше всего нагружающих систему
- Обзор возможностей "1С: Центр управления производительностью" (ЦУП) для анализа запросов

11. Практическая задача (сквозной пример):

Анализ загруженности оборудования и MS SQL Server
- поиск несколькими способами и оптимизация запроса, больше всего нагружающего систему

12. Интерактивная задача: анализ неоптимального запроса

13. Транзакции в 1С

Что такое транзакция
- Как начать транзакцию в 1С явно
- Примеры, когда платформа неявно начинает транзакцию
- Что подразумевается под утверждением "1С не поддерживает вложенные транзакции"
- Свойства транзакции и их расшифровка
- Защита от грязного чтения в СУБД - "блокировочнике" и СУБД - "версионнике"
- Каким образом реализован механизм MVCC в MS SQL Server, Postgres и Oracle
- Для чего нужны уровни изоляции и блокировки
- Уровни изоляции в разных версиях платформы 1С
- Как узнать, что действие выполняется в транзакции

14. Лог транзакций MS SQL и WAL для Postgres, бекапы и отказоустойчивость СУБД

Для чего нужен лог транзакций MS SQL и WAL для Postgres
- Модель восстановления базы MS SQL Server
- Настройки для WAL Postgres, влияющие на производительность и надежность
- Особенности резервного копирования (backup) для разных моделей восстановления базы MS SQL Server
- Особенности резервного копирования (backup) для Postgres
- Обзор механизмов отказоустойчивости для MS SQL Server и Postrges
- Разделение нагрузки на чтение на две базы с помощью AlwaysOn

15. Транзакционные блокировки

Когда блокировка оправдана, а когда считается избыточной
- Отличие таймаута на блокировке и дедлока
- Что такое автоматический и управляемый режим блокировок
- Почему не нужен "Автоматический и управляемый" режим блокировок или как быстро перевести конфигурацию на управляемые блокировки
- Совместимость блокировок MS SQL Server и управляемых блокировок 1С
- Конфликты на управляемых блокировках 1С: как воспроизвести и как расследовать
- Конфликты на блокировках MS SQL Server: как воспроизвести и как расследовать
- Блокировки в Postgres
- Все способы, как узнать, кто кого заблокировал и найти причину
- Интерактивная задача: типичные ошибки при разработке, приводящие к конфликтам блокировок и как их избежать
- Обзор возможностей "1С: Центр управления производительностью" (ЦУП) для анализа конфликтов блокировок
- Практическая задача: расследование таймаута и дедлока с помощью "1С: Центр управления производительностью" (ЦУП)
- Интерактивная задача: разбор причин конфликтов блокировок с реальной системы 1С

16. Другие виды блокировок

Объектные блокировки
- Латчи (PAGELATCH, PAGEIOLATCH)

17. Как повысить надежность работы кластера 1С

Возможности кластера 1С для распределения нагрузки
- Возможности кластера 1С для защиты от чрезмерного потребления памяти процессом кластера
- Возможности кластера 1С для защиты от чрезмерного потребления памяти и CPU серверным вызовом
- Система мониторинга кластера 1С
- Сеансы и соединения для тонкого и толстого клиента

18. Лицензии 1С

Типичные проблемы с аппаратными ключами 1С и способы их решения
- Особенности эксплуатации программных лицензий 1С

19. Нагрузочное тестирование

Для чего нужно нагрузочное тестирование и чем оно отличается от функционального
- Что такое реалистичный нагрузочный тест
- Обзор возможностей конфигурации "1С: Тест центр"
- Пример простого нагрузочного теста
- Особенности подготовки, разработки и запуска больших нагрузочных тестов (до нескольких тысяч пользователей)
- Как найти оборудование для тестирования, лицензии для системного ПО и платформы 1С:Предприятие

20. Обзор возможностей системы мониторинга "1С: Центр контроля качества" для мониторинга продуктивной среды


Системные требования для курса

    Не менее 25 Гб свободного места для возможности развернуть тестовую базу

  • CPU Core i5 (4 ядра) или выше

Требуемое ПО:

    ОС Windows 7 и выше, либо Windows Sever 2008 R2 и выше

    Клиент-серверная версия 1С:Предприятие 8.3 (32х или 64х, сервер+клиентская часть)

    MS SQL Server 2012 или выше, версия Developer Edition или выше. Должны быть установлены Management Studio и Profiler.

    Развернута и подключена в клиент-серверном варианте база Test1CProf (актуальную ссылку на dt-файл базы уточнить у организаторов ). Объем тестовой базы в развернутом виде - 18 Гб

    В базе Test1CProf должен быть заблокирован запуск регламентных заданий

    Должны быть права для создания базы в клиент-серверном варианте, перезапуска служб: логин/пароль администратора кластера, пароль для sa, пароль для запуска службы сервера 1С:Предприятие и MS SQL

    Два монитора - для просмотра тренинга и выполнения практических задач

    Установленный "1С:Центр управления производительностью"

    Установленный Linux Ubuntu актуальной версии (Можно установить Linux на бесплатную среду виртуализации Oracle Virtual Box)

    Установленный Git Bash или Cygwin

В рамках программы претендент получит уникальный опыт в решении реальных задач и сможет сдать индивидуальный экзамен на получение сертификата «1С:Эксперт по технологическим вопросам» в удаленном формате.

Сертификат «1С:Эксперт по технологическим вопросам» – высшая ступень в иерархии сертификатов 1С. Он подтверждает наличие у его владельца знаний и навыков, необходимых для успешного решения любых технологических вопросов крупного внедрения, дает право компании-партнеру вести проекты ЦКТП совместно с компанией 1С, а также является обязательным для получения партнером статуса «1С:Центр ERP».

Получение сертификата «1С:Эксперт по технологическим вопросам» связано с существенными трудностями – большинству не хватает практического опыта, экзамен (в формате трехдневного тренинга) проводится раз в месяц в «Учебном центре №1», запись на экзамен ограничена.

Чтобы развить направление технологической экспертизы и упростить получение знаний по вопросам крупных внедрений фирма «1С» вводит следующие дополнения к существующей программе подготовки 1С:Экспертов:

  • При работе на проекте ЦКТП специалисты с сертификатом «1С:Эксперт по технологическим вопросам» могут брать себе в помощь специалистов с сертификатом «1С:Профессионал по технологическим вопросам», причем таких специалистов (претендентов) можно привлекать из другой фирмы-франчайзи. Наличие в команде претендентов поможет выполнить проект быстрее и качественнее, повысить индивидуальный рейтинг «Эксперта по технологическим вопросам».
  • При работе над проектом ЦКТП претендент получает практические знания и навыки под управлением опытного 1С:Эксперта, контактируя при этом со специалистами фирмы «1С».
  • После успешного окончания проекта специалист фирмы «1С» может назначить претенденту индивидуальный (вне графика) удаленный устно-письменный экзамен, аналогичный тому, который проводится в рамках очной аттестации (с возможностью пересдачи). При успешном прохождении экзамена будет выдан сертификат «1С:Эксперт по технологическим вопросам».

Участие претендента не отменяет обязательного требования по участию 1С:Эксперта в проекте ЦКТП. В проект ЦКТП можно привлечь не более трех претендентов, работающих совместно с 1С:Экспертом.

Право сдачи индивидуального экзамена получают те претенденты, которые не допускают по своей вине простоев и ошибок в рабочей зоне клиента, оперативно (в течение одного рабочего дня) предоставляют корректные данные по запросам от фирмы «1С» и применяют согласованные с фирмой «1С» рекомендации в течение трех рабочих дней. Претендент должен подать заявку на экзамен не ранее чем через один месяц после начала участия в проекте ЦКТП и не позднее срока окончания работ на проекте ЦКТП.

С более подробной информацией о новой программе «Претендент в 1С:Эксперты по технологическим вопросам» можно

"Настольная книга посвящена теории и практике решения проблем производительности и параллельности в информационных системах на платформе "1С:Предприятие 8". В работе приводятся теоретические сведения, необходимые для понимания основных механизмов, обеспечивающих функционирование платформы "1С:Предприятие 8" и СУБД как многоуровневой многопользовательской системы. Кроме этого, дается алгоритм основного бизнес-процесса расследования проблем и приводятся практические приемы решения конкретных прикладных задач: описывается развертывание, настройка и использование инструментов для воспроизведения и расследования, а также возможные способы исправления, применяемые, когда причины проблем найдены.

SpoilerTarget">Спойлер


Структура книги:

Введение. Поднимемся на крыльцо, откроем дверь

Основной подход к решению проблем

Теория

Ключевые операции

Методика APDEX

Критичные ошибки

Расчет доступности системы

Регламентные работы

Транзакции. Уровни изоляции транзакций. Явные и неявные транзакции. Вложенные транзакции. Откат транзакций

Блокировки данных СУБД. Уровни блокировок. Совместимость блокировок

Сведения о блокировках "1С"

Ошибки блокировок: таймауты и взаимоблокировки

Эскалация блокировок

Сведения о параллельности операций с данными разных типов

Сведения о размещении данных. Способ получения этих сведений

Сведения об индексах базы. Способ получения этих сведений. Кластерный и некластерные индексы

Планы запросов. Получение плана запроса в профайлере SQL. Операторы плана, наиболее важные для нас

Инструкции

Как настроить сбор информации о загрузке оборудования и как оценить эту загрузку

Выяснение скорости диска

Настройка автоматического перезапуска сервера "1С"

Регламентные операции SQL Server и настройка их автоматического выполнения

Как включить технологический журнал "1С" и как его можно разбирать

Общий подход к анализу технологического журнала "1С"

Замеры производительности

Требования к сети. Как проверить сеть

Сбор статистики дампов (общий принцип)

Работа с ЦКК. Общие принципы, стандартные возможности, первичная настройка

Работа с ЦКК. Настройка собственных контрольных процедур

Работа в профайлере. Как получить план запроса

Работа в профайлере. Как получить сумму duration

Работа в профайлере. Как получить граф взаимоблокировки

Работа в профайлере. Как получить сведения об эскалации блокировок

Работа с ЦУП. Общие принципы, стандартные возможности, общая последовательность работы, мастер настройки, таблица прав

Работа с ЦУП. Получение плана запроса

Работа с ЦУП. Разбор взаимоблокировки

Работа с ЦУП. Регламентный мониторинг

Работа в конфигураторе. Исправление запросов

Нагрузочные тесты

Бизнес-процесс общей диагностики

Работа в конфигураторе. Редактирование параметра времени ожидания блокировки

Методики и дополнительная информация

Обзор платных и бесплатных инструментов

Требования с диска ИТС, применяемые при проверке на 1С:Совместимо!, влияющие на производительность

Вещи, которые всегда есть смысл уточнить, для общего понимания картины

Проектные и технические решения, приводящие к проблемам

Приемы конфигурирования, приводящие к проблемам

Ежедневный мониторинг

Дополнительные заметки

Экономический смысл автоматизации учета и оптимизации производительности

О режиме доступности 24х7

О методике расчета оборудования

О работах в различных СУБД

Заключение. О гарантиях работоспособности системы через несколько лет