Тормоза на файловой базе — как избежать (из недавнего опыта)

1С запускается по две минуты? Журнал документов открывается по 40 секунд? Документ проводится почти минуту?
Знакомая ситуация, если вы используете файловую версию с сетевым доступом. Самый распространенный совет — ставить сервер, и забыть про тормоза.
Но как быть, если в 1С у вас всего работает 2-3 человека, и тратить деньги на покупку серверных лицензий — явно невыгодно?
В данной статье рассмотрены несколько практических шагов, которые были предприняты у клиента для ускорения работы файловой базы.
Платформа 1С 8.3, управляемые формы, тонкий клиент, база — Управление Торговлей 11.

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

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

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

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

 

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

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

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

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

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

Буду признателен за комментарии и ваши голоса! 🙂

 

40 Comments

  1. TODD22

    У меня работало 7 бухгалтеров в файловой БП 2.0 с включенным RLS. Первые пол года было нормально… потом производительность стала падать.

    УТ 11 изначально видимо задумывалась для более крупных организаций чем 3 бухгалтера и с расчётом на то что будет сервер.

    Reply
  2. vano-ekt

    Windows7_SP1_RDPhack

    а 1С то хоть под эмулем?

    Reply
  3. shibanovan

    Нужно было организовывать работу через web-сервер. И было бы лицензионно

    Reply
  4. Evil Beaver

    Ну собственно, тут уже ответили, я просто разверну подробнее:

    Ставите IIS и поднимаете веб-доступ к базе. Причем это не обязательно веб-клиент, тонкий клиент тоже умеет работать по HTTP.

    В результате, у вас к файлу базы будет иметь доступ только один единственный процесс — IIS. И он будет делать это не через сетевые протоколы, а локально. Профит.

    Reply
  5. axelerleo

    (2) vano-ekt, Удивительно, но 1С у клиента оказалась лицензионная, с программными лицензиями, причем были активированы однопользовательские лицензии.

    А вот операционка стояла Windows 7 Максимальная, разумеется «лицензионная»:)

    Reply
  6. Razlagutt

    (4) Evil Beaver, а что вэбовский вариант реально увеличит скорость? Я просто читал, что вэб требует ВСЕГДА свободный 80-й порт. И типа вообще вэб-режим очень капризный и нестабильный. Так ли это? Как на самом деле?

    Reply
  7. cleaner_it

    (6) Razlagutt, я пробовал поработать. Прирост скорости имеется, но были особенности при работе с табличными документами — из них нельзя было удалить строки (просто отсутствовала такая возможность). Долго разбираться не стал, через пару дней вернул тонкий клиент.

    Reply
  8. asved.ru

    (6) Razlagutt, покажите мне, где вы это прочитали, и я порву автора как грелка, надутая на 120 атмосфер — тузика. Полный бред.

    Веб-сервер можно разместить на любом свободном порту, главное — не забыть указать этот порт на клиенте.

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

    Reply
  9. asved.ru
    как быть, если в 1С у вас всего работает 2-3 человека, и тратить деньги на покупку серверных лицензий — явно невыгодно

    Если у конторы нет 14400 руб. на сервер МИНИ, о каких 2-3 пользователях может идти речь? Ну нечего нескольким пользователям делать в столь мелком «бизнесе».

    А сервер — это не только ценный мех скорость работы, но и гораздо большая надежность данных.

    Reply
  10. vano-ekt

    кстати, об информационном партнере, ПО которого предлагается взламывать в статье — чет по ссылке нет статьи об ИС на его сайте больше

    Reply
  11. axelerleo

    (10) vano-ekt, Никого из наших уважаемых «западных партнеров», как говорит Путин, взламывать нигде не предлагается:) Это не моя вотчина — взламывать операционные системы:) на то есть специально обученные эникейщики.

    Бывают клиенты, которые пытаются экономить на всем на чем можно и нельзя — мол, у нас молодой бизнес, все деньги в рост. Через полгода-год, никуда не денутся, поставят и лицензионные ОС, и мини-сервер.

    Reply
  12. CheBurator

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

    Reply
  13. vano-ekt

    (11)

    У клиента вопрос был решен с помощью сторонней утилиты Windows7_SP1_RDPhack.

    Reply
  14. Чарик

    База начнет разрастаться и тормоза появятся вновь. с этим столкнулся, поставив бушку 3.0 по сети. Здесь решение только одно — переносить на SQL, или ставить мини-сервер, или выносить базу в облако. Особенно если по сети будет работать несколько пользователей.

    Reply
  15. bulpi

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

    Ну не надо так категорично. Идиотскую УТ 11 , наверно, нельзя. А нормальную свою конфигурацию — можно, я так делал.

    Reply
  16. kite2

    * К сожалению, Windows 7 не позволяет штатными средствами превратиться в сервер терминалов — максимум одно активное подключение

    Сейчас уже точно не помню, но кажется Windows 7 позволяет делать до 4-х активных подключений безо всяких серверов терминалов. Там есть что-то типа галки «Удаленное управление». У меня была Windows 7 Ultimate. Может это от версии зависит? Кажется все-таки 4 подключения можно.

    Reply
  17. Созинов

    Спасибо за статью, все грамотно описано. Разве только добавить что некоторые операции вроде (пункты 3,4,8) нужно делать регулярно с разной периодичностью. Плюс недавно появился 1С:Предприятие 8.3 сервер МИНИ на 5 подключений, стоит в районе 15000, что уже могут потянуть мини организации.

    Reply
  18. Созинов

    (11) до прихода особого отдела во многих компаниях есть взломанные продукты, после хорошего штрафа желание ставить пиратку пропадает. Верно вы говорите.

    Reply
  19. orfos

    На веб-сервере никакого реального ускорения заметно не было. Тонкий клиент для всех тежелых баз (УТ11, БП30) дает реальное ускорение. Правда это ускорение в стили 1С. Но все же документ провести можно.

    Reply
  20. bulas

    Про Свертку базы ни слова — уже не помогает?

    Reply
  21. axelerleo

    (20) bulas, В том и юмор, что база крохотная. Поэтому про свертку ни слова. Более того, тормозить при сетевом доступе файловая УТ 11 начнет даже пустая 🙂

    Reply
  22. SOLTAN

    (2)(13)

    Ставьте эту утилитку Windows7_SP1_RDPhack и будет счастье)

    Подменяет стандартную termsrv.dll в которой возможно одно подключение и снимает ограничение по количеству подключений!

    Дальше через «Подключение к удаленному рабочему столу»…..все пользователи подключаются к вашему «серверу».

    Создаете на «сервере» пользователей и они независимо друг от друга работаю.

    За счет этого база лежит на сервере и все пользователи работают на сервере, отсутствуют потери сетевого доступа к базе!

    Проверенно работает, надежно!

    поставил и забыл.

    Reply
  23. a_titeev

    Аппаратные проблемы смотреть нужно все же в первую очередь. На практике видел как замена свитча решила проблему медленной работы в УТ 11 второго пользователя. Лично у себя, еще пример, менял винчестер на более быстрый — 3.0 стала открываться на ноуте за секунду.

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

    А вот остальное, это конечно да.

    Reply
  24. vkozak

    Спасибо за статью.

    Все делал в отдельности, но вот так собранное в единое и систематизированное.

    Reply
  25. kksav

    БП3.0 + УТ11.0 — всё файловое на простом сервере core i3, по 100 мб сети работают 5 человек + я подключаюсь из удаленного офиса работает прекрасно. Правда на SSD, но острой необходимости в сервере 1с не ощущается.

    Тормозов в версии платформы 8.3.6 стало гораздо меньше.

    Reply
  26. Бугор

    А серверу МИНИ, какую СУБД использовать, чтоб бесплатно и не нарушая лицензионной политики компании в части ПО? MS SQL Express для базы БП 3.0 подойдет?

    Reply
  27. west__

    (26)

    До поры до времени подойдёт. У MSSQL Express 2014 ограничение на размер БД 10Гб. И по-моему ещё на использование оперативы и процессора (только 1), но это уже не критично. С другой стороны я нигде не видел, чтобы 1С официально разрешала использование версии Express (хотя Майкрософт разрешает использовать его для работы). Видимо 1С не рекомендует в связи с ограничениями.

    Reply
  28. asved.ru

    (27) west__, а явное «не рекомендует» Вы где-то видели?

    1С вообще не дает каких-либо общих рекомендаций по выбору СУБД.

    Reply
  29. asved.ru

    (26) Бугор, вполне. Пара нюансов: операции обслуживания БД и резервного копирования придется делать средствами внешнего планировщика. И сжатия архивов нет.

    Reply
  30. Созинов

    (26) Бугор, postgresql от 1С. На MS SQL Express должно встать, но по моему это нарушает лицензионное соглашение Microsoft, хотя я не помню — для коммерческого использования он разрешается?

    Reply
  31. djam_arttek

    + подпишусь

    Reply
  32. validat

    1Cv81 УТ10.3 (Партионный учёт, контроль отрицательных остатков 33лаб ру). Очень, очень долго утром проводит первый документ. Помеченных на уд: 2341 помечены на удаление, возможно удалить 975, невозможно удалить 1366. Размер 1CD файла 7,5 Гб, а папки с базой 10 Гб. Номенклатура 25000 ед..

    Подскажите плз как улучшить? Ранее ничего не предпринималось. Что в первую очередь сделать для оптимизации базы? Какой размер базы является критическим для этой конфигурации? Что сделать первоочерёдно или обязательно. Что посоветуете предпринимать раз в месяц, регулярно.

    Win7 x64 8Gb RAM, отдельный HDD на котором находиться база, в терминальном режиме 3 рабочих места.

    Напишите в ЛС советы пжста.

    Читаю, вникаю, буду разрабатывать план мероприятий для улучшения работы УТ 10.3

    Reply
  33. validat

    (9) Антон Стеклов (asved.ru), скажите, речь идёт о сервере-мини 1С (1С:Пр 8.3. Сервер МИНИ на 5 подключений)?

    (У клиента конфигурация: 1С Пр 8.2.13.219, УТ 10.3.16.1).

    Reply
  34. asved.ru

    (33) Итоги пересчитайте.

    Остальная оптимизация — по коду, в УТ 10.3 поле для оптимизационной деятельности огромное.

    Reply
  35. asved.ru

    (34) Каких-либо перекрестных ограничений между вариантами поставки платформы и видом/редакциями/версиями СУБД нет. За единственным исключением — сервер приложения на Linux не работает с MSSQL.

    Reply
  36. validat

    Итоги пересчитываются регулярно.

    Посоветуйте утилиту для переноса остатков, номенклатуры, контрагентов и т.д. на чистую 1С82 УТ 10,3, чтобы вручную не чистить устаревшие товары и документы.

    Или хотя бы для начала, как удалить Номенклатуру, которая давно уже не нужна, но есть в документах связанных. Кто какие утилиты использует для обслуживания разросшейся УТ10.3 ?

    Reply
  37. validat

    Уважаемые, спецы по УТ 10.3, пожалуйста, поделитесь информацией о наиболее подходящей утилите, кто чем пользуется. Вопрос по прежнему актален. Спасибо.

    Посоветуйте утилиту для переноса остатков, номенклатуры, контрагентов и т.д. на чистую 1С82 УТ 10,3, чтобы вручную не чистить устаревшие товары и документы.

    Или хотя бы для начала, как удалить Номенклатуру, которая давно уже не нужна, но есть в документах связанных. Кто какие утилиты использует для обслуживания разросшейся УТ10.3 ?

    Reply
  38. validat

    Пришёл к выводу, что сворачивание базы решит вопрос чистки базы.

    Reply
  39. validat

    Сворачивание базы на тестовой базе не дало желаемого ркзультата, а ещё имеет огромный недостаток — занимает кучу времени и в самом конце, когда база была свернута, выяснилось, что остатки на текущий момент и в свернутой базе не совпадают. Поэтому, чтобы кардинально решить вопрос, было сделана очистка базы от всех документов, кроме инвентаризации (последней) цен номенклатуры. Номенклатура, которая на момент чистки база не используется.также была удалена.

    Reply
  40. user1130085

    (36) «За единственным исключением — сервер приложения на Linux не работает с MSSQL.»

    нет такого понятия в Linux не работает. Руки прямые из плечей и желание… MSSQL официально работает под Linux как и терминалка 1с…

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *