1с как ускорить работу файловой базы
Любые пользователи 1С некоторое время спустя сталкиваются с тем, что программа начинает работать слишком медленно. Общие рекомендации по ускорению «1С» были даны в статье «Как ускорить работу 1С Бухгалтерия 8.3? Бесплатные лайфхаки по оптимизации», теперь поговорим об оптимизации файловой структуры и баз данных. Итак, что делать, чтобы ускорить базу «1С»?
Основные начала и принципа учета требуют практически немедленной реакции на любое событие хозяйственной жизни (см. Закон о бухучете), При между тем пользователи «1С: Бухгалтерия 8.3» отмечают существенное снижение скорости работы, что сказывается на продуктивности и эффективности работы. Попробуйте прежде всего оптимизировать базу в режиме конфигуратора.
Ускорение базы 1С в конфигураторе
Первым делом следует сформировать бэкап, что можно сделать и без запуска конфигуратора (при наличии прав администратора).
Формирование бэкапа
На выходе вы получите зазипованный файл, находящийся там, где вы указали.
Тестирование и исправление
В режиме конфигуратора переходим по пути «Администрирование» - «Тестирование и исправление»:
В открывшемся окне отмечаем следующие пункты:
- «Реиндексация таблиц информационной базы»;
- «Пересчет итогов»;
- «Сжатие таблиц информационной базы».
Устанавливая галочки, мы получаем следующее:
- «Реиндексация таблиц информационной базы» - перестраивает табличные индексы, что позволяет ускорить 1с 8.3 файловый;
- «Пересчет итогов», т.ч. подсчитанных результатов, представленных в виде таблицы, что позволяет «разогнать» получение данных;
- «Сжатие таблиц информационной базы» уменьшает объемы БД на жестком диске.
Проверяем результаты нашей работы. Если ускорить 1С 8.3 файловый не удалось, следует попробовать иные методы
Оптимизация старых ОС
Если в силу каких-либо причин вам приходится работать на «возрастных» ОС – в частности, Windows 7 («семерка»), - то будет нелишним предпринять ряд элементарных шагов, которые помогут ускорить файловую базу 1С, поскольку ПК сможет выделять дополнительные ресурсы для обслуживания системы.
Оптимальное быстродействие
Вызовите свойства ПК (щелчок правой клавиши мыши по иконке «Мой компьютер» - «Свойства»:
Выбрать «Дополнительные параметры системы» (меню слева):
Переходим на вкладку «Дополнительно», открываем «Параметры быстродействия»:
На вкладке «Визуальные эффекты» отметить чекбокс «Обеспечить наилучшее быстродействие» для того чтобы снизить нагрузку на компьютер.
Настройка электропитания
Переходим из «Панели управления» в меню «Электропитание»:
В списке планов электропитания выбирайте «Высокая производительность»:
После этих нехитрых операций ваш ПК даже под «семеркой» сможет выделить достаточные аппаратные ресурсы с тем ускорить файловую «1С».
Тормозит 1С, ускорить SQL?
Первая рекомендация, хотя и несложная по реализации, нередко помогает решить рассматриваемую проблему.
Производим запуск SQL Server Management Studio и ввод данных для подключения, кликнув правой клавишей по серверу, открываем «Свойства»:
Выбираем закладку «Память», настраиваем ограничение потребления оперпамяти. Это делается в окошке «Максимальный размер памяти сервера (МБ)». Чтобы рассчитать этот показатель, необходимо от всего объема оперативной памяти отнять на нужды системы 4096 Мб, а затем вычесть произведение 1536 на число rphost-процессов. Так, при 32 Гб оперпамяти на сервере и двух процессах rphost максимальный размер будет равен 25 600 Мб (32 768 (32 х 1024) – 4096 – (1536 х 2)).
Перейдя на вкладку процессоров, выставляем в окне «Максимальное число рабочих потоков» значение 2048 (при значении «0» число потоков не может превышать 255), и включить чекбокс «Поддерживать приоритет SQL Server».
Вызвав «Базы данных» и рабочую базу (нажатием правой клавиши мыши), переходим на «Свойства» - «Файлы» - «Авторасширение» выставляем расширение файла БД до 250 мегабайт, лога - до 100 мегабайт с ограничением до 4096 Мб.
После нажатия «OK» закрываем программу. Замеры показывают существенное ускорение файловой 1С.
Включаем мгновенную инициализацию
Включение мгновенной инициализации файлов для пользователя, от имени которого запускается Microsoft SQL Server, что позволяет «разогнать» процессы:
- создания БД;
- добавления в имеющуюся БД файлов, журналов и проч.;
- увеличения размера существующих файлов;
- восстановления БД и (или) файловых групп.
Развертываем «Локальные политики», кликаем «Назначение прав пользователей», дважды кликаем на «Выполнение задач по обслуживанию томов», нажимаем «Добавить» - и включаем включения пользователя или группу. Не забываем нажать «Применить».
Тест работы проводится путем создания новой базы (файл в 5 Гб, журнал транзакций - 1 Мб). Если она сформировалась моментально, то все корректно (не забудьте удалить тестовую базу).
Включить блокировку страниц в памяти
Включение разрешения на блокировку страниц в памяти для пользователя или группы производится аналогичным образом.
Тем самым мы определяем, какие именно пользователи вправе сохранять данные в оперпамяти. При этом система не будет отправлять страницы данных в виртуальную память на диске, что повышает производительность. Для проверки следует или перезагрузить сервер, или зайти под логином пользователя, под которым происходит запуск MS SQL Server.
Отключить DFSS для дисков
Механизмы Dynamic Fair Share Scheduling (DFSS) осуществляют распределение аппаратных ресурсов, балансируют их между пользователями, что порой замедляет работу. Чтобы ускорить файловую базу 1С, порой достаточно отключить для дисков, для чего достаточно, вызвав реестр («Win» + «R», в окне «Выполнить» вписать «regedit», нажать «Enter»). В ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk задать «0» в параметре EnableFairShare.
Отключить сжатие данных
Чтобы ускорить базу 1С, можно попробовать отключить сжатие данных для каталогов, где располагаются файлы БД. При включенной опции операционная система производит дополнительную обработку файлов, что замедляет процесс записи (хотя и экономит пространство на диске). Для отключения этой опции открываем свойства каталога (DATA Properties), на вкладке «Общие» (General) нажимаем «Другие» (Advanced Attributes), снимаем (если установлен) флажок «Сжимать содержимое для экономии места на диске» (Compress contents to save disk space).
Задать степень параллелизма
С помощью параметра «Максимальная степень параллелизма» (Max degree of parallelism) задается, во сколько потоков может выполняться один запрос. Так, если в поле стоит «0», то это означает, что сервер автоматически определяет это число. При использовании 1С оптимальным параметром будет «1».
Конечно, это далеко не все методы разогнать 1с, ускорить SQL, существует множество вариантов решения данной проблемы, правда, их реализацию лучше поручить техническим специалистам. Неумелое вмешательство в работу платформы может повлечь за собой потерю ценных данных и аварийную остановку ПО, а с ней – и работы в целом. Предлагаем квалифицированное и всестороннее обслуживание программ семейства «1С» – поручите техническую сторону дела нам, высвободив время для решения по-настоящему важных вопросов.
Долго гадал, почему из трех практически идентичных компьютеров Core I7 одного и того же поколения 1С на двух работает быстро, а на третьем существенно медленнее.
Так как там серверная БД, пришлось серьезно вникать в анализ производительности БД, купил даже курс
"Ускорение и оптимизация систем на 1С:Предприятие 8.3" и кстати не сочтите за рекламу - очень доволен остался. Парни просто профи в вопросе и умении излагать материал.
По советам из этого курса внедрил подсистему, фиксирующую время выполнения операций и стал изучать на 3х секундном процессе открытия определенной формы сколько тратится на запрос БД /процессорную обработку / Передачу данных на клиент.
Начал анализировать, у каких пользователей, в какое время, с какого сервера/клиента получается быстро или медленно.
Конечно же, поменял сервера местами, снова измерил время работы и выяснил что одинаковые сервера с чрезвычайно похожими сетапами дают разное время открытия формы. Хоть тресни.
Пошел к бородатому и чрезвычайно толковому сисадмину, рассказал про этот парадокс и он дал ответ, от которого во мне что-то перевернулось.
А я говорит, в одном сервере на днях в настройках электропитания поставил режим "Высокой производительности". Ну или в дополнительных параметрах питания, нашел раздел "Управление питанием процессора" - "Минимальное состояние процессора" - и поставил настройку 100%
Каково же было мое удивление, когда я замерил скорость открытия формы.
Я думаю, пояснять этот график не надо.
Конечно, грамотный айтишник скажет, что еще в БИОС надо выставлять максимальную производительность процессора, что бы в Windows уже не требовалось за этим следить. Но для сервера лезть в БИОС это целая история, причем ночная. А изменить сделать предложенную настройку настолько просто и очевидно - что стало стыдно за то, что потребовалось так много лет, что бы дойти до этой простой истины.
Ну и на всякий случай перечислю другие рекомендации, что записал для себя как обязательные..
- Использование скоростного SSD (можно SATA3, можно M.2)
- Запас оперативной памяти
- Windows тоже ставить на SSD или же обязательно переносить на SSD диск
- файл подкачки
- КЭШ сервера 1С (в реестре отредактировать команду запуска сервера)
- Терминальных пользователей вынес в отдельную виртуальную машину (тоже на SSD)
- Если используем решения на "обычных формах" - то никакой PostgreSQL - только MS SQL (Реагирую на гневный комментарий. - дело, конечно не в формах, а в технологии запросов, которые применялись в старых конфигурациях, когда допускалось соединение виртуальных таблиц без их предварительной записи во временную таблицу).
- Если решение на управляемых формах, то используем Web сервер для доставки приложения. Особенно заметно на файловых базах - ускорение получается даже на том компьютере, где лежит эта база (что казалось бы парадокс). А у сетевых клиентов - просто космос.
Работа нескольких пользователей по сети с одним и тем же файлом (базой данных) включает механизм сетевой блокировки. Это заставляет систему тратить драгоценное время на выявление открытых сессий записи, и соответственно разрешение конфликтов.
- быстрая работа пользователя с базой по сети в монопольном режиме и крайне медленная - при одновременной работе нескольких пользователей
- быстрая работа пользователя с локальной базой на сервере и медленная - по сети
- процессор на сервере почти не занят
- загрузка гигабитной сетевой карты меньше 5%
- обращения к файловой системе чуть менее 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С. Как диагностировать проблему, и как понять кто виноват, администратор или программист?
Тестируемый компьютер, основной подопытный кролик: HP DL180G6, в комплектации 2*Xeon 5650, 32 Gb, Intel 362i , Win 2008 r2. Для сравнения, сопоставимые результаты в однопоточном тесте показывает Core i3-2100. Оборудование специально взял не самое новое, на современном оборудовании результаты заметно лучше.
Для тестирования разнесенных серверов 1С и SQL, сервер SQL: IBM System 3650 x4, 2*Xeon E5-2630, 32 Gb, Intel 350, Win 2008 r2.
Для проверки 10 Gbit сети использовались Intel 520-DA2 адаптеры.
Файловая версия. (база лежит на сервере в расшаренной папке, клиенты подключаются по сети, протокол CIFS/SMB). Алгоритм по шагам:
0. Добавляем на файловый сервер тестовую базу Гилева в ту же папку, что и основные базы. С клиентского компьютера подключаемся, запускаем тест. Запоминаем получившийся результат.
Подразумевается, что даже для старых компьютеров 10 летней давности (Pentium на 775 socket ) время от нажатия на ярлык 1С:Предприятие до появления окна базы должно пройти меньше минуты. ( Celeron = медленная работа).
Если у Вас компьютер хуже, чем пентиум на 775 socket с 1 гб оперативной памяти, то я Вам сочувствую, и комфортной работы на 1С 8.2 в файловой версии Вам будет добиться тяжело. Задумайтесь или об апгрейде (давно пора), или о переходе на терминальный (или web, в случае тонких клиентов и управляемых форм) сервер.
Если компьютер не хуже, то можно пинать администратора. Как минимум — проверить работу сети, антивируса и драйвера защиты HASP.
Если тест Гилева на этом этапе показал 30 "попугаев" и выше, но рабочая база 1С все равно работает медленно - вопросы уже к программисту.
1. Для ориентира, сколько же может "выжать" клиентский компьютер, проверяем работу только этого компьютера, без сети. Тестовую базу ставим на локальный компьютер (на очень быстрый диск). Если на клиентском компьютере нет нормального ССД, то создается рамдиск. Пока, самое простое и бесплатное — Ramdisk enterprise.
Для тестирования версии 8.2 вполне достаточно 256 мб рамдиска, и! Самое главное. После перезагрузки компьютера, с работающим рамдиском, на нем должно быть свободно 100-200 мб. Соответственно, без рамдиска, для нормальной работы свободной памяти должно быть 300-400 мб.
Для тестирования версии 8.3 рамдиска 256 мб хватит, но свободной оперативной памяти надо больше.
При тестировании нужно смотреть на загрузку процессора. В случае, близком к идеальному(рамдиск), локальная файловая 1с при работе загружает 1 ядро процессора. Соответственно, если при тестировании у вас ядро процессора загружено не полностью — ищите слабые места. Немного эмоционально, но в целом корректно, влияние процессора на работу 1С описано здесь. Просто для ориентира, даже на современных Core i3 с высокой частотой вполне реальны цифры 70-80.
Наиболее часто встречающиеся ошибки на этом этапе.
а) Неправильно настроенный антивирус. Антивирусов много, настройки для каждого свои, скажу лишь то, что при грамотной настройке ни веб, ни касперский 1С не мешают. При настройках "по умолчанию" - может отниматься примерно 3-5 попугаев (10-15%).
б) Режим производительности. Почему-то на это мало кто обращает внимания, а эффект - самый весомый. Если нужна скорость - то делать это обязательно, и на клиентских и на серверных компьютерах. (Хорошее описание у Гилева. Единственный нюанс, на некоторых материнских платах если выключить Intel SpeedStep то нельзя включать TurboBoost).
Если коротко - во время работы 1С происходит очень много ожиданий ответа от других устройств (диск, сеть и пр). Во время ожидания ответа, если режим производительности включен сбалансированный, то процессор понижает свою частоту. Приходит ответ от устройства, надо работать 1С (процессору), но первые такты идут с пониженной частотой, потом частота повышается - а 1С снова ждет ответа от устройства. И так - много сотен раз в секунду.
Включать режим производительности можно (и желательно) в двух местах:
- через BIOS. Отключить режимы C1, C1E, Intel С-state (C2, C3,C4). В разных биосах они называтся по разному, но смысл один. Искать долго, требуется перезагрузка, но если сделал один раз - потом можно забыть. Если в BIOS все сделать правильно, то скорости добавится. На некоторых материнских платах настройками BIOS можно сделать так, что режим производительности Windows роли играть не будет. (Примеры настройки BIOS у Гилева). Эти настройки в основном касаются серверных процессоров или "продвинутых" BIOS, если Вы такое у себя не нашли, и у вас НЕ Xeon - ничего страшного.
- Панель управления - Электропитание - Высокая производительность. Минус - если ТО комптютера давно не проводилось, он будет сильнее гудеть вентилятором, будет больше греться и потреблять больше энергии. Это - плата за производительность.
Как проверить, что режим включен. Запускаем диспетчер задач - быстродействие - монитор ресурсов - ЦП. Дожидаемся, пока процессор ничем не занят.
Это - настройки по умолчанию.
В BIOS C-state включены,
режим энергопотребления сбалансированный
В BIOS C-state включены, режим высокой производительности
Для Pentium и Core на этом можно остановиться,
из Xeon еще можно выжать немного "попугайчиков"
В BIOS C-state выключены, режим высокой производительности.
Если не использовать Turbo boost - именно так должен выглядеть
сервер, настроенный на производительность
А теперь цифры. Напомню: Intel Xeon 5650, ramdisk. В первом случае тест показывает 23.26, в последнем - 49.5. Разница - почти двухкратная. Цифры могут варьироваться, но соотношение остается практически таким же для Intel Core.
в) Turbo Boost. Сначала надо понять, поддерживает ли Ваш процессор эту функцию, например здесь. Если поддерживает, то можно еще вполне легально получить немного производительности. (вопросы разгона по частоте, особенно серверов, касаться не хочу, делайте это на свой страх и риск. Но соглашусь с тем, что повышение Bus speed со 133 до 166 дает очень ощутимый прирост как скорости, так и тепловыделения)
Как включать turbo boost написано, например, здесь. Но! Для 1С есть некоторые нюансы(не самые очевидные). Сложность в том, что максимальный эффект от turbo boost проявляется тогда, когда включены C-state. И получается примерно такая картинка:
Обратите внимание, что множитель - максимальный, частота Core speed - красивейшая, производительность - высокая. Но что же будет в результате с 1с?
Core speed (частота), GHz
CPU-Z Single Thread
Тест Гилева Ramdisk
Тест Гилева Ramdisk
Без Turbo boost
C-state off, Turbo boost
53.19
40,32
C-state on, Turbo boost
1080
53,13
23,04
А в итоге получается, что по тестам производительности ЦПУ вариант с множителем 23 впереди, по тестам Гилева в файловой версии - производительность с множителем 22 и 23 одинаковая, а вот в клиент-серверной - вариант с множителем 23 ужас ужас ужас (даже, если C-state выставить на уровень 7, то все равно медленнее, чем с выключенным C-state). Поэтому рекомендация, проверьте оба варианта у себя, и выберите из них лучший. В любом случае, разница 49,5 и 53 попугая - достаточно значительная, тем более это без особых усилий.
Вывод - turbo boost включать обязательно. Напомню, что недостаточно включить пункт Turbo boost в биосе, надо еще посмотреть и другие настройки (BIOS: QPI L0s, L1 - disable, demand scrubbing - disable, Intel SpeedStep - enable, Turbo boost - enable. Панель управления - Электропитание - Высокая производительность). И я бы все-таки (даже для файловой версии) остановился на варианте, где c-state выключен, хоть там множитель и меньше. Получится как-то так.
Достаточно спорным моментом является частота памяти. Например вот тут частота памяти показывается как очень сильно влияющая. Мои же тесты - такой зависимости не выявили. Я не буду сравнивать DDR 2/3/4, я покажу результаты изменения частоты в пределах одной линейки. Память одна и та же, но в биосе принудительно ставим меньшие частоты.
И результаты тестирования. 1С 8.2.19.83, для файлового варианта локальный рамдиск, для клиент-серверного 1С и SQL на одном компьютере, Shared memory. Turbo boost в обоих вариантах выключен. 8.3 показывает сопоставимые результаты.
Разница - в пределах погрешности измерений. Я специально вытащил скрины CPU-Z чтобы показать, что со сменой частоты меняются и другие параметры, те же CAS Latency и RAS to CAS Delay, что нивелирует изменение частоты. Разница будет тогда, когда физически будут меняться модули памяти, с более медленных на более быстрые, но и там цифры не особо значительные.
2. Когда с процессором и памятью клиентского компьютера разобрались, переходим к следующему очень важному месту - сети. Про тюнинг сети написаны многие тома книг, есть статьи на Инфостарте (1, 2 и другие), здесь я на эту тему заострять внимание не буду. Перед началом тестирования 1С просьба убедиться, что iperf между двумя компьютерами показывает всю полосу (для 1 гбит карточек - ну хотя бы 850 мбит, а лучше 950-980), что выполнены советы Гилева. Потом - самой простой проверкой работы будет, как это ни странно, копирование одного большого файла (5-10 гигабайт) по сети. Косвенным признаком нормальной работы на сети в 1 гбит будет средняя скорость копирования 100 мб/сек, хорошей работы — 120 мб/сек. Хочу обратить внимание, что слабым местом (в том числе) может быть и загруженность процессора. SMB протокол на Linux достаточно плохо параллелится, и во время работы он вполне спокойно может «скушать» одно ядро процессора, и больше не потреблять.
И еще. С настройками по умолчанию windows клиент лучше всего работает с windows server (или даже windows рабочая станция) и протоколом SMB/CIFS, linux клиент (debian, ubuntu остальные не смотрел) лучше работает с linux и NFS (с SMB тоже работает, но на NFS попугаи выше). То, что при линейном копировании вин-линукс сервер на нфс копируется в один поток быстрее, еще ни о чем не говорит. Тюнинг debian для 1С - тема отдельной статьи, я к ней еще не готов, хотя могу сказать, что в файловой версии получал даже немного бОльшую производительность, чем Win вариант на этом же оборудовании, но с postgres при пользователях свыше 50 у меня пока еще все очень плохо.
Самое главное , о чем знают "обжегшиеся" администраторы, но не учитывают начинающие. Есть очень много способов задать путь к базе 1с. Можно сделать \\server\share, можно \\192.168.0.1\share, можно net use z: \\192.168.0.1\share (и в некоторых случаях такой способ тоже сработает, но далеко не всегда) и потом указывать диск Z. Вроде бы все эти пути указывают на одно и то же место, но для 1С есть только один способ, достаточно стабильно дающий нормальную производительность. Так вот, правильно делать надо так:
В командной строке (или в политиках, или как Вам удобно) - делаете net use DriveLetter: \\server\share. Пример: net use m: \\server\bases. Я специально подчеркиваю, НЕ IP адрес, а именно имя сервера. Если сервер по имени не виден - добавьте его в dns на сервере, или локально в файл hosts. Но обращение должно быть по имени. Соответственно - в пути к базе обращаться к этому диску (см картинку).
А теперь я на цифрах покажу, почему именно такой совет. Исходные данные: Карты Intel X520-DA2, Intel 362, Intel 350, Realtek 8169. ОС Win 2008 R2, Win 7, Debian 8. Драйвера последние, обновления применены. Перед тестированием я убедился, что Iperf дает полную полосу (кроме 10 гбит карточек, там получилось только 7.2 Gbit выжать, позже посмотрю почему, тестовый сервер еще не настроен как надо). Диски разные, но везде SSD(специально вставил одиночный диск для тестирования, больше ничем не нагружен) или рейд из SSD. Скорость 100 Mbit получена путем ограничения в настройках адаптера Intel 362. Разницы между 1 Gbit медь Intel 350 и 1 Gbit оптика Intel X520-DA2 (полученной путем ограничения скорости адаптера) не обнаружено. Максимальная производительность, турбобуст выключен (просто для сопоставимости результатов, турбобуст для хороших результатов добавляет чуть меньше 10%, для плохих - вообще может никак не сказаться). Версии 1С 8.2.19.86, 8.3.6.2076. Цифры привожу не все, а только самые интересные, чтобы было с чем сравнивать.
Последнее время пришлось немного поработать с 1С и решить несколько проблем. Все они были связаны с медленной работой файловых баз 1С. Поделюсь своими советами на тему того, как их немного ускорить.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на . Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.Введение
Раз вы добрались до этой статьи, думаю, вам не надо рассказывать о том, что такой файловая база 1С. Отмечу только, что она очень актуальна для малого и для некоторого среднего бизнеса. С помощью файловой базы можно за очень скромный бюджет начать работу с 1С. Вам надо будет купить лицензию на саму конфигурацию 1С и несколько софтовых лицензий на рабочие места.
А если вы выходите за возможности работы в файловых базах, дальше вам нужно будет платить в разы больше. Там нужна будет и лицензия на сам сервер 1С, на серверную ОС, на лицензию MSSQL, если выберите ее и т.д. В общем, там совсем другие бюджеты. Не хочу в данной статье останавливаться на разборе цен, так как они постоянно меняются. И будут сильно отличаться в зависимости от выбранной схемы работы.
В любом случае, переход от файловой базы к полноценному северу 1С сопряжен с существенными финансовыми затратами. Когда вы находитесь в пограничной ситуации, когда вроде бы и файловая база еще тянет, но работать трудно стало из-за тормозов, но переходить на клиент-серверную схему вы не имеете финансовой возможности. Тут как раз можно немного поработать с файловыми базами, чтобы ускорить их работу.
Использование SSD диска
Когда задумал написать статью, про ssd в голове не было мыслей. Подумал, что это первое, что должен попробовать человек, который захочет ускорить работу чего угодно на компьютере, в том числе и файловой базы на 1С. Но когда написал статью, понял, что без этого упоминания она какой-то неполноценной получилась.
Первое, с чего начинаем ускорение файловой базы - переносим ее на SSD. На обычных дисках с ней сейчас вообще невозможно работать даже одному. Пи этом имейте ввиду, что если с базами интенсивно работают, ресурс бюджетных ssd дисков будет очень быстро расходоваться. Я хоть и давненько уже, но помню, как в одном месте менял эти диски каждые полгода, год. Так что обязательно бэкапы и по возможности raid1 или raid10.
Отмечу, что у меня все диски выходили из строя примерно одинаково. Они просто не давали ничего писать на них, так что данные по факту не терялись. Просто устанавливался новый диск, файлы копировались и продолжалась работа.
Я рекомендую тут не экономить и купить не десктопный диск, а что-то подороже, с большим ресурсом. Но если денег нет, то можно и обычный. Просто не забывайте каждую ночь бэкапить базы. Малый бизнес переживет если что, от потери данных за день. Можно и руками перезабить, если хочется сэкономить. Такая плата выйдет.
Настройка регламентных заданий
Дальше ускорять файловую базу я бы продолжил настройкой регламентных заданий. Если вы никогда этого не делали, то сразу же отправляйтесь туда. По умолчанию там есть куча заданий, которые вам не нужны или не очень нужны. Например, обновление новостей или отправка статистики использования в 1С.
Это то, что точно не нужно. Так же возможно вам не нужно построение и обновление полнотекстового индекса. Это задание по дефолту стартует каждые 60. секунд и катастрофически снижает работу файловой базы. Более того, я видел глюки перестроения индекса, когда в директории с файловой базой 1С в папке 1Cv8FTxt копились десятки тысяч мелких файлов.
Я не знаю, с чем связана эта ошибка, так как сам ее не решал. Замечал уже на бэкап сервере, куда неожиданно начали литься сотни тысяч файлов с файловых баз. Передал информацию ответственным людям, оказалось, что там и сами базы стали жутко тормозить примерно в то же время, когда появились эти файлы. Судя по всему, после перестроения индекс почему-то не собрался обратно. И это очень сильно затормозило работу. Достаточно было эти файлы просто удалить, чтобы опять все нормально заработало.
Если вам не нужен этот индекс, а для небольших баз он реально не нужен, отключите его или перестраивайте хотя бы раз в час, но не каждую минуту. Этот совет актуален не только для файловых баз. Прицепом к этому заданию идет Извлечение текста файлов для поиска. Оно тоже запускается очень часто и может быть не нужно вам. По возможности, перенесите все регламентные задания на ночь, когда с базами никто не работает.
Меня один раз просили сделать аудит 1С сервера, который жутко тормозил. При этом там одновременно работало не так много людей, около 10. А железо должно было тянуть человек 50. Баз было много, в том числе тестовых, но людей-то работало мало. Сами по себе базы не должны нагружать сервер.
У директора уже лежал счет на сотни тысяч рублей на новый сервер, который должен был ускорить работу 1С. Я просто зашел на сервер поздно вечером, когда там не было людей и увидел, что процессор в потолок уперся от процессов 1С. Стал разбираться, что там происходит. Оказалось, на всех базах были дефолтные регламентные задания. Достаточно было хотя бы на тестовых их отключить вообще, чтобы нагрузка упала вдвое. А дальше уже стали и в рабочих базах разбираться. Новый сервер не понадобился. Так я за один вечер сэкономил примерно 400 т.р., на которые был счет.
В общем, если у вас тормозят базы 1с, не только файловые, разберитесь в первую очередь с регламентными заданиями, а потом двигайтесь дальше.
Переход на публикацию в WEB
Недавно у меня была статья про настройку публикации баз 1с через web. Всю техническую часть можете посмотреть там. Вам не обязательно делать так же. Я рассказал про то, как делаю я. Просто опубликуйте любым образом и проверьте работу.
Файловые базы публиковать через веб имеет смысл практически всегда, когда с базой работает более 1-го человека одновременно. Как мне рассказал один специалист, работающий постоянно с 1с (сам я не проверял эту теорию), веб сервер выстраивает запросы к базе последовательно и снижает вероятность блокировок. Когда в базе одновременно работают несколько человек, это ускоряет в итоге работу для всех. Если в базе работает один человек, публикация через веб наоборот, снижает производительность.
При этом с базой не обязательно работать через браузер. Более того, я не советую использовать браузер, так как постоянно будете сталкиваться с какими-то проблемами. В браузерах регулярно что-то обновляется, меняются параметры безопасности, устанавливаются и обновляются плагины. В итоге 1С может глючить или работать с ошибками.
В таком режиме более ли менее комфортно смогут одновременно работать человек 5 с файловой базой 1С. Конечно, это условная цифра, так как все будет зависеть от размера базы и интенсивности работы.
Терминальный доступ к файловой базе
Предыдущие способы ускорить работу файловой базы можно считать бесплатными, так как не требуют никаких денежных расходов. В данном случае придется немного потратиться на терминальный сервер и лицензии к нему, если будете использовать Windows Server.
Если все предыдущие оптимизации файловой базы не привели к желаемому результату, можете попробовать перенести ее на терминальный сервер, опубликовать через веб и подключить терминальным пользователям эту базу тоже через web. Это важно, подключаем не напрямую, как обычную файловую базу.
Такой режим работы должен быть чуть быстрее, чем удаленное подключение к опубликованной базе. Это уже последние модификации, которые теоретически могут вам улучшить работу баз. Даже если это не поможет, приобретенные лицензии вам пригодятся далее, когда вы перейдете на клиент - серверную работу с 1С.
Заключение
Я поделился исключительно своим опытом работы с файловыми базами 1С. Не нужно его принимать на веру и слепо следовать. Я мог где-то ошибиться или просто заблуждаться, получить неверные данные. Если у вас есть замечания по написанному, делитесь в комментариях.
Используйте статью, как информацию к размышлению, тестируйте и проверяйте свои конфигурации, ищите оптимальные. Если есть, чем дополнить статью и увеличить производительность файловых баз, пишите в комментарии свои советы.
Читайте также: