vk fb tw rss

Ускорение 1С. Часть 1. Почему возникают проблемы производительности?

Ускорение 1С

 

Введение

Все течет, все меняется. Компании растут, бизнес расширяется, число пользователей увеличивается, информационный поток нарастает с неумолимой быстротой.

Все это предъявляет повышенные требования к скорости работы информационной системы.

И если раньше ваша база могла легко справляться с нагрузкой, то с течением времени ситуация может измениться.

 

Ускорение — это ловушка, в которую мы попадаем тогда, когда делаем что-то с большей, чем нужно, скоростью.

 

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

А бывает и так, что в один «прекрасный» день, некоторые операции неожиданно начинают работать очень медленно, хотя еще вчера все было в порядке. Либо операции начинают выполняться нестабильно, то быстро, то медленно, и это вовсе не «глюки» платформы, это типичные проблемы производительности.

 

1 этап. Война

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

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

 

2 этап. Гадание

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

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

 

3 этап. Анализ

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

 

Ограничения платформы 1С

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

Некоторая доля истины в этом есть, но только в том случае, если мы говорим об 1С версии 7.7 и 8.0. Данные версии довольно плохо масштабировались, их архитектура не была заточена под большие системы, возможность параллельной работы пользователей была сильно ограничена.

Но с приходом 8.1 и последующих версий, ситуация кардинально изменилась. Появилась возможность масштабирования, управляемый режим блокировкой данных, временные таблицы, изменилась структура таблиц на уровне СУБД для повышения параллельности работы пользователей и многие другие изменения.

На данный момент есть базы 1С, в которых одновременно работают тысячи пользователей в режиме 24/7.

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

Но появилась другая проблема, люди перестали успевать за технологиями.

 

Разработчики отстают от платформы

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

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

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

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

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

Как показывает практика, 90% проблем с производительностью случается из-за ошибок в коде конфигурации либо методологических ошибок. Это значит, что в большинстве случаев виновато не железо, не СУБД, и не платформа. Обычно все дело в прикладном коде, это так же относится и к коду типовых конфигураций, в которых не редки ошибки и неоптимальные участки.

Отсюда следует один простой вывод, раз большинство проблем вызвано кодом 1С, то мы можем этот код исправить. Осталось только найти конкретное место в коде, которое приводит к замедлению, выяснить причину и устранить ее.

 

Данный сайт призван помочь разработчикам поднять свою квалификацию, научится решать проблемы производительности и писать оптимальный и быстрый код.

 

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

 

 



Лучшие материалы по теме

Расскажите своим друзьям
Вам ничего не стоит, а им будет интересно
Подпишитесь на обновления
Ваш e-mail: * Ваше имя: *


Обсудить Вконтакте


Обсудить в Facebook

2 комментария: Ускорение 1С. Часть 1. Почему возникают проблемы производительности?

  • Привет! Я пыталась подписаться на материалы сайта, но мне сказали: «Сервис рассылок Smartresponder
    закрыт с 1 ноября 2016 года.»
    Как быть?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *