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

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

Фактически существует три метода ускорения 1С:

  • Увеличение аппаратных мощностей.
  • Оптимизация настроек операционной системы и СУБД.
  • Оптимизация кода и алгоритмов в 1С.

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

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

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

При работе с 1С 8.2, особенно с конфигурациями, которые используют управляемые формы, был замечен странный факт: 1С работает быстрее на рабочей станции нежели на мощном сервере. Причем все характеристики рабочей станции хуже, чем у сервера.



Таблица 1 - Конфигурации, на которых проводилось первоначальное тестирование

Рабочая станция показывает производительность на 155% больше, чем сервер 1С с превышающими характеристиками. Мы начали разбираться, в чем дело и сужать круг поисков.

Рисунок 1 – Замеры производительности на рабочей стации тестом Гилева

Первое подозрение было, что тест Гилева неадекватен. Замеры открытия форм, проведения документов, формирования отчетов и т.д инструментами КИП показали, что тест Гилева выдает оценку пропорциональную реальной скорости работы в 1С.

Количество и частота ОЗУ

Анализ доступной в интернете информации показал, что многие пишут о зависимости производительности 1С от частоты памяти. Именно от частоты, а не от объема. Решили проверить эту гипотезу, так как у нас на сервере частота ОЗУ 1066 Mhz против 1333 Mhz на рабочей станции, а объем ОЗУ на сервере и так значительно выше. Решили поставить сразу не 1066 Mhz, а 800 Mhz для того, чтобы эффект зависимости производительности от частоты памяти был нагляднее. Результат – производительность упала на 12% и составила 39,37 единиц. На сервер поставили память с частотой 1333 Mhz вместо 1066 Mhz и получили незначительный прирост производительности – около 11%. Производительность составила 19,53 единицы. Соответственно, дело не в памяти, хотя ее частота дает небольшой прирост.

Рисунок 2 – Замеры производительности на рабочей станции после понижения частоты ОЗУ


Рисунок 3 – Замеры производительности на сервере после повышения частоты ОЗУ

Дисковая подсистема

Следующая гипотеза была связана с дисковой подсистемой. Сразу возникло два предположения:

  • SSD лучше, чем SAS диски, пусть даже они в 10 рейде.
  • iSCSI работает медленно или некорректно.

Поэтому в рабочую станцию поставили обычный SATA-диск вместо SSD, то же самое сделали и с сервером – базу разместили на локальном SATA-диске. В результате, замеры производительности никак не изменились. Скорее всего, это происходит, поскольку есть достаточное количество ОЗУ и диски практически никак не задействованы при выполнении теста.

Процессор

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

Рисунок 4 – Замеры производительности на рабочей стации с процессором 1,6 Ghz

Видеокарта

В интернете встречается информация о том, что на производительность 1С может влиять видеокарта. Мы пробовали использовать интегрированное видео рабочей станции, профессиональный адаптер Nvidia NVIDIA® Quadro® 4000 2 Gb DDR5, старую видеокарту GeForce 16MbSDR. Во время проведения теста Гилева какой-либо значительной разницы не заметили. Возможно, видеокарта все-таки влияет, но в реальных условиях, когда нужно открывать управляемые формы и т.д.

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

  1. Процессор. Тип процессора на рабочей станции лучше подходит 1С.
  2. Чипсет. При прочих равных условиях наша рабочая станция имеет более новый чипсет, возможно, дело в нем.

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

Этап 1. Настройка системы

Для начала выполним следующие настройки в BIOS и операционной системе:

  1. В BIOS сервера отключаем все настройки по экономии электропитания процессора.
  2. Выбираем в операционной системе план «Максимальная производительность».
  3. Процессор также настраиваем на максимальную производительность. Это можно сделать с помощью утилиты PowerSchemeEd.

Этап 2. Настройка SQL сервера и сервера 1С:Предприятия

