Оптимизация высоконагруженных конфигураций: история маленькой победы, или советы тем, кто столкнулся с проблемой впервые и не знает, что делать

24.05.22

База данных - HighLoad оптимизация

Пост будет больше интересен руководителям отделов ИТ сопровождения или проектным менеджерам, перед которыми будет стоять задача решения проблемы деградации производительности баз данных 1С. Пост для тех, кому эта тема нова, нет особого опыта, и с ходу непонятно, с чего начать.

Всем привет.

Пост будет больше интересен руководителям отделов ИТ сопровождения, или проектным менеджерам, перед которыми будет стоять задача решения проблемы деградации производительности баз данных 1С. Пост для тех, кому эта тема нова, нет особого опыта, и с ходу непонятно, с чего начать.

 

 

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

Итак, у нас есть проблема: база данных 1С “висит”, пользователей из базы “выкидывает”, работать невозможно. При этом предварительный анализ показал, что сервис в запущенном состоянии, и работа предстоит долгая и упорная, с ходу не поборешь.

Руководство, мягко говоря, жутко недовольно, “стоит за дверью с вилами”, так как деятельность предприятия фактически парализована, и лично ваша судьба в компании висит на волоске и зависит от решения данного вопроса. Самое важное в этот момент – сохранять спокойствие, не давать ложных надежд о сиюминутном результате, подготовить лицо, принимающее решение (ЛПР) к, вероятно, долгому и сложному пути (кстати, при проведении работ по оптимизации крайне рекомендуется договориться с ним о том, чтобы количество изменений (не связанных с оптимизацией) в базе данных 1С в этот период было минимальным, или отсутствовало).

 

 

Почему с наскока, вероятно, решить проблему не получится:

1. Для поиска узких мест в базе данных 1С нужен «взгляд со стороны», отследить по формальным признакам зачастую – невозможно;

2. Оптимизация - не разовая работа, а постоянный, живой, процесс повышения эффективности работы базы (можно сравнить со стройкой моста: после того как он построен, необходим регулярный его ремонт, так и в данном случае);

3. Найти все узкие места (в том числе даже при помощи самых современных систем мониторинга) сразу не всегда бывает возможным, так как часть из них может возникать только в случае определенных событий и сценариев.

Трезво оцените свои силы и решите, что будет выгоднее компании на первом этапе: купить экспертизу или растить свою.

Важно учитывать, что проблемы могут быть где угодно, или сразу везде, поэтому учитываем необходимость в проработке следующих моментов:

  1. Типовая программная оптимизация:
    • устранение долгих запросов в коде (система мониторинга долгих запросов, нагрузки на сервер – наше всё; в моем случае это универсальная, самописная система)
    • Выявление и выставление оптимальных настроек SQL, кластера 1С. Выявление зачастую возможно только опытным путем, так как существует множество нюансов, наложение которых делает стандартные рекомендации бесполезными.
    • организация обслуживания базы данных типовыми (как минимум) средствами
    • добавление регулярных профилактических работ (автоматическая перезагрузка служб) в технологические окна (как показывает практика, это сильно помогает даже когда все остальные пункты отработаны)
    • очистка лишней информации (например, десятки миллионов неактуальных (ненужных) записей в регистре, что постоянно перебираются в ходе вполне себе корректных запросов, в результате чего сильно тормозят работу базы данных 1С)
    • отключение версионирования (да-да, зачастую оно не нужно, и хватает резервных копий для того или иного анализа – в случае высоконагруженных систем это обычное дело) и иные хитрости
    • обращаем внимание на взаимодействие базы данных 1С с иными системами (зачастую, проблемы могут вызывать они, например, при заборе данных из нашей базы данных 1С – и опять же: мониторинг нам в помощь) – устраняем проблему
  2. Логическая программная оптимизация: выявление избыточных операций (такое вполне себе может быть), переговоры с бизнесом об отказе от них (не все партнеры предлагают эту услугу, зачастую ограничиваются пунктом 1, да и то не по всем мероприятиям)
  3. Апгрейд оборудования (важно этот пункт отработать после того, как проработаны два предыдущих, так как далеко не всегда дело в нехватке серверных мощностей, а зачем нам лишний закуп?). Есть множество рекомендаций на сей счет, но основная суть (внимание: баян) – берите мощности с запасом, не прогадаете (иначе можно быстро похерить все те результаты, которых удалось добиться программной и логической оптимизацией)
  1. Раздельное размещение базы данных на сервере(ах) – перепроверяйте эффект: несмотря на однозначные рекомендации партнеров по разнесению базы данных на один сервер, а работу пользователей на другой, отнюдь не всегда это дает положительный эффект (поэтому пробуйте оба варианта, и в зависимости от базы - результат может вас удивить)
  1. Изысканные архитектурные решения, вроде разделения базы данных на части: в одной крутятся отчеты, в другой осуществляется документооборот (или иначе)
  1. Взаимодействие с фирмой 1С через центры корпоративной технологической поддержки(проект КЦТП)

