17.03.2024

Файловый или клиент-серверный? Тормоза на файловой базе - как избежать (из недавнего опыта) 1с предприятие файловый клиент серверный


Зачастую пользователи жалуются на то, что «1С 8.3 тормозит»: медленно открываются формы документов, долго проводятся документы, запускается программа, долго формируются отчеты и так далее.

Причем такие «глюки» могут встречаться в разных программах:

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

В этой статье я хочу рассмотреть одну из самых простых и распространенных причин медленной работы программы – . Данная инструкция будет актуальна для пользователей файловых баз на 1-2 пользователя, где нет конкуренции за ресурсы.

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

Где в 1С 8.3 регламентные задания

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

Получите 267 видеоуроков по 1С бесплатно:

Вот так выглядит окно с выполненными задачами:

А так полный список всех регламентных заданий, которые запускаются:

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

Соответственно, в моих (и в большинстве случаев в Ваших) интересах отключить ненужные задачи.

Отключение регламентных и фоновых заданий в 1С 8.3

Система 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С выбрать — файловую или SQL?

Попробуем разобраться, что такое файловая база и что такое клиент серверная SQL.

СУБД — система управления базой данных. Платформа 1С Предприятие поддерживает следующие варианты СУБД:

  • Файловый (встроенный в 1С)
  • MS SQL Server
  • Oracle
  • IBM DB2
  • PostgreSQL

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

Получите 267 видеоуроков по 1С бесплатно:

Преимущества файлового варианта:

  • Простота в настройке.
  • Не требует дополнительного ПО.
  • Дешево и сердито.

Недостатки:

  • Безопасность отсутствует. Любой пользователь системы может скопировать файл БД.
  • Малая масштабируемость системы — в некоторых случаях система начинает работать медленно уже при 5-7 пользователях. Связанно это с повышенным уровнем изоляции транзакции.
  • Некоторые функции программы не работают в файловом режиме (например, регламентные задания).
  • Ограничена в размере (максимум 4-12гб).

Клиент-серверная СУБД для 1С

Такой вариант устройства архитектуры хорош повышенной отказоустойчивостью и безопасностью. В клиент-серверной системе может одновременно работать очень большое количество пользователей (до 5000 и более).

Плюсы использования:

  • Повышенная отказоустойчивость.
  • Позволяет работать большому количеству пользователей одновременно.
  • Размер базы данных ничем не ограничен.
  • Существует бесплатные СУБД (PostgreSQL).
  • Не все СУБД бесплатные, лучшие (MS SQL Server) стоят довольно больших средств.
  • Необходимо администрирование SQL сервера.

Инструкция по переходу с файловой базы на SQL

Если Вы решили перенести базу 1С 8.3 (8.2) с файловой на клиент-серверный режим, следуйте следующей инструкции:

  1. Создайте новую базу данных 1С в SQL;
  2. Выгрузите файл *.dt из файловой базы (Конфигуратор — Администрирование — Выгрузка информационной базы);
  3. Загрузите полученный файл в новую базу (Конфигуратор — Администрирование — Загрузка информационной базы).

Выводы

Симптомы пациента и анамнез:

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

Основные признаки работы блокировок:

  • быстрая работа пользователя с базой по сети в монопольном режиме и крайне медленная - при одновременной работе нескольких пользователей
  • быстрая работа пользователя с локальной базой на сервере и медленная - по сети
  • обращения к файловой системе чуть менее 10 мбайт/сек

Итак, мне досталась задача - сделать так, чтобы в 1С могли одновременно работать целых три пользователя! Смешно, не так ли?

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

Счастье было бы неполным, если бы не замечательные операционные системы - на компьютере и на одном ноутбуке Windows 7, на другом - Windows 8.

При попытке одновременно провести документы на ноутбуках один тупил около минуты, а второй вылетел из 1С с текстом ошибки "не удалось заблокировать таблицу...".

Запуск 1С на ноутбуке - это отдельное шоу, длившееся порядка 3 минут!

На многих ресурсах сталкивался с советом перейти на работу в терминальном доступе. К сожалению, Windows 7 не позволяет штатными средствами превратиться в сервер терминалов - максимум одно активное подключение. При этом остальные сеансы не прекращаются, можно переподключиться под другим пользователем - "выкинув" при этом предыдущего пользователя, но не завершив его сеанс. Поэтому следует перенести 1С на серверную ОС, где таких ограничений нет. Клиент на свой страх и риск решил проблему вместо этого с помощью сторонней утилиты Windows7_SP1_RDPhack.

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

1. Отключить использование протокола сети IPv6 , настроить адресацию на "старом" IPv4.

2. Добавить процессы 1С в исключения брандмауэра Windows, а также в исключения антивируса, либо отключить их вовсе (более рискованно, но простой тест показал увеличение скорости перепроведения документов при отключенном антивирусе Avast в разы !)

3. Запустить индексацию полнотекстового поиска в 1С либо выключить его вовсе

4. Запустить Тестирование и исправление базы, проверку утилитой ChDbfl

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

6. Отключить ненужные функциональные опции.

7. Настроить права пользователям. (Этот и предыдущий советы показались глупостью, до тех пор, пока я не понаблюдал за отрисовкой управляемых форм при открытии списка документов. Чем меньше лишнего в управляемом интерфейсе - тем, как правило, быстрее он работает)

8. Запустить пересчет итогов и восстановление последовательности (значительный прирост может быть только в случае, если долгое время итоги не восстанавливались)

9. Указать "Скорость соединения - низкая" в настройках списка баз (это особого результата не дало, разве что отключились картинки у подсистем:))

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

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

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

Дополнения из комментариев к публикации:

Дефрагментация диска с файловой базой

Свертка базы (может оказаться полезной, если база большого объема, например, за несколько лет). У клиента база была достаточно молодая, поэтому свертка была нецелесообразна.

Модернизация аппаратной части - более быстрый винчестер, новый свитч, процессор, и т.д.

Установить на веб-сервер , доступ с помощью тонкого клиента. Тут мнения разделились. Кто-то говорит, в разы быстрее, кто-то - что ускорения не отмечено.

После перехода с «1С: Бухгалтерии 2.0» на редакцию 3.0 скорость работы новой версии становится ниже. Эту проблему мы рассмотрим в данной статье и предоставим пошаговую инструкцию действий в программе «1С:Бухгалтерии 3.0», которая поможет сделать ее работу быстрее.

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

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

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

Перед Вами появится список, в котором галочками отмечены активные (включенные) задания.

Для отключения задания, нужно его открыть и снять галочку с параметра «Включено» , затем нажать кнопку Записать и закрыть .

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


© 2024
snt-ruchey.ru - Компьютерный портал - SntRuchey