Вносим следующие изменения в настройки сервера СУБД и 1С:Предприятия.

  1. Настройка протокола Shared Memory:

    • Shared Memory включится только на платформе начиная с 1С 8.2.17, на более ранних релизах включится Named Pipe – несколько уступающий в скорости работы. Данная технология работает только если службы 1С и MSSQL установлены на одном физическом или виртуальном сервере.
  2. Рекомендуется перевести службу 1С в режим отладки, как не парадоксально это дает прирост производительности. По умолчанию отладка на сервере выключена.
  3. Настройка SQL сервера:

    • Нам нужен только сервер, остальные службы, которые к нему относятся и, возможно, кто-то ими пользуется, только тормозят работу. Останавливаем и отключаем такие службы как: FullText Search (у 1С собственный механизм полнотекстового поиска), Integration Services и т.д.
    • Устанавливаем максимально отведенное серверу количество памяти. Это необходимо для того, чтобы sql-сервер рассчитывал на этот объем и чистил память заблаговременно.
    • Устанавливаем максимальное количество потоков (Maximum worker threads) и выставляем повышенный приоритет сервера (Boost priority).

Этап 3. Настройка рабочей базы данных

После того, как сервер СУБД и 1С:Предприятия оптимизированы, переходим к настройкам баз. Если база еще не развернута из.dt файла, и вы знаете примерный ее размер, то первичному файлу размер инициализации лучше сразу указать «>=» размера базы, но это дело вкуса, он все равно вырастет при развертке. А вот Автоувеличение размера надо обязательно указать: примерно по 200 МБ на базу и по 50 МБ на лог, т.к. значения по умолчанию – рост по 1МБ и по 10% очень сильно тормозят работу сервера, когда ему при каждой 3й транзакции надо файл увеличивать. Также хранение файла базы и файла лога лучше указать на разных физических дисках или RAID группах, если используется RAID массив, и ограничить разрастание лога. Рекомендуется выносить файл Tempdb на высокоскоростной массив, так как СУБД к нему довольно часто обращается.

Этап 4. Настройка регламентных заданий

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

  • Дефрагментацию индексов и обновление статистики нужно производить ежедневно, т.к. если фрагментированность индексов > 25%, это резко снижает производительность сервера.
  • Дефрагментация и обновление статистики - делается быстро и не требует отключения пользователей. Также рекомендуется делать ежедневно.
  • Полная реиндексация – делается с блокировкой БД, рекомендуется делать хотя бы раз в неделю. Естественно, после полной переиндексации сразу же делается дефрагментация индексов и обновление статистики.

В итоге, с помощью тонких настроек системы, SQL сервера и рабочей базы, нам удалось повысить производительность на 46%. Замеры были проведены с помощью инструмента 1С КИП и с помощью теста Гилева. Последний показал 25,6 единиц против 17,53 которые были изначально.

Краткий вывод

  1. Производительность 1С не сильно зависит от частоты ОЗУ. При достижении достаточного ее объема дальнейшее наращивание памяти не имеет смысла, так как не приводит к увеличению производительности.
  2. Производительность 1С не зависит от видеокарты.
  3. Производительность 1С не зависит от дисковой подсистемы при условии, что не происходит превышения очереди чтения или записи дисков. Если установлены SATA диски и у них не превышена очередь, то установка SSD не приведет к повышению производительности.
  4. Производительность довольно сильно зависит от частоты процессора.
  5. При грамотной настройке операционной системы и MSSQL-сервера возможно добиться увеличения производительности 1С на 40-50% без каких-либо материальных затрат.

ВНИМАНИЕ! Очень важный момент! Все замеры были выполнены на тестовой базе с использованием теста Гилева и инструментов 1С КИП. Поведение реальной базы с реальными пользователями может отличаться от полученных результатов. Например, в тестовой базе мы не обнаружили зависимости производительности от видеокарты и объема ОЗУ. Данные выводы достаточно сомнительны и в реальных условиях эти факторы могут оказывать существенное влияние на производительность. При работе с конфигурациями, использующими управляемые формы, видеокарта важна и мощный графический процессор ускоряет работу с точки зрения прорисовки интерфейса программы, визуально это проявляется в более быстрой работе 1С.

Ваша 1С работает медленно? Закажите ИТ-обслуживание компьютеров и серверов специалистами компании EFSOL с многолетним стажем или перенесите свою 1С на мощный и отказоустойчивый виртуальный сервер 1С .

Системная интеграция. Консалтинг

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

Все начинается с жалоб сотрудников на то, что 1С "тормозит", "зависает" или вовсе "вылетает" с ошибкой. И в какой-то момент работать с учетной системой становится невозможно.

Рисунок 1 - Блокировка транзакций в 1С

Как же не упустить тот самый момент, когда системе потребуется "помощь"?

Есть несколько основных признаков этого:
  • Количество пользователей уже большее 10-20.
  • Размер базы приближается к 4 Gb.
  • Сильно доработанная нетиповая конфигурация.
Однако зачастую бывает совсем по-другому. Количество пользователей и база еще не выросли, а "торможение" в учетной системе уже появилось.В таком случае необходимо в срочном порядке выяснять и устранять причины ухудшения работоспособности.

Если у вас нетиповая конфигурация (доработанная), есть риск того, что программный код может быть написан не оптимально!

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

И вот тут уже не разобраться без хорошего программиста 1С.

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

  • Стоит обратить внимание на операции, которые выполняются подозрительно долго .
    Например, какой-то отчет формируется несколько минут или один из документов проводится дольше нескольких секунд. Возможно, в программном коде что-то написано неверно, например, идет выборка лишних данных.
    Это должно натолкнуть на мысль, что код написан некорректно и есть необходимость внести исправления.
  • Если в базе 1C будет работать большое количество пользователей , 1С в файловом режиме перестанет справляться с нагрузкой. Это может сказаться на скорости работы.
  • Если определенная группа пользователей будет постоянно обращаться к одним и тем же документам, скорость их обработки будет заметно замедлена. Например, отдел продаж осуществляет сделки с клиентами. Каждый из сотрудников отдела часто обращается к определенным документам. При многократном обращении скорость проведения документов замедляется. В таком случае необходимо задуматься об использовании SQL.
  • Еще одним критичным фактором для работы 1С является наполнение базы .
    Максимально допустимый объем данных в одной таблице базы 1С - 4 Гб. Если процесс наполнения 1С данными достигает критической точки, база перестанет работать - невозможно будет заносить дополнительную информацию. Система будет говорить о том, что для новых данных недостаточно памяти. При этом она может размещаться на новом сервере, ресурсы которого еще ничем не заняты. Речь идет о виртуальной памяти самой программы. В этом случае базу также необходимо перевести на SQL.

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

Базу 1С можно сравнить с автомобилем. И, как любой автомобиль, она требует регулярного обслуживания. Да, на ней можно "ездить", длительное время не заглядывая "под капот". Однако когда она совсем перестанет "ехать", она потребует существенных вложений.
В связи с этим мы рекомендуем проводить с базой регулярные регламентные операции:

  • Реиндексация таблиц информационной базы.
  • Проверка логической целостности информационной базы.
  • Пересчет итогов.
  • Обновление индексов полнотекстового поиска.

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

Также стоит упомянуть о загруженности процессора сервера, памяти и, самое главное, средней очереди к диску. Желательно, чтобы она не превышала значение "1", а предельно допустимое значение "3". Однако и этот параметр является относительным, так как диски могут не справляться с нагрузкой даже при очереди меньше 1-особенно, если это SATA-диски с низкой скоростью произвольного доступа на чтение и запись, которые активно используется в любой базе данных.

И, только если все это не помогает, а нагрузки на "железо" становятся пиковыми, следует задуматься об обновлении сервера или, если такового нет, о его покупке.

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

В данной статье рассматриваются основные факторы: когда 1С тормозит, 1С зависает и медленно работает 1С. Данные подготовлены на основании многолетнего опыта компании SoftPoint по оптимизации крупных IT систем, построенных на связке 1С + MS SQL.

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

Из практики: Легче всего оптимизировать 1С v7.7 (Оптимизация 1С 8.1, 1С 8.2, 1С 8.3 более сложная задача, так как приложение состоит из 3 звеньев). Довести её до 400 одновременных пользователей – достаточно типовой проект. До 1500 – уже сложный, требующий упорной работы.

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

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

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

Изменение механизма блокировок 1С - очень сложная технология. Не всем под силу провернуть подобный фокус и для них остаётся только один путь – оптимизация структуры и ускорение времени выполнения операций. Дело в том, что блокировки в 1С и время выполнения операций – сильно взаимосвязанные показатели. Например, если операция проведения документа занимает 15 секунд, то при большом количестве пользователей велика вероятность, что во время проведения ещё кто-то попробует провести документ, и будет ожидать в блокировке. Если довести время проведения, хотя-бы до 1 секунды, то блокировки 1С по этой операции значительно снизятся.

Более опасными с точки зрения блокировок являются групповые обработки, которые могут быть длительными по времени выполнения и в тоже время вызывать блокировки 1С. Любая обработка, меняющая данные, например, восстановление последовательности или групповая обработка документов блокируют таблицы и не дают другим пользователям проводить документы. Естественно, чем быстрее выполняются эти обработки, тем меньше время блокировки и легче работать пользователям.

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

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

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

Замедлять время выполнения операций и, следовательно, увеличивать интенсивность блокировок 1С помимо запуска тяжёлых отчётов может неоптимальная настройка MS SQL и MS Windows. Эта проблема обнаруживается у 95% клиентов. Нужно отметить, что это сервера серьёзных организаций, их поддержкой и настройкой занимаются целые отделы высоко квалифицированных администраторов.

Основной причиной не правильной настройки сервера является страх администраторов что-либо менять на работающем сервере и правило «Лучшее – враг хорошего». Если администратор поменяет настройки сервера и начнутся проблемы, то весь гнев начальства выльется на нерадивого админа. Поэтому ему выгоднее оставить всё как есть, и не делать ни шагу без распоряжения начальства, чем экспериментировать под свою ответственность.

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

На первый взгляд картина ясна – нужно оптимизировать всё, что тормозит работу сервера 1С. Но давайте представим себя на месте такого оптимизатора – допустим у нас 1С 8.1 8.2 8.3 УПП и одновременно работают 50 пользователей. В один ужасный день пользователи начинают жаловаться, что 1С тормозит, и нам нужно решить эту проблему.

Первым делом смотрим, что происходит на сервере - вдруг там какой-нибудь особо самостоятельный антивирус проводит полную проверку системы. Осмотр показывает, что всё прилично – сервер нагружен под 100%, причём только процессом sqlservr.

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

Следующий шаг – проверяем, какие программы нагружают MS SQL. Осмотр показывает, что нагрузка создаётся из примерно 20 соединений сервера приложений.

Из практики: зациклилась программа, оперативно обновляющая данные на сайте, и вместо того, что-бы обновлять раз в 4 часа – делала это не переставая, без пауз, сильно нагружая сервер, и блокируя данные.

Дальнейший анализ ситуации сталкивается с большими трудностями. Мы уже выяснили, что нагрузка идёт непосредственно из 1С, но как понять, что именно делают пользователи? Или хотя-бы, кто они. Хорошо, если пользователей 1С в организации 10, тогда можно просто пройтись по ним и узнать, чем они сейчас занимаются, но в нашем случае их полсотни, и раскиданы они по нескольким зданиям.

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

Система логирования – просто незаменимый инструмент в деле оптимизации системы. Если добавить в него ещё и возможность онлайн просмотра текущего состояния – получится система мониторинга состояния сервера. Каждый проект оптимизации начинается со сбора статистики состояний сервера, чтобы выявить узкие места.

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

Возвращаясь к нашему примеру – наиболее вероятный исход: Администратор говорит «Виноваты программисты, которые писали конфигурацию», Программисты в ответ – «У нас всё написано хорошо – это сервер плохо работает». А воз, как говорится, и ныне там. В итоге 1С тормозит, зависает или работает медленно.

В любом случае для решения проблем производительности 1С мы рекомендуем для начала приобрести и использовать мониторинг производительности PerfExpert , это позволит Вам принять правильное управленческое решение и сэкономить деньги. Продукт подходит как для небольших ИС 1С:Предприятие – до 50 пользователей, так и для систем – от 1000 пользователей. С июля 2015 года мониторинг производительности PerfExpert получил сертификат 1С:Совместимо, прошел тестирование в Microsoft и помогает решать проблемы производительности не только для систем 1С, но и для других информационных систем на базе MS SQL Server (Axapta , CRM Dynamics , Doc Vision и прочие).

Если Вам понравилась информация, рекомендуемые дальнейшие действия:

- Если Вы хотите самостоятельно разбираться с техническими проблемами производительности 1С (1С 7.7, 1С 8.1, 1С 8.2, 1С 8.3) и других информационных систем , то для Вас уникальный список технических статей в нашем Альманахе (Блокировки и взаимоблокировки, большая нагрузка на CPU и диски, обслуживание баз данных и индексный тюнинг - лишь малая часть технических материалов, которые Вы там найдете).
.
- Если Вы хотите обсудить с нашим экспертом проблемы производительности или заказать решение мониторинг производительности PerfExpert , то оставьте заявку и мы свяжемся с Вами в кратчайшие сроки.

К нам часто приходят вопросы про то что тормозит 1с, особенно при переходе на версию 1с 8.3, благодоря нашим коллегам из ООО "Интерфейс", мы подробно рассказываем:

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

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

Потребление ресурсов, первый взгляд

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

Для тестирования мы взяли две виртуальные машины под управлением Windows Server 2012 R2 и Windows 8.1 соответственно, выделив им по 2 ядра хостового Core i5-4670 и 2 ГБ оперативной памяти, что соответствует примерно средней офисной машине. Сервер разместили на RAID 0 массиве из двух WD Se, а клиент на аналогичном массиве из дисков общего назначения.

В качестве подопытных баз мы выбрали несколько конфигураций Бухгалтерии 2.0, релиза 2.0.64.12 , которую затем обновили до 3.0.38.52 , все конфигурации запускались на платформе 8.3.5.1443 .

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

Мы уже готовы услышать привычное: "да чего они там такого добавили в эту тройку", но давайте не будем спешить. В отличие от пользователей клиент-серверных версий, которые требуют наличия более-менее квалифицированного администратора, пользователи файловых версий крайне редко задумываются об обслуживании баз. Также редко об этом думают обслуживающие (читай - обновляющие) эти базы сотрудники специализированных фирм.

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

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

В последствии, после загрузки новых классификаторов и справочников, создания индексов и т.п. размер базы вырастет, в целом базы "тройки" больше баз "двойки". Однако более важно не это, если вторая версия довольствовалась 150-200 МБ оперативной памяти, то новой редакции нужно уже полгигабайта и из этого значения следует исходить, планируя необходимые ресурсы для работы с программой.

Сеть

Пропускная способность сети - один наиболее важных параметров для сетевых приложений, особенно, как 1С в файловом режиме, перемещающих по сети значительные объемы данных. Большинство сетей небольших предприятий построены на базе недорогого 100 Мбит/с оборудования, поэтому мы начали тестирование именно со сравнения показателей производительности 1С в сетях 100 Мбит/с и 1 Гбит/с.

Что происходит при запуске файловой базы 1С по сети? Клиент скачивает во временные папки достаточно большое количество информации, особенно если это первый, "холодный", запуск. На 100 Мбит/с мы ожидаемо упремся в ширину канала и загрузка может занять значительное время, в нашем случае около 40 секунд (цена деления графика - 4 сек).

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

Как можно заметить из графиков, Бухгалтерия 2.0 загружается при любой скорости сети вдвое быстрее, переход со 100 Мбит/с на 1 Гбит/с позволяет ускорить время загрузки в четыре раза. Разницы между оптимизированной и неоптимизированной базами "тройки" в данном режиме не наблюдается.

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

Здесь уже интереснее, оптимизированная база "тройки" в 100 Мбит/с сети работает с такой же скоростью, как и "двойка", а неоптимизированная показывает вдвое худший результат. На гигабите соотношения сохраняются, неоптимизированная "тройка" также вдвое медленнее "двойки", а оптимизированная отстает на треть. Также переход на 1 Гбит/с позволяет сократить время проведения в три раза для редакции 2.0 и в два раза для 3.0.

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

Собственно, для повседневных задач пропускная способность сети не является узким местом, неоптимизированная "тройка" всего лишь на 20% медленнее двойки, а после оптимизации оказывается примерно настолько же быстрее - сказываются преимущества работы в режиме тонкого клиента. Переход на 1 Гбит/с не дает оптимизированной базе никаких преимуществ, а неоптимизированная и двойка начинают работать быстрее, показывая небольшую разницу между собой.

Из проведенных тестов становится очевидно, что сеть не является узким местом для новых конфигураций, а управляемое приложение работает даже быстрее обычного. Также можно рекомендовать переход на 1 Гбит/с если для вас критичны тяжелые задачи и скорость загрузки баз, в остальных случаях новые конфигурации позволяют эффективно работать даже в медленных 100 Мбит/с сетях.

Так почему же 1С тормозит? Будем разбираться дальше.

Дисковая подсистема сервера и SSD

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

Несмотря на относительно большое количество операций ввода-вывода в секунду (IOPS) - 913, длина очереди не превысила 1,84, что для двухдискового массива очень хороший результат. Исходя из него можно сделать предположение, что зеркала из обычных дисков будет достаточно для нормальной работы 8-10 сетевых клиентов в тяжелых режимах.

Так нужен ли SSD на сервере? Лучше всего ответить на этот вопрос поможет тестирование, которое мы провели по аналогичной методике, сетевое подключение везде 1 Гбит/с, результат также выражен в относительных значениях.

Начнем со скорости загрузки базы.

Может быть кому-то и покажется удивительным, но на скорость загрузки базы SSD на сервере не влияет. Основной сдерживающий фактор здесь, как показал предыдущий тест, пропускная способность сети и производительность клиента.

Перейдем к перепроведению:

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

На повседневных задачах картина аналогичная:

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

Дисковая подсистема клиента и SSD

Влияние SSD на скорость работы локально установленной 1С мы разбирали в предыдущем материале, многое из сказанного справедливо и для работы в сетевом режиме. Действительно, 1С достаточно активно использует дисковые ресурсы, в том числе и для фоновых и регламентных задач. На рисунке ниже можно видеть, как Бухгалтерия 3.0 довольно активно обращается к диску в течении порядка 40 секунд после загрузки.

Но при этом следует осознавать, что для рабочей станции где активная работа производится с одной - двумя информационными базами ресурсов производительности обычного HDD массовой серии вполне достаточно. Приобретение SSD способно ускорить некоторые процессы, но радикального ускорения в повседневной работе вы не заметите, так как, например, загрузка будет ограничиваться пропускной способностью сети.

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

Оперативная память

Несмотря на то, что оперативка сейчас неприлично дешева, многие рабочие станции продолжают работать с тем объемом памяти, который был установлен при покупке. Вот тут и подстерегают первые проблемы. Уже исходя из того, что в среднем "тройке" требуется около 500 МБ памяти можно предположить, что общего объема оперативной памяти в 1ГБ для работы с программой будет недостаточно.

Мы уменьшили память системы до 1 Гб и запустили две информационные базы.

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

К чему это приведет? Посмотрим, как используются ресурсы системы в тяжелых операциях, например, запустим групповое перепроведение сразу в двух базах. Сначала на системе с 2 ГБ оперативной памяти:

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

Теперь уменьшим память до 1 ГБ:

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

При этом даже субъективная работа с двумя открытыми базами на системе с 1 ГБ памяти оказалась крайне некомфортной, справочники и журналы открывались со значительной задержкой и активным обращением к диску. Например, открытие журнала Реализация товаров и услуг заняло около 20 секунд и сопровождалось все это время высокой дисковой активностью (выделено красной линией).

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

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

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

Процессор

Центральный процессор без преувеличения можно назвать сердцем компьютера, так как именно он, в конечном итоге, осуществляет обработку всех вычислений. Чтобы оценить его роль мы провели еще один набор тестов, такой же, как и для оперативной памяти, уменьшив количество доступных виртуальной машине ядер с двух до одного, при этом тест выполнялся два раза с объемами памяти в 1 ГБ и 2 ГБ.

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

Выводы

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

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

Затем следует обратить внимание на дисковую, покупка SSD вряд ли будет хорошим вложением денег, а вот заменить диск на более современный будет не лишним. Разницу между поколениями жестких дисков можно оценить по следующему материалу: Обзор двух недорогих дисков серии Western Digital Blue 500 ГБ и 1 ТБ.

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

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

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

К сожалению, как и у всех компьютерных программ в 1С: Бухгалтерия также бывают различные сбои и зависания. Одна из наиболее часто встречающихся проблем – медленная работа системы.

С целью разобраться в причинах ее возникновения и попытаться их решить и написана сегодняшняя статья.

Устранение распространенных причин медленной работы 1С

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

Решение : провести сканирование с устранением ошибок и дефрагментацию жесткого диска . Протестировать скорость доступа в Интернет. При низких показателях (менее 1 Мб/с) обратиться в службу ТП провайдера. Временно отключить антивирусную защиту и файрвол в антивирусной системе.

2. Возможно, медленная работа программы происходит из-за большого размера файла базы данных.

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

3. Следующая возможная причина - устаревшее ПО или неактуальная версия самой программы.

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

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