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

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С: все изменения – только в песочнице, все тесты – только в песочнице, все права администратора – только у ответственных за ИТ сопровождение лиц (сложно представить, но не везде и всегда соблюдается этот принцип, и даже в случае оптимизированной базы – запуск тяжелых обработок в рабочее время может сильно усложнить жизнь)

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

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

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

 

 

Database Compression Tool

Инструмент для свертки и сжатия баз данных 1С

2–3 раза
Сокращение размера базы
1С
Поддержка любых конфигураций
Многопоточность
Параллельная обработка данных
Подробнее →

Доступна демо-версия с прогнозом результата

Вступайте в нашу телеграмм-группу Инфостарт

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

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

HighLoad оптимизация Разработчик 1С:Предприятие 8 Бесплатно (free)

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

30.08.2018    23731    gallam99    31    

71

HighLoad оптимизация Системный администратор Разработчик 1С:Предприятие 8 Бесплатно (free)

Юрий Лазаренко поделится опытом ускорения 1С нестандартными методами, в том числе с помощью http-сервисов. Он расскажет, как с помощью сверхтонкого клиента для 1С и интеграции с сайтом удалось добиться ускорения 1С на порядок. Также в статье приведена статистика по отчету о нагрузочном тестировании сверхтонкого клиента для 1С:ITIL.

16.08.2018    25155    TitanLuchs    37    

114

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

Хотя данная публикация и не имеет прямого отношения к 1С, она может быть интересна тем, кто занимается крупными базами данных на MS SQL Server. Описывается опыт миграции баз данных в облако AWS в компании glassdoor.com, где я занимался этим проектом. Это первый драфт текста, получившийся довольно скомканным - в процессе буду дополнять.

29.07.2018    15266    Aleksey.Bochkov    9    

21

HighLoad оптимизация Системный администратор Разработчик 1С:Предприятие 8 Бесплатно (free)

Можно ли ускорить 1С, не оптимизируя запросы, не разбивая транзакции и не наращивая оборудование? В статье Аверьянова Алексея рассмотрены три практических кейса повышения производительности системы без трудоемкой оптимизации: отложенное резервирование «в один поток», отложенное создание и проведение реализаций.

26.07.2018    23918    avryanovalexey    100    

82

HighLoad оптимизация Разработчик 1С:Предприятие 8 Бесплатно (free)

Евгений Филиппов знакомит с альтернативными технологиями нагрузочного тестирования серверной части кода прикладных решений на платформе 1С. Он рассказывает об узких местах традиционной технологии нагрузочного тестирования и методах их обхода путем переноса работы с клиентских соединений на фоновые задания и изменения способа управления сеансами. Также автор приводит примеры с реальных проектов, подтверждающие жизнеспособность предложенных технологий.

12.07.2018    15772    jf2000    10    

63

HighLoad оптимизация Системный администратор 1С:Предприятие 8 1С:Управление торговлей 11 Россия Бесплатно (free)

В данной статье я хотел бы очень крупными мазками обрисовать архитектуру ИТ системы на базе 1С в крупных (более 1 тысячи пользователей) организациях. Она не несет какой либо образовательной цели, это просто попытка показать – «а как у нас».

02.07.2018    28227    Repich    117    

107

HighLoad оптимизация Системный администратор Разработчик 1С:Предприятие 8 Бесплатно (free)

Поговорим об ошибках в целом и их влиянии на Hi-Load системы в частности. Может ли тут помочь платформа 1С? (да и должна ли в принципе?) Немного про сам Hi-Load на примере крупной БД. PS Данная статья написана по итогам доклада, прочитанного на конференции INFOSTART EVENT 2017 COMMUNITY.

18.06.2018    17377    Sergey.Noskov    28    

59
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 4020 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 3309 24.05.22 13:08 Сейчас в теме
Даешь больше картинок!
9. avolsed 63 25.05.22 01:42 Сейчас в теме
(2)женская аудитория просила больше мемасов, не мог отказать:) спасибо за обратную связь!
4. ivanov660 4989 24.05.22 15:53 Сейчас в теме
Я так понимаю основной посыл для тех кто не знает что делать - ищете знающих людей за деньги. И второе, решение будет зависеть от текущей ситуации и ваших возможностей.
Историю маленькой победы не увидел.
Дмитрий74Чел; akR00b; Rider; +3 – Ответить
10. avolsed 63 25.05.22 01:45 Сейчас в теме
(4)верно, плюс советы тем, кто столкнулся с проблемой впервые и не знает, что делать. когда - то я столкнулся с этой проблемой впервые, и одержал маленькую победу:) спасибо за обратную связь
5. sapervodichka 7634 24.05.22 16:04 Сейчас в теме
Цитата: "4. Раздельное размещение базы данных на сервере(ах) – перепроверяйте эффект: несмотря на однозначные рекомендации партнеров по разнесению базы данных на один сервер, а работу пользователей на другой, отнюдь не всегда это дает положительный эффект (поэтому пробуйте оба варианта, и в зависимости от базы - результат может вас удивить)"

А что такое "раздельное размещение базы на серверах", что такое "работа пользователей" и что такое "оба варианта"? (это в терминалке они на сервере сидят или, что это так иносказательно разнесение сервера 1С и СУБД описано, не понятно как применять совет)
6. sapervodichka 7634 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С Совместимо.
Хранение в регистре сведений строк "длиной в километр".
Для отправки сообщения требуется регистрация/авторизация