И вот, наконец, победа - приходит долгожданный эффект!

 

 

Но что потом?

 

 

Есть несколько советов для того, чтобы не превратить большие старания и маленькую победу в краткосрочный результат, сменяющийся последующим ухудшением (помните аналогию про строительство моста?):

  1. После выполнения всех работ (а потом и с определенной периодичностью) обязательно проводим опрос целевой аудитории, работающей в базе, собираем обратную связь (помним о том, что не всегда все проблемы может отловить система мониторинга). Примеры вопросов:
  • оцените скорость работы в базе данных 1С в настоящий момент
  • заметили ли вы позитивные изменения (скорость работы) в базе данных 1С по сравнению с тем, как было несколько месяцев назад/до начала проекта?
  • напишите, пожалуйста, отзыв, если скорость работы в базе не устраивает: какие операции в базе данных 1С вы порекомендовали бы ускорить?

После этого точечно отрабатываем замечания, а для отчета об окончании комплексной оптимизации представляем ЛПР аналитику по выполнению долгих запросов было – стало.

  1. Подготовка и заключение договора на регулярные аудиты (с последующей оптимизацией) с компанией, специализирующейся в подобных вопросах (их масса в РФ), для организации процесса предиктивного устранения возможных проблем в работе базы данных 1С (критерии при выборе):
    • Стоимость и состав услуг
    • Стоимость аналогичных предложений с рынка
    • Примеры выполненных работ
  2. Наращивание собственной(штатной) экспертизы в области оптимизации высоконагруженных конфигураций с целью повышения безопасности бизнеса и минимизации стоимости организации сервиса. В том числе позволит более вдумчиво изменять код, не делая его менее оптимальным.

Важные замечания:

  • при оптимизации долгих запросов соблюдаем принцип: штатное обновление типовыми релизами не должно серьезно усложниться (расширения)
  • изменение культуры работы в продуктивной базе данных 1С: все изменения – только в песочнице, все тесты – только в песочнице, все права администратора – только у ответственных за ИТ сопровождение лиц (сложно представить, но не везде и всегда соблюдается этот принцип, и даже в случае оптимизированной базы – запуск тяжелых обработок в рабочее время может сильно усложнить жизнь)

У меня всё, спасибо за внимание.

Надеюсь, кому – то пригодится.

И по – прежнему не забываем, что не всегда существуют быстрые решения, важно планомерно работать над устранением.

 

 

оптимизация высоконагруженные конфигурации долгие запросы сопровождение проекты

См. также

Администрирование СУБД Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

При хранении файлов в томах на диске они иногда исчезают. Разбираемся, почему.

23.05.2024    9252    human_new    18    

56

HighLoad оптимизация Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для простого и удобного анализа настроек, нагрузки и проблем с SQL сервером с упором на использование оного для 1С. Анализ текущих запросов на sql, ожиданий, конвертация запроса в 1С и рекомендации, где может тормозить.

2 стартмани

15.02.2024    11683    223    ZAOSTG    76    

115

HighLoad оптимизация Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Встал вопрос: как быстро удалить строки из ТЗ? Рассмотрел пять вариантов реализации этой задачи. Сравнил их друг с другом на разных объёмах данных с разным процентом удаляемых строк. Также сравнил с выгрузкой с отбором по структуре.

09.01.2024    12064    doom2good    49    

71

HighLoad оптимизация Системный администратор Программист Бесплатно (free)

При переводе типовой конфигурации 1C ERP/УТ/КА на PostgreSQL придется вложить ресурсы в доработку и оптимизацию запросов. Расскажем, на что обратить внимание при потерях производительности и какие инструменты/подходы помогут расследовать проблемы после перехода.

20.11.2023    12578    ivanov660    6    

80

HighLoad оптимизация Бесплатно (free)

Казалось бы, КОРП-системы должны быть устойчивы, быстры и надёжны. Но, работая в рамках РКЛ, мы видим немного другую картину. Об основных болевых точках КОРП-систем и подходах к их решению пойдет речь в статье.

