1с файловая или серверная. Тормоза на файловой базе - как избежать (из недавнего опыта). Инструкция по переходу с файловой базы на SQL
1С бывает — файловая, серверная и веб. Чем они отличаются?
Какие бывают варианты установки 1С
Итак, 1С делится на платформу и конфигурации. Что к чему, мы неоднократно разбирали в предыдущих выпусках.
На основе конфигурации 1С мы создаем базу данных. База данных содержит справочники и документы, которые вносят пользователи.
На январь 2010 года существуют три варианта работы 1С:
- файловая 1С
- сетевая 1С (сервер 1С и клиент 1С)
- веб 1С (тонкий клиент 1С).
Также дополнительные варианты:
- для разработчиков
- для использования веб сервисов 1С или веб расширения 1С.
Бывает файловая 1С и сетевая 1С, каждая из них нужна в своем случае, поэтому сказать однозначно, что сетевая 1С лучше файловой 1С — не правильно.
Файловая 1С
Самый старинный вариант работы 1С. База данных находится в папке на жестком диске компьютера.
Папка с файлами базы может быть как на диске Вашего компьютера, так и на любом публичном диске локальной сети (такие публичные диски также называют «шара»).
В этом случае платформу 1С достаточно установить на компьютеры пользователей.
Сетевая 1С
Также называют «клиент-серверная 1С». Это значит, что нужно установить отдельно «клиент 1С» и отдельно «сервер 1С».
База данных хранится в специальной программе для управления базами данных.
Программы для управления базами данных, которые поддерживаются 1С: Microsoft SQL, Postgre SQL, Oracle (последнюю поддерживает только 1С 8.2).
В этом случае часть платформы 1С устанавливается на сервер – «сервер 1С». Там же ставят программу управления базами данных. На компьютеры ставят платформу 1С и специальный компонент «Доступ к серверу 1С».
Тонкий клиент 1С (управляемое приложение 1С)
Самый новый вариант. В этом случае, дополнительно к клиент-серверному варианту, требуется веб-сервер. Веб-сервера, которые поддерживаются 1С: Microsoft IIS, Apache.
На сервере ставят «сервер 1С», программу управления базами данных, веб-сервер, компонент «расширение веб-сервера 1С».
На компьютерах пользователей можно использовать два варианта:
Вариант 1: не ставить ничего – использовать любой обычный браузер.
Вариант 2: установить «тонкий клиент 1С».
Пример работы через с 1С через веб-браузер можно посмотреть здесь.
Это реальная база 1С, которая установлена на сервере в компании 1С.
Дополнительный вариант – для разработчиков
Когда над разработкой конфигурации 1С работает одновременно группа разработчиков, необходимо установить дополнение – хранилище 1С SQL.
По умолчанию одновременно с конфигурацией может работать только 1 программист. Хранилище позволяет вести коллективную разработку.
Хранилище необходимо ставить на сервер или использовать в качестве сервера хранилища один из компьютеров разработчиков.
Дополнительный вариант – веб сервисы 1С и веб расширение 1С
Например у Вас в офисе учет ведется на 1С:Предприятии. Также у Вас работает веб-сайт. Вы хотели бы, чтобы веб-сайт динамически брал определенные данные из 1С. Это можно сделать с помощью Web-сервисов. Это дополнительный компонент платформы 1С. Он входит в платформу, необходимо установить эту галочку.
Web-расширение – альтернативный механизм Web-сервисов – появился раньше.
Чем сетевая 1С лучше файловой 1С
1) В файловой версии база данных находится в одном файле. Размер файла в теории может быть ограничен FAT. Правда сложно представить сегодня операционную систему на FAT – везде используется NTFS.
2) Механизм работы с файлом базы данных в 1С значительно упрощен по сравнению с SQL. В частности она хуже работает при увеличении размера файла или количества пользователей («начинает тормозить»).
Поэтому, когда речь идет про три-пять пользователей и небольшую базу – это исключительно файловая версия. База от 4Гб и более 10 пользователей – можно подумать. Еще больше – однозначно клиент-сервер.
Для обучения нам конечно же достаточно файловой версии.
Установка платформы 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С. Пока идет процесс согласования и закупки, мы решили выполнить оптимизацию, тем более, что это ничего не стоит. Были выделены следующие этапы:
Этап 1. Настройка системы
Для начала выполним следующие настройки в BIOS и операционной системе:
- В BIOS сервера отключаем все настройки по экономии электропитания процессора.
- Выбираем в операционной системе план «Максимальная производительность».
- Процессор также настраиваем на максимальную производительность. Это можно сделать с помощью утилиты PowerSchemeEd.
Этап 2. Настройка SQL сервера и сервера 1С:Предприятия
Вносим следующие изменения в настройки сервера СУБД и 1С:Предприятия.
- Настройка протокола Shared Memory:
- Shared Memory включится только на платформе начиная с 1С 8.2.17, на более ранних релизах включится Named Pipe – несколько уступающий в скорости работы. Данная технология работает только если службы 1С и MSSQL установлены на одном физическом или виртуальном сервере.
- Рекомендуется перевести службу 1С в режим отладки, как не парадоксально это дает прирост производительности. По умолчанию отладка на сервере выключена.
- Настройка 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С не зависит от видеокарты.
- Производительность 1С не зависит от дисковой подсистемы при условии, что не происходит превышения очереди чтения или записи дисков. Если установлены SATA диски и у них не превышена очередь, то установка SSD не приведет к повышению производительности.
- Производительность довольно сильно зависит от частоты процессора.
- При грамотной настройке операционной системы и MSSQL-сервера возможно добиться увеличения производительности 1С на 40-50% без каких-либо материальных затрат.
ВНИМАНИЕ! Очень важный момент! Все замеры были выполнены на тестовой базе с использованием теста Гилева и инструментов 1С КИП. Поведение реальной базы с реальными пользователями может отличаться от полученных результатов. Например, в тестовой базе мы не обнаружили зависимости производительности от видеокарты и объема ОЗУ. Данные выводы достаточно сомнительны и в реальных условиях эти факторы могут оказывать существенное влияние на производительность. При работе с конфигурациями, использующими управляемые формы, видеокарта важна и мощный графический процессор ускоряет работу с точки зрения прорисовки интерфейса программы, визуально это проявляется в более быстрой работе 1С.
Ваша 1С работает медленно? Закажите ИТ-обслуживание компьютеров и серверов специалистами компании EFSOL с многолетним стажем или перенесите свою 1С на мощный и отказоустойчивый виртуальный сервер 1С .
Системная интеграция. Консалтинг
- Настройка регламентных и фоновых заданий;
- Диагностика и устранение ошибок информационной базы, имеющий файловый формат хранения данных;
- Запустить индексацию полнотекстового поиска в 1С либо выключить его вовсе;
- Запуск базы на последних Платформах 8.3.8;
- Запуск в Тонком Клиенте;
- Увеличение скорости перепроведения документов при отключенном антивирусе;
- Запустить Пересчет итогов и восстановление последовательности;
- Выполнить Тестирование и исправление базы, проверку утилитой chdbfl.exe;
- Если конфигурация не типовая, то есть доработанная программистами под конкретную организацию, выполнить Проверку конфигурации;
- Отключить ненужные функциональные режимы;
- Настроить права пользователей;
- Свертка базы;
- Модернизация аппаратной части.
Способ 1. Настройка регламентных и фоновых заданий
Приложение в новой редакции 1С Бухгалтерия 3.0 помимо выполнения основной работы запускает операции в фоновом режиме, которые ведут к снижению быстродействия программы.
Фоновый режим - это режим ожидания, то есть операция запущена всегда, хоть и не используется.
Шаг 1. Настройка регламентных и фоновых заданий
Открываем перечень регламентных и фоновых заданий: раздел Администрирование – Поддержка и обслуживание – Регламентные операции – Регламентные и фоновые задания :
После запуска программы 1С 8.3 автоматически запускаются фоновые задания и выполняются регламентные задачи, которые используют огромное количество ресурсов и замедляют работу программы. Следовательно, нужно проанализировать работу бухгалтеров и определить какие фоновые задачи целесообразно оставить в автозапуске, а какие нужно отключить.
На рисунке видим список регламентных заданий, которые запускаются в 1С 8.3 Бухгалтерия:
На рисунке видим список выполненных фоновых заданий:
Например,
- Программа 1С 8.3 Бухгалтерия для обновления различных классификаторов постоянно подключается к сайту;
- Если на предприятии не ведутся операции связанные с иностранной валютой, то нет необходимости отслеживать курсы валют;
- Если бухгалтер не пользуется полнотекстовым поиском в программе, то не целесообразно запускать процесс «Извлечение текста».
Шаг 2. Отключение нецелесообразных задач
Рассмотрим подробно как отключить загрузку . Установим курсор на нужную строку и сделаем двойной щелчок:
Для отключения задания убираем галочку Включено:
Шаг 3. Настройка расписания регламентных задач
Рассмотрим подробно, как настроить расписание . Установим курсор на нужную строку и сделаем двойной щелчок:
Выберем пункт Расписание:
В открывшемся окне переходим на нужную закладку и делаем соответствующую настройку:
Способ 2. Диагностика и устранение ошибок информационной базы, имеющей файловый формат хранения данных
Шаг 1.
Создаем резервную копию базы данных.
Шаг 2.
Запускаем процедуру . Для этого открываем Конфигуратор и запускаем процедуру Тестирование и исправления информационной базы: раздел Администрирование – Тестирование и исправление. Выбираем проверки и режимы, которые нужно выполнить для информационной базы:
Рассмотрим, подробнее предлагаемые варианты проверки:
- Реиндексация таблиц информационной базы – перестраивает индексы таблиц для повышения быстродействия работы базы данных;
- Проверка логической целостности информационной базы – проверка логики базы данных;
- Проверка ссылочной целостности информационной базы – проверка логической целостности базы данных для обнаружения «битых» ссылок;
- Пересчет итогов – перерасчет итогов таблиц регистров накопления;
- Сжатие таблиц информационной базы – уменьшает размер базы данных после тестирования и исправления;
- Реструктуризация таблиц информационной базы – оптимизирует структуру базы данных используя вспомогательные файлы с целью повышения стабильности и быстродействия.
Если выбираем вариант процедуры Тестирование и исправление в режиме Проверка ссылочной целостности информационной базы, то пункты настроек по обработке ошибок базы данных становятся доступными:
- Пункт При наличии ссылок на несуществующие объекты означает, что при обнаружении «битых» ссылок, будет обрабатывать ссылки, используя выбранный вариант;
- Пункт При частичной потере данных объектов означает, что остаток данных достаточен для восстановления данных какого-либо объекта.
Процедуру тестирования и исправления информационной базы 1С можно выполнять только в монопольном режиме.
Способ 3. Запустить индексацию полнотекстового поиска в 1С либо выключить его вовсе
Полнотекстовый поиск данных компания 1С разработала для облегчения поиска незнакомой информации пользователем. Особенностью полнотекстового поиска данных в 1С 8.3 является:
- Пользователь может вводить поисковый запрос в простой форме и использовать специальные операторы, такие как: и, или, не .
- Полнотекстовый поиск данных работает с полями типа ХранилищеЗначения и с длинными текстовыми полями, при этом пользователю не будут показаны результаты на которых у него нет прав.
Например, нужно настроить полнотекстовый поиск в документах Авансовый отчет.
Шаг 1.
Шаг 2.
Открываем документ Авансовый отчет: меню Конфигуратор – Открыть конфигурацию.
Шаг 3.
В строке Полнотекстовый поиск выбираем пункт Использовать: Авансовый отчет – Поле ввода – Полнотекстовый поиск:
Шаг 4.
Запускаем программу и обновляем режим полнотекстового поиска. Открываем Регламентные операции: раздел Администрирование – Настройки программы – Поддержка и обслуживание:
Шаг 5.
Открываем настройку и обновляем индекс используя кнопку Обновить индекс:
Способ 4. Запуск базы на последних платформах 8.3.8
Как обновить технологическую платформу 1С 8.3 смотрите в нашем видео уроке:
Специалисты 1С улучшили распределение нагрузки:
- Имеется возможность более точно управлять объемом памяти, расходуемой рабочими процессами сервера, что позволяет повысить устойчивость кластера к неосторожным действиям пользователей.
- Реструктуризация информационных баз в фоновом режиме. Новая возможность позволяет свести к минимуму время простоя системы, необходимое для обновления прикладных решений.
- Платформа версии 8.3 получила новый интерфейс приложений “Такси”, более удобный и наглядный с новым ярким дизайном. Улучшились возможности навигации по приложению. Пользователь может самостоятельно настраивать свое рабочее пространство, располагая панели в разных областях экрана. Новый механизм ввода по строке существенно ускоряет поиск данных. Подробнее о новых возможностях программы 1С 8.3 Бухгалтерия интерфейс “Такси” смотрите в нашем видео:
Способ 5. Запуск в Тонком клиенте
Работа в режиме тонкого клиента возможна только в режиме управляемого приложения. В режиме тонкого клиента все действия выполняются на сервере, пользователю выводиться лишь отображение получаемой информации. Этот режим работы не требует больших ресурсов как системы, так и канала связи.
Способ 6. Поменять антивирусное программное обеспечение
Если стоит антивирус Avast или Касперский, то желательно заменить на другой. Опыт показал увеличение скорости перепроведения документов при отключенном антивирусе в разы, так как антивирусы занимают ресурсы компьютера.
Способ 7. Тестирование и исправление базы, проверка утилитой chdbfl.exe
Необходимо выполнить Тестирование и исправление базы, предварительно сделав копию.
Шаг 1. Делаем копию базы данных
Как сделать резервную копию 1С 8.3 смотрите в следующем видео уроке:
Шаг 2. Выполняем проверку с помощью утилиты chdbfl.exe
Утилиту chdbfl.exe используют в случаях, когда система не запускается даже в режиме конфигуратора. Расположена утилита в папке «bin» установленной технологической платформы, например: c:\Program Files (x86)\1cv8\8.3.9.1818\bin\chdbfl.exe:
Выполняем проверку с помощью утилиты chdbfl.exe:
Шаг 3. Выполнить Тестирование и исправление базы
Выполнить Тестирование и исправление базы запустив систему в режиме конфигуратора.
Шаг 4. Восстановление последовательности документов
Для восстановления последовательности в 1С 8.3 открываем Все функции: главное Меню – Все функции. Выбираем нужный пункт и открываем используя кнопку Открыть:
В открывшемся окне на закладке Восстановление последовательностей и нажимаем Восстановить или Восстановить все:
Способ 8. Если конфигурация не типовая, то выполнить проверку конфигурации
Если конфигурация не типовая, то есть доработанная программистами под конкретную организацию, то выполняем проверку конфигурации.
Шаг 1.
Запускаем программу в режиме Конфигуратор.
Шаг 2.
Открыть конфигурацию БД: раздел Конфигурация – Конфигурация базы данных:
Шаг 3.
Выбираем пункт Проверка конфигурации и делаем настройки:
Способ 9. Отключить ненужные функциональные режимы
Открываем Функциональность программы 1С 8.3: раздел Главное – Настройки – Функциональность, делаем настройки по каждому разделу:
Способ 10. Настроить права пользователей
Шаг 1.
Запускаем 1С 8.3 в режиме Конфигуратор.
Шаг 2.
Открываем список пользователей: раздел Администрирование – Пользователи. На закладке Прочее определяем какие роли нужно назначить пользователю и отметить их галочкой.
Уменьшение выбранного функционала уменьшает время на отсортировку программой управляемых форм при открытии списка документов, то есть чем меньше лишнего в управляемом интерфейсе – тем быстрее он работает:
Способ 11. Дефрагментация диска с файловой базой
Процедура дефрагментация диска производит оптимизацию файлов находящихся на жестком диске для увеличения скорости работы системы. Дефрагментацию нужно делать только при необходимости, так как увеличивает процесс износа диска.
Выделив жесткий диск, правой клавишей мыши вызываем команду Свойства:
На закладке Сервис выбираем Оптимизация и дефрагментация диска:
Способ 12. Свертка базы
– это ввод актуальных остатков на определенную дату и удаление старых, ненужных документов. Этот способ может оказаться полезным, если база большого объема, например, за несколько лет. Свертку необходимо производить без работающих в системе пользователей.
Шаг 1. Создаем копию базы данных
Шаг 2. Выполняем процедуру свертки базы 1С 8.3
Раздел Администрирование – Сервис – Свертка информационной базы.
На первом этапе программа 1С 8.3 предлагает сделать резервную копию, где нужно указать каталог для сохранения. Нажимаем Далее:
Как ускорить работу в 1С:Бухгалтерия 8.3 (редакция 3.0) или отключаем регламентные и фоновые задания
2019-01-15T13:28:19+00:00Те из вас, кто уже успел перейти на новую редакцию 1С:Бухгалтерия 8.3 (редакция 3.0) успели заметить, что работать она стала медленнее, чем двойка. Какие-то непонятные подтормаживания, бесконечные фоновые задачи по нескольку раз в день, которые её никто не просил выполнять без нашего ведома.
Мне мои бухгалтеры сразу после перехода так и заявили, что новая редакция 1С:Бухгалтерия 3.0 в сравнении с предыдущими откровенно тормозит! И работать просто невозможно.
Я начал разбираться и очень скоро выяснил, что основной причиной подвисаний и следовавшего недовольства пользователей являются регламентные и фоновые задания, многие из которых по умолчанию включены, хотя для абсолютного большинства бухгалтеров в них нет никакой необходимости.
Ну, например, зачем нам по сто раз в день запускать задачу "Извлечение текста", если мы не осуществляем полнотекстовый (бухгалтеры, не пугайтесь) поиск по всем объектам нашей базы.
Или зачем постоянно загружать курсы валют, если у нас нет валютных операций или мы делаем их изредка (и перед этим и сами можем нажать кнопку загрузить курсы).
То же касается и постоянной попытки 1С подключиться к сайту и проверить и обновить классификаторы банков. Зачем? Я и сам нажму кнопку обновить классификаторы, если не найду нужного банка по его БИК.
О том как это сделать по пунктам ниже.
1. Зайдите в раздел "Администрирование" и в панели действий выберите пункт "Обслуживание" ():
2. В открывшемся окне найдите и выберите пункт "Регламентные и фоновые задания":
3. Откройте каждое задание, у которого в колонке "Вкл." стоит галка.
4. Снимите отметку с пункта "Включено" и нажмите кнопку "Записать и закрыть".
5. Проделайте это с каждым из включенных заданий и наслаждайтесь новой редакцией. В целом, на мой взгляд, она гораздо лучше двойки.
При этом некоторые из отключенных вами регламентных заданий платформа всё-равно включит обратно.
Проблема
На форумах постоянно задается один и тот же вопрос: почему 1C+MSSQL медленнее обрабатывает запросы чем файловая?
Затем обычно идет «флуд» на несколько десятков страниц.
Есть два популярных «течения» в таких форумах — одни говорят что для клиент-серверного варианта это нормально, файловый вариант всегда должен работать быстрее, другие говорят что 1С плохо работает с субд.
В результате «баталий и выяснения отношений» на форумах люди расходятся при своих мнениях.
Мы предлагаем разбить вопрос на несколько:
1. Работает ли файловый вариант быстрее в операциях «монопольного характера», когда его деятельность не зависит от других пользователей в базе?
Под «монопольным характером» мы будем понимать одного активного (работающего) пользователя в информационной базе.
2. Работает ли файловый вариант быстрее в многопользовательском режиме, когда пользователи активно конкурируют за ресурсы (например при проведении реализации товаров обращаются массово к остаткам на складе)?
3. Насколько существенна разница в скорости между файловым вариантом и клиент-серверным с точки зрения бизнеса?
Что на самом деле
Таблица №1. Сравнение файлового и клиент-серверного варианата 1С
Файловая 1С | Клиент-Серверная 1С | |
Максимальный размер одной таблицы | 4 gb | ~сотни терабайт |
Размер на практике когда возникают «тормоза» в 1С при достижении объема базы данных | ~16 G b | ~500-1500 Gb |
Количество пользователей с комфортной работой 1С | 3-10 (далее мешают табличные блокировки) | 300-700 человек (далее обычно нужно покупать более мощное железо и оптимзировать код еще раз) |
Функции, отъедающие ресурсы, которые бы могли бы потрачены на лучшую производительность | нет |
транзакционная целостность данных, логирование операций для дальнейшего анализа, функции повышения параллельности работы пользователей |
Дополнительные преимущества | простота (так как мало функций) | обслуживание данных (например резервное копирование) без остановки работы пользователей |
Минимальная область блокировок | На уровне таблиц (требуется меньше ресурсов) | На уровне записей (требуется больше ресурсов) |
Стоимость владения (условно) | Маленькая | Существенно больше чем файловая |
Наличие промежуточного слоя между клиентом 1С и субд | нет | Сервер 1С |
Ответ на первый вопрос: Работает ли файловый вариант быстрее в операциях «монопольного характера», когда его деятельность не зависит от других пользователей в базе — с вероятностью 99% файловый вариант работает быстрее (при условии его возможности не ограничиваются неудачным железом и не достигаются максимальные возможности файлового варианта)!.
Не верьте нам на слово — проверьте сами. Возьмите (подробное описание здесь ) и убедитесь сами (проверьте сначало в файловом варианте, затем клиент-серверном).
Если Вы не верите тесту, то протестируйте подходящую для проверки по вашему мнению операцию также в файловом и клиент-серверном варианте. Мы рекомендуем за основу взять например «закрытие месяца» на базах размером до 4х гигабайт (иначе на файловом варианте может достигнуто ограничение по размеру).
Понятно, если у Вас закрытие месяца в файловом варианте не возможно, то обсуждать преимущества файлового варианте для Вас нет смысла, Вы согласны?
Возникает еще один промежуточный вопрос:
А насколько файловый вариант быстрее клиент-серверного в цифрах?
Ответ на этот вопрос куда интересней и практичней. Наш тест и практика показывают:
- на среднестатитических операциях на соизмеримых объемах данных почти в 2 раза быстрее
- на среднестатитических операциях когда объемы данных начинают превышать объем доступной оперативной памяти и увеличивая интенсивность подкачи — до 3-4х раз быстрее — это как раз пример закрытия месяца
Однако важно понять что такое «среднестатистическая» операция. Оказывается, что операции, которые оперируют данными в оперативной памяти в клиент-серверном варианте не проигрывают, а иногда даже выигрывают у файлового варианта !
Однако таких операций мало и они не показательны. Основную нагрузку составляют операции, фактически обращающиеся к дисковой подсистеме на чтение, и что особенно важно — на запись данных.
Причем даже безобидный отчет при построении тоже может писать данные, ну например в служебную базу данных tempdb в случаи использования MS SQL Server.
При выполнении запроса в файловом варианте нет посредника данных в виде Сервера 1С, т.е. на один сегмент прохождения запроса меньше. Логично, что если например выполнять «работу без посредников» она всегда быстрее «работы с посредниками».Кроме того, существенная часть функционала на стороне СУБД тоже фактически является «посредниками» — они нужны например не только выполнения запросов, но чтобы обеспечить лучшую параллельность для работы других запросов — например максимально скрупулезно наложить блокировки на используемые данные, чтобы не заблокировать «лишнего» как это делает файловый вариант. Наложить блокировку на всю таблицу проще, так как это одна запись с информацией о блокировке, а наложить блокировки на тысячи строк — это на порядке больше дополнительных записей, но что еще важнее это существенно больше затрачиваемых ресурсов (процессора, памяти, а иногда и места на диске).
Другими словами, клиент-серверный вариант требует больше ресурсов чем файловый для одной и той же работы по объему .
Отсюда следствие — на одном и том же компьютере можно сделать В МОНОПОЛЬНОМ РЕЖИМЕ больше работы в файловом варианте, чем в клиент-серверном (в том же монопольном режиме) .
В итоге вроде как клиент-серверный вариант может сделать меньше работы, требует больше ресурсов, а где же «профит», почему он используется практически везде?
Поможет ответить нам второй вопрос нашей статьи: работает ли файловый вариант быстрее в многопользовательском режиме, когда пользователи активно конкурируют за ресурсы (например при проведении реализации товаров обращаются массово к остаткам на складе)?
В таблице номер №1 мы видим такие существенные недостатки файлового варианта как маленький размер баз данных — на большинстве предприятие базы данных 1С занимают десятки-сотни гигабайт. Но еще важнее, что файловый вариант накладывает избыточные блокировки (лишние), что существенно снижает возможность параллельной работы пользователей.
Итак, для пример на предприятии работает 100 пользователей 1С. В день для ровного счета предположим что каждый пользователь вводит равномерно в течении всего дня 10 документов, а каждая табличная часть содержит 10 строк.
Мы получаем простую арифметику — 100 х 10 х 10 =10 000 строк вводится в информационную систему в течения дня.
Для простоты понимания условимся что каждый пользователь работает с уникальными данными, и другие пользователи с друг другом не пересекаются ни табличной части документа, ни по составу реквизитов.
В клиент-серверном варианте это сработает. Документы проведутся параллельно.
Зная избыточность блокировок файлового вариант давайте посчитаем, что будет если одновременно 100 пользователей в файловом варианте будут вводит в систему первый документ в этот день, но нажмут проведение кнопки одновременно.
Мы знаем что по умолчанию длительность таймаута блокировки 20 секунд. Теоретически можно предположить что кроме первого пользователи все последующие будут друг друга ждать по 20 секунд и затем проводить свои документы. Суммарное ожидание составит 100 пользователей х 1 документ х 20 секунд = 2000 секунд ожидания. Чувствуете — это полчаса простоя пользователей.
На практике все еще печальней, люди не роботы, они не видят когда система заблокирована или вероятность проведения документа будет высокой, поэтому они просто констатируют что вводить данные в систему не возможно из-за постоянных блокировок. Или проще, на практике в файловом режиме предприятие «встанет».
Но даже если представить что на предприятие пришел потрясающий программист и написал программу так, что попытки будут выполняться постоянно автоматически эти полчаса простоя никуда не денуться.
Более того, при попытке 2,3 документы угубят картину и за день даже при идеальном коде файловый вариант «накопит» 100 пользователей х 10 документов х 20 секунд = 20000 секунд ~ 5 c половиной часов простоя.
5 часов — эта фора клиент-серверного варианта. Даже не важно с какой скоростью в каждом потоке в клиент-серверном варианте они будут вводиться. Важнее что они вводятся, а в файловом варианте в это время происходят ожидания на избыточных блокировках.
Поскольку помимо избыточных блокировок еще есть необходимые блокировки, сформулируем понятие производительности заново.
С точки зрения бизнеса производительность — это количество работы за день сделанной всеми 100 пользователями, а не одним монопольно. Поэтому бизнесу важнее сколько в итоге будет введено данных в систему суммарно всеми пользователями. Оценивая производительность коллектиной работы — файловый вариант в десятки-сотни раз проигрывает клиент-серверному варианту .
И снова призываем не верить нам на слово. Возьмите 1С:Стандартный Нагрузочный Тест http://v8.1c.ru/expert/etp.htm или разработайте свой коллективный тест и убедитесь сами с достоверности наших утверждений.
Если у вас возникли вопросы по выполнению теста или его результатам, то можно обсудить их на форуме .
Возможно Вы также захотите приобрести 1С:КИП, обратите внимание на особенности .
Теперь ответим на третий вопрос:Насколько существенна разница в скорости между файловым вариантом и клиент-серверным с точки зрения бизнеса?
Файловый вариант несильно опережает клиент-серверный вариант в монопольном режиме и очень существенно проигрывает в многопользовательском режиме.
Но надо понимать, что у бизнеса есть и другие задачи, которые практически всегда стоят выше по приоритету, а именно отказоусточивость, бесперебойная работа, надежность и стабильность. Работа сервера в отказоусточивом кластере требует дополнительных расходов на зеркалирование данных. Таким образом всегда должен быть баланс между различными задачами: производительность, надежность, безопасность и т.п.
Файловый вариант не имеет механизмов контроля целостности данных. Например, если произойдет сбой в сети при передачи данных, или отключится свет, то в файловом варианте что то успеет записаться, а что нет. Целостность данных будет разрушена. В клиент-серверном варианте в подобных случаях просто произойдет откат незавершенной транзакции, и неполных данных в систему не попадет, целостность данных будет сохранена.
Т.е. мало того, что чем выше количество пользователей в системе,тем больше файловый вариант будет проигрывать клиент-серверному, так еще процедуры восстановления данных в случаи сбоя превращают файловый вариант в абсолютно проигрышный вариант .
А теперь надо задать «правильный вопрос»:
4. Почему возник вопрос оценить разницу в скорости файлового и клиент-серверного варианта?
Таже переписка и флуд на форумах начинаются с того, что спрашивающий имеет проблемы с производительностью в клиент-серверном варианте.
Но вместо изучения причин, которые спровоцировали проблему в клиент-серверном варианте, он обнаруживает что в файловом варианте такой проблемы нету. Его не беспокоит что проблема может быть в «посреднике», который отсутствует в файловом варианте.
Правильный ответ заключается в том что неважно насколько быстрее файловый или клиент-серверный вариант, а важно что именно вызывает замедления в каждом КОНКРЕТНОМ случае. Слово ПРОИЗВОДИТЕЛЬНОСТЬ опасное, так как на самом деле его надо расписывать в виде списка операций в системы, которые в совокупности и формируют это производительность. Надо рассматривать каждую операцию, начиная с той, которая создает наибольший вклад в замедления.
Вообщем то этим мы профессионально и занимаемся уже много лет успешно.
Мы готовы бесплатно посмотреть конкретную операцию, которая медленно работает, оценить стоимость ее решения. Если сроки и цена Вам подходят, то мы ускоряем операцию, и если она достигает обозначенных Вами условий, то только в этом случаи Вы оплачиваете наши работы.