воскресенье, 30 июня 2013 г.

Оптимизация работы 1С, возможно ли?

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

Итак, решено было разбить задачу на три этапа:

- повысить надежность работы сервиса (наивысший приоритет с учетом сбоев на текущем ПК)
- повысить отказоустойчивость работы 1С
- разработать стратегию развития 1С на ближайший год

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

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

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

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

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

Если есть потребность в оптимизации работы вашей системы 1С - обращайтесь.

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

2 комментария:

Анонимный комментирует...

А потом вы перейдете на SAP;)

На самом деле круто - использование SSD дисков быстро выявило пределы архитектуры продукта. Русский код такой русский:)

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

Олег Павлов комментирует...

сейчас готовится внедрение Axapta )