15.11.2023    6725    a.doroshkevich    22    

74

Администрирование СУБД Системный администратор Бесплатно (free)

Переход с MS SQL на PostgreSQL сопряжен с рисками для бизнеса и неизбежно вызывает множество вопросов. Статья посвящена тому, как заранее подготовиться к предстоящей миграции, провести нагрузочное тестирование, выявить возможные проблемы перехода и провести необходимую оптимизацию.

13.11.2023    16242    ivanov660    32    

77
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ILM 241 24.05.22 12:16 Сейчас в теме
О чем статья:
- Оптимизируем самые тяжелые места,
- Оптимизируем, те места что полегче,
- Оптимизируем остальное.
Профит.
Дмитрий74Чел; Ta_Da; m1_1976; androidT1C; myoker; AntonProgma; JIEX@; vowg; pavlov_dv; Drivingblind; mrChOP93; unknown181538; Irwin; +13 Ответить
3. quazare 3764 24.05.22 14:45 Сейчас в теме
(1) дайте человеку испытать пробу пера
11. avolsed 63 25.05.22 01:46 Сейчас в теме
(3)спасибо за возможность:)
12. avolsed 63 25.05.22 01:47 Сейчас в теме
(1)точнее бы не придумал, спасибо!
2. starik-2005 3081 24.05.22 13:08 Сейчас в теме
Даешь больше картинок!
9. avolsed 63 25.05.22 01:42 Сейчас в теме
(2)женская аудитория просила больше мемасов, не мог отказать:) спасибо за обратную связь!
4. ivanov660 4567 24.05.22 15:53 Сейчас в теме
Я так понимаю основной посыл для тех кто не знает что делать - ищете знающих людей за деньги. И второе, решение будет зависеть от текущей ситуации и ваших возможностей.
Историю маленькой победы не увидел.
Дмитрий74Чел; akR00b; Rider; +3 Ответить
10. avolsed 63 25.05.22 01:45 Сейчас в теме
(4)верно, плюс советы тем, кто столкнулся с проблемой впервые и не знает, что делать. когда - то я столкнулся с этой проблемой впервые, и одержал маленькую победу:) спасибо за обратную связь
5. sapervodichka 6897 24.05.22 16:04 Сейчас в теме
Цитата: "4. Раздельное размещение базы данных на сервере(ах) – перепроверяйте эффект: несмотря на однозначные рекомендации партнеров по разнесению базы данных на один сервер, а работу пользователей на другой, отнюдь не всегда это дает положительный эффект (поэтому пробуйте оба варианта, и в зависимости от базы - результат может вас удивить)"

А что такое "раздельное размещение базы на серверах", что такое "работа пользователей" и что такое "оба варианта"? (это в терминалке они на сервере сидят или, что это так иносказательно разнесение сервера 1С и СУБД описано, не понятно как применять совет)
6. sapervodichka 6897 24.05.22 21:01 Сейчас в теме
(5) кАроче не буду придираться, формулировки не правильные в отдельности, а в целом нормально написано.
8. avolsed 63 25.05.22 01:41 Сейчас в теме
(6)в целом нормально написано: спасибо за оценку!
7. avolsed 63 25.05.22 01:41 Сейчас в теме
(5)верно: сервера 1С и СУБД
13. androidT1C 76 27.05.22 10:38 Сейчас в теме
"рекомендации партнеров по разнесению базы данных на один сервер, а работу пользователей на другой," - просто набор слов. Непонятно ничего.
14. avolsed 63 27.05.22 11:28 Сейчас в теме
(13)имеется ввиду: разносить сервер 1С и сервер баз данных - однозначного ответа на этот вопрос нет. Очень сильно зависит от базы данных, от количества одновременно подключенных пользователей, и ещё от множества параметров. надо тестировать - результат может быть разным при разных конфигурациях
15. m1_1976 13 30.05.22 10:51 Сейчас в теме
Соглашусь с одним пунктом.
"...очистка лишней информации (например, десятки миллионов неактуальных (ненужных) записей в регистре..."
Сталкивался на алкогольных торговых базах. Современная мода хранить все марки в базе со статусом... А если марок ОЧЕНЬ много.
Подобное видел на оптовке лекарственных средств.
+
Какие-то технические данные например для обмена с ТСД у некоторых разработчиков в 1С Совместимо.
Хранение в регистре сведений строк "длиной в километр".
Оставьте свое сообщение