Советы по автоматизации. Тормоза на файловой базе - как избежать (из недавнего опыта) Увеличение скорости работы 1с


Причины медленной работы 1С. Несколько слов о файловом режиме.

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

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

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

Первоначальный взгляд на потребление ресурсов.

В данной статье мы постараемся ответить на два вопроса:

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

Чтобы ответить на поставленные вопросы, мы провели специальное исследование. Для этого нами были взяты две виртуальные машины. Первая управляется Wind о ws S е rv еr 2012 R 2, а второй Wind о ws 8.1. Каждой из названных машин были выделены два ядра (Со re i 5-4670), а также по 2 гигабайта оперативки. Такие показатели являются среднестатистическими для обычного офисного ПК. Сервер поместили на РАИД 0 из двух WD Se . Клиент был на похожем массиве из дисков общего назначения.

Для эксперимента мы взяли различные конфигрурации Бухгалтерии 2.0, выпуска 2.0.64.12. Позже версия была обновлена до 3.0.38.52. Запуски производились на платформе 8.3.5.1443.

Сразу бросается в глаза, что размер информационной базы третьей версии заметно вырастает. Увеличиваются и запросы оперативной памяти:

Рис. 1

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

Тем не менее, база информации 1С требует постоянного обслуживания для корректной работы, как и любая СУБД. Специальный инструмент для этого – Тестирование и исправление информационной базы. Несмотря на название, которое вызывает ассоциации с тем, что этот инструмент создан исключительно для исправления проблем, слабая производительность тоже является проблемой. Оптисизировать БД можно с помощью реструктуризации и реиндексации. Это выглядит следующим образом:

Рис. 2

Применение данных опций привело к тому, что база стала меньше второй версии. Стоит отметить, что и «двойку» тоже ранее не оптимизировали. Кстати, сократилось и потребление ОЗУ.

Рис. 3

Позже мы загрузили новые классификаторы и справочники, создали индексы, провели ряд других необходимых действия. Все это привело к увеличению базы третьей версии. Так, если «двойке» хватало максимум 20 Мегабайт оперативки, то новой редакции нужно уже порядка 500 МБ. Эту величину необходимо учитывать для дальнейшей работы

Сеть

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

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

Рис. 4

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

Рис. 5

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

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

Рис. 6

Посмотрим повнимательнее. 100-мегабитная Третья версия с оптимизированной базой имеет равнозначную скорость со второй версией, при этом «тройка» без оптимизации «тормозит» почти в два раза. При 1 Гбит/с пропорции остаются практически неизменными. Кроме того переход на гигабитную скорость фактически в три раза уменьшает время проведения для двойки и в два раза для тройки.


Рис. 7

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

Но все-таки, в чем же причина медленной работы 1С? Давайте смотреть дальше!

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

Ранее мы уже увеличивали скорость 1С, благодаря размещению базы на SSD . Дисковая подсистема сервера показывают вполне хорошую производительность, об этом говорят результаты ее измерений во время группового проведения в 2-х базах. Не будем голословными, посмотрите на рисунок ниже:

Рис. 8

Проанализируем результаты: количество операций ввода-вывода составила 913 на единицу времени (1 сек). При этом длина очереди не более 1,84. Неплохо для 2-дискового массива, не правда ли? Таким образом, логично, что для хорошей работы десяти сетевых клиентов в любом режиме подойдут зеркала из простых дисков.

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

1. Скорость загрузки базы

Рис. 9

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

Рис. 10

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

3. Посмотрим на повседневные задачи:

Рис. 11

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

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

Мы уже проводили исследования влияния SSD на скорость работы 1С, которая установлена локально. Сделанные выводы частично применимы и для сетевого режима. Это говорит о том, что 1С использует ресурсы диска для различных задач (включая фоновые и регламентные). Посмотрите на изображение, где показано как 1С обращается к ресурсам диска после загрузки (продолжительность около 40 секунд).

Рис 12

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

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

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

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

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

Рис. 13

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

Сравним результаты с запуском на 2 Гб:

Рис. 14

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

А что будет после уменьшения памяти до 1 Гб?

Рис. 15

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

Это делает даже субъективную работу с двумя открытыми базами медленной и неприятной. К примеру, потребовалось около двадцати секунд, чтобы открыть журнал Реализация товаров и услуг. Дисковая активность (подчеркнуто красным) была крайне высока.

Рис. 16

