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

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

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

Преимущества файлового режима работы

  • Оптимален для небольшого количества пользователей (до 5-ти)
  • Простота установки и эксплуатации системы
  • Для работы с информационной базой не требуются дополнительные программные средства кроме операционной системы и 1С Предприятие 8
  • Снижен риск нарушения целостности данных при сбоях компьютеров и локальной сети.
  • Простое создание резервных копий путем простого копирования файла информационной базы.

Работа в файловом варианте возможна как напрямую, непосредственно с файлом базы данных, так и через веб-сервер, если используются клиентские подключения по протоколу HTTP или HTTPS.

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

Клиентское приложение - Кластер серверов 1С Предприятия - Сервер базы данных

В клиент-серверном варианте информационная база хранится в одной из поддерживаемых СУБД: Microsoft SQL Server, PostgreSQL, IBM DB2, Oracle Database. К ней по мере необходимости обращается клиентское приложение через кластер серверов 1С Предприятие.

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

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

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

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

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

  • быстрая работа пользователя с базой по сети в монопольном режиме и крайне медленная - при одновременной работе нескольких пользователей
  • быстрая работа пользователя с локальной базой на сервере и медленная - по сети
  • обращения к файловой системе чуть менее 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С занимает доминирующее положение на рынке автоматизации малого и среднего бизнеса. Если компания выбрала учетную систему 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С:Предприятие , ставшие лидером автоматизации, все глубже интегрируются в бизнес и сеть предприятия. 8-я версия программы предназначена уже не только для ведения бухгалтерии и давно вышла за пределы одного-двух компьютеров. Ее возможности все чаще стали использовать не только руководители для контроля финансовых операций, но и менеджеры в CRM, кладовщики для складского учета и т. п.

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

Файловый вариант 1С: плюсы и минусы

Наиболее простой и дешевый вариант развертывания платформы 1С:Предприятие 8 - файловый вариант. Многие ошибаются, рассказывая, что он не подходит для работы в сети несколькими пользователями. Отнюдь, этот вариант работы может быть использован как для работы одним пользователем без сетевых версий, так и для совместного использования до 5 клиентов. Для настройки работы файлового варианта 1С можно использовать простой компьютер, на котором "расшарен" каталог (открыт доступ к общей папке), в котором собственно и находится один единственный файл с базой данных. Естественно, этот компьютер должен быть постоянно включен, чтобы пользователи имели доступ к базе. Второй не очень приятный момент - это полный доступ всех работающих с программой пользователей к этой общей папке, т. е. каждый из них может не только работать с 1С, но и имеет возможность скопировать эту базу себе на компьютер (флешку, съемный диск и т. д.) или просто удалить. Отсюда напрашивается вывод о невозможности контроля сохранности данных в большой компании. И конечно же, нельзя не сказать, что при использовании файлового варианта развертывания 1С, все вычисления и операции производятся на компьютере клиентов, поэтому рабочие станции должны иметь хороший запас вычислительной мощности: мощный процессор и достаточный объем оперативной памяти. А это по нынешнему курсу доллара, не каждый себе может позволить, учитывая, к тому же, что с выходом каждой новой версии программы требования к аппаратной части становятся только выше.

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

Клиентские подключения к файловой 1С

Для работы пользователей с файл-серверным вариантом 1С:Предприятие возможны 2 варианта: "толстый клиент" и веб-клиент. Первый вариант - самый простой, именно он используется в локальных версиях и не достоин большого внимания. А вот при использовании веб-клиента необходимость в установке программного обеспечения практически отсутствует. Для работы в этом режиме потребуется только совместимый веб-браузер, который можно запустить практически на любой платформе и даже на планшете через 3G-Интернет. Конечно, придется немного усложнить настройку, т. к. потребуется веб-сервер, помимо файлового, зато это принесет массу плюсов:

  • работа на любом устройстве и любой операционной системе (MacOS, Linux, Windows, планшет с Android и т.д);
  • работа из любого места, где есть Интернет (конечно при соответствующей настройке);
  • отсутствует необходимость установки и обновления программного обеспечения на рабочих станциях.

    Общие моменты развертывания файл-серверной 1С

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

    В следующей части статьи я подробно остановлюсь на клиент-серверном варианте работы 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. Загрузите полученный файл в новую базу (Конфигуратор — Администрирование — Загрузка информационной базы).

Выводы


Close