Адекватность и объективность влияния оперативной памяти на производительность мы решили достиннуть с помощью проведения трех замеров:

  • Групповое перепроведение в одной из баз
  • Обе базы аналогичны, созданы путем копирования оптимизированной базы. Вот результат:

    Рис. 17

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

    Вывод: малое количество оперативной памяти – вот основная проблема, которая тормозит 1С с новыми конфигурациями. Минимальный необходимый объем оперативки – 2 Гб. И это не учитывая, что скорее всего на Вашем компьютере будет открыт не только 1С, но и многие другие программы, которые также будут «съедать» драгоценную оперативную память.

    Процессор

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

    Рис. 18

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

    Выводы.

    1. Основная причина медленной работы 1С – недостаток оперативной памяти, в связи с чем нагрузка переходит на жесткий диск и частично на процессор.
    2. Частично влияет производительность сети. 100-Мбитный канал может стать серьезным сдерживающим фактором для работы, однако, режим тонкого клиена способен сбалансировать этот недостаток.
    3. Приобретение SSD – решение хорошее, но дорогое. Дешевле заменить диск на более современный того же типа.
    4. Быстрый процессор – вещь хорошая, но в нем нет необходимости для ускорения 1С.)За исключением случаев, когда компьютер используется для «тяжелых» операций.

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

    Очень часто ко мне обращаются с вопросами вида:

    • из-за чего тормозит сервер 1С?
    • компьютер с 1С работает очень медленно
    • жутко тормозит клиент 1С

    Что же делать и как это победить, и так по порядку:

    Клиенты очень медленно работают с серверной версией 1С

    Кроме медленной работы 1С, так же наблюдается медленная работа с сетевыми файлами. Проблема встречается при обычной работе и при RDP

    для решения этого, после каждой установки Семерки или 2008-го сервера всегда запускаю

    netsh int tcp set global autotuning=disabled

    netsh int tcp set global autotuninglevel=disabled

    netsh int tcp set global rss=disabled chimney=disabled

    и сеть работает без проблем

    иногда оптимальным является:

    netsh interface tcp set global autotuning= HighlyRestricted

    вот как выглядит установка

    Настроить брандмауэр Антивируса или Windows

    Как настроить брандмауэр Антивируса или Windows для работы сервера 1С (связка из Сервера 1С: Предприятие и MS SQL 2008, например).

    Добавьте правила:

    • Если сервер SQL принимает подключения на стандартный порт TCP 1433, то разрешаем его.
    • Если порт SQL динамический, то необходимо разрешить подключения к приложению %ProgramFiles%\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\sqlservr.exe.
    • Сервер 1С работает на портах 1541, кластер 1540 и диапазоне 1560-1591. По совершенно мистическим причинам иногда такой список открытых портов все равно не позволяет выполнять подключения к серверу. Чтобы заработало наверняка, разрешите диапазон 1540-1591.

    Настройка производительности Сервера / Компьютера

    Для того чтобы компьютер работал с максимальной производительностью - нужно настроить его на это:

    1. Настройки BIOS

    • В BIOS сервера отключаем все настройки по экономии электропитания процессора.
    • Если есть «C1E» & обязательно ОТКЛЮЧАЕМ!!
    • Для некоторых не очень параллельных задач также рекомендуется выключить гипертрейдинг в биосе
    • В некоторых случаях (особенно для HP!) надо зайти в BIOS сервера, и ВЫКЛЮЧИТЬ там пункты, в названии которых есть EIST, Intel SpeedStep и C1E.
    • Взамен надо там же найти пункты, связанные с процессором, в названии которых есть Turbo Boost, и ВКЛЮЧИТЬ их.
    • Если в биосе есть общее указание режима энергосбережения & включить его в режим максимальной производительности (он ещё может называться «агрессивный»)

    2. Настройки схемы в операционной системе - Высокая производительность

    Сервера с архитектурой Intel Sandy Bridge умеют динамически менять частоты процессора.

    2. Особенность работы программы. Часто даже при оптимальных настройках 1С работает очень медленно. Особенно сильно быстродействие падает, когда количество одновременно работающих с базой превышает 4-5 пользователей.

    Кто вы в компании?

    Решение проблемы медленной работы 1С зависит от того, кто вы в компании. Если вы технический специалист - просто читайте дальше. Если вы директор или бухгалтер, переходите по специальной ссылке ↓

    Пропускная способность сети

    Как правило, с одной информационной базой (ИБ) работает не один, а несколько пользователей. При этом, постоянно идет обмен данными между компьютером, на котором установлен клиент 1С и компьютером, на котором расположена ИБ. Объем этих данных достаточно существенный. Часто возникает ситуация, когда локальная сеть работающая на скорости 100 Мбит/с, а это наиболее часто встречающаяся скорость, просто не справляется с нагрузкой. И снова пользователь жалуется на тормоза в программе.

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

    Теперь давайте рассмотрим несколько решений проблемы с низкой скоростью работы 1С и их стоимость, на примере локальной сети из 10 средних компьютеров.

    Решение первое. Модернизация инфраструктуры

    Это, пожалуй, самое очевидное решение. Рассчитаем его минимальную стоимость.

    Как минимум, на каждый компьютер нам понадобиться планка оперативной памяти на 2 Гб, стоит, в среднем, 1500 руб, сетевая карта с поддержкой скорости 1 Гбит/c, стоит около 700 руб. Дополнительно понадобиться как минимум 1 маршрутизатор, поддерживающий скорость работы 1 Гбит/с, который обойдется примерно 4000 руб. Итого, стоимость - 26000 рублей на оборудование, без учета работ.

    В принципе, скорость может существенно вырасти, однако, теперь покупать в офис недорогие компьютеры уже не получится. Кроме того, данное решение не применимо для тех, кто использует Wi-Fi или хочет работать через интернет - в их случае скорость сети может быть в десятки раз ниже. Напрашивается мысль: «А нельзя ли реализовать работу программы целиком на одном мощном сервере, чтобы пользовательский компьютер не участвовал в сложных расчетах, а служил просто для передачи изображения?» Тогда можно работать даже на очень слабых компьютерах, даже в сетях с низкой пропускной способностью. Естественно такие решения существуют.

    Решение второе. Сервер терминалов

    Получил большую популярность еще во времена 1С 7. Реализован на серверной версии Windows и прекрасно справляется с нашей задачей. Однако, имеет свои подводные камни, а именно - стоимость лицензий.

    Сама операционная система обойдется где-то в 40000 руб. Дополнительно к этому нам понадобиться для каждого, кто планирует работать в 1С еще лицензия Windows Server CAL, стоимостью примерно в 1700 руб и лицензия Windows Remote Desktop Services CAL, которая стоит около 5900 руб.

    Посчитав стоимость для сети из 10 компьютеров, мы получим в итоге 116 000 руб. только на одни лицензии. Добавьте к этому стоимость самого сервера (минимум 40 000 руб) и стоимость работ по внедрению, впрочем, даже без этого, цена на лицензии получилась внушительная.

    Решение третье. Сервис 1С Предприятия

    Фирма 1С разработала свой решение данной проблемы, способное серьезно повысить скорость программы. Но и тут есть нюанс.

    Дело в том, что стоимость такого решения составляет от 50 000 до 80 000 руб., в зависимости от редакции. Для компании до 15 пользователей получается дороговато. Большие надежды возлагались на «мини-сервер 1С предприятия», который, по заявлениям фирмы 1С, ориентирован на малый бизнес и стоит в районе 10000 - 15000 руб.

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

    Как написал на форуме один программист 1С: «До сих пор не понятно, почему 1С выбрала именно 5 подключений! От 4 пользователей проблемы только начинаются, а тут на пяти все заканчивается. Хочешь подключить шестого - доплати еще 50 тыс. Сделали бы хоть на 10 подключений…»

    Конечно, мини-сервер тоже нашел своего потребителя. Однако для компаний, где с 1С работают от 5 человек, так и не появилось простого и недорогого решения.

    Помимо описанных выше методов ускорения программы, существует еще один, идеально подходящий для сегмента 5 - 15 пользователей, а именно - web-доступ для 1С в файловом режиме.

    Решение четвертое. Web-доступ для 1С в файловом режиме

    Принцип работы следующий: на компьютере поднимается дополнительная роль web-сервера, на котором происходит публикация ИБ.

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

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

    Данный вариант уступает серверу 1С предприятия по скорости работы, но разница эта до 15-20 пользователей визуально практически не заметна. Кстати, для реализации web-сервера можно использовать IIS (для Windows) и Apache (для Linux) и оба этих решения бесплатны!

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

    Не берусь утверждать наверняка, но скорее всего, это связано с двумя причинами:

    • Довольно слабое описание в технической документации
    • Находится на стыке ответственности системного администратора и программиста 1С

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

    Ускорим 1С. Дистанционно, быстро и без вашего участия

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

    Оставьте заявку - и получите бесплатную консультацию по ускорению программы.

    Ваша «1С» опять тормозит? Теряете время, пока составляется отчет? Надоело пить чай, ожидая обмен данными?

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

    Наши услуги помогут Вам больше успевать за рабочий день! Мы знаем, как ускорить 1С так, чтобы слова «1С зависает» Вы не повторяли никогда.

    Почему «1С» может зависать или тормозить?

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

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

    Даже ошибки при обычных действиях с 1С — тоже могут привести к ее медленной работе.

    Как ускорить 1С?

    Мы действуем так:

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

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

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

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

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

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

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

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

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

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

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

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