Скорость работы 1С8 файловой по сети

Администрирование - Оптимизация БД (HighLoad)

сеть производительность скорость cnvdbfl формат базы размер страницы netsh реестр

63
Как я увеличил скорость работы файловой 1С8 по сети, изменив формат БД и размер страницы.

Стал обращать внимание на следующие вещи.

Производительность компьютеров растет. Увеличивается частота процессора, память. Сейчас на компьютерах не редкость SSD. При этом растет скорость работы файловой 1С локально, а вот скорость работы по сети остается прежней. На старом и на новом железе загрузка сети в диспетчере примерно одинакова. И составляет 15%-20%.

Скорость работы 1С зависит от скорости сети:

У меня на ноуте при формировании отчета загрузку сети в диспетчере показывает: WiFi в районе 7Мбит/с, по витой паре - 15Мбит/с. Т.е. примерно теже 15% от 54 и 100 соответственно.
Приходилось работать с файловой базой по гигабитной сети. Ни каких цифр здесь не приведу, но ощущения от работы 1С намного лучше.

Из этих наблюдений ясно, что сеть - это узкое место.

Стал я пробовать оптимизировать сетевой стек  netsh int tcp set global autotuninglevel=disabled и т.д.
Вносил изменения в реестр LargeSystemCache, DisablePagingExecutive, NtfsDisableLastAccessUpdate, NtfsDisable8dot3NameCreation, EnableOplocks, OplocksDisabled и т.д.
Пробовал работать через сетевую папку и сетевой диск.
Но особого увеличения производительности не было.

В результате поисков и экспериментов обнаружил, что формат базы 8.2.14 и размер страницы 4К.

Получить информацию о формате БД можно, запустив cnvdbfl.exe -i D:\Base1S8\1Cv8.1CD

Изменил формат базы на 8.3.8 и размер страницы на 32К.
cnvdbfl.exe -с -p 32K D:\Base1S8\1Cv8.1CD

Результат очень положительный. Отчет на ноуте формируется в 2-3 раза быстрее. Загрузка сети по WiFi - 32 Мбит/с, по витой паре более 50 Мбит/с.

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

Мои наблюдения по управляемым формам:
Как минимум при переходе с 8.2.14 на 8.3.8-8К ничего не меняется. Как максимум может дать прирост производительности. У меня на веб-клиенте перепроведение документов прошло на 20% быстрее. При этом процессор был более нагружен, чем при 8.2.14.
Дальнейшее увеличение размера страницы может дать отрицательный результат.

Про формат 8.3.8 можно почитать на ИТС:
https://its.1c.ru/db/metod8dev#content:5924:hdoc

P.S.
Перед любыми изменениями формата БД не забываем делать архивы.
Пробовать и экспериментировать лучше на копии.
Для тех кто хочет попробовать оптимизировать работу Windows прикрепил два файла:
win7net.cmd - сетевой стек, в Win10 запускать в PowerShell под админом.
Win7_1C.reg - твики реестра.
В файлах ряд параметров дублируется.

63

Скачать файлы

Наименование Файл Версия Размер
Твики реестра
.reg 4,41Kb
01.11.18
3
.reg 4,41Kb 3 Скачать
Сетевой стек
.cmd 5,87Kb
01.11.18
3
.cmd 5,87Kb 3 Скачать

См. также

Комментарии
Избранное Подписка Сортировка: Древо
1. Timur.V 29 01.11.18 13:26 Сейчас в теме
Изменил формат базы на 8.3.8 и размер страницы на 32К.

А что вас остановило, почему не 64Кб ?

Если будете и дальше экспериментировать на рабочей базе (подумайте!),
можете посмотреть MTU (Maximum Transmission Unit) для Ethernet, например, составляет 1500 байтов.
Если у вас получится что-то интересное (ссылка), обязательно напишите об этом.
2. Vlx 286 01.11.18 13:42 Сейчас в теме
(1) Мне больше не надо. Значения 16-32 вполне устроят.
3. Dream_kz 78 01.11.18 14:57 Сейчас в теме
А поставить веб-сервер, не? Тонкий клиент через веб-сервер работает быстрее файловой по сети.
JohnyDeath; +1 Ответить
5. Vlx 286 01.11.18 15:05 Сейчас в теме
(3) Пока еще не все конфигурации на УФ работают.
6. Vlx 286 01.11.18 15:10 Сейчас в теме
(3) https://its.1c.ru/db/metod8dev#content:5924:hdoc
Цитата:
Начиная с версии платформы "1С:Предприятие" 8.3.8 появилась поддержка нового формата файловых баз данных (включая работу в режиме совместимости с предыдущими версиями). Новый формат файловых баз данных предназначен для ускорения процесса открытия и работы с информационной базой, поэтому, начиная с версии платформы 8.3.9, новый формат используется по умолчанию при создании новых файловых баз данных.

В новом формате (версии "8.3.8") появились следующие возможности:

Уменьшен размер и оптимизирована структура заголовка с метаинформацией в файле 1Cv8.1CD. Это позволяет существенно снизить число операций чтения файла при открытии базы данных и, тем самым, заметно ускорить время старта и начала работы программы.
Теперь можно настраивать размер внутренней страницы файла данных. Это размер порции данных, в которых хранится информация и которыми обменивается программа с файловой системой. Предыдущий формат файловой базы данных (версии "8.2.14") поддерживал единственный размер внутренней страницы файла – 4Кб. Новый формат по умолчанию использует размер страницы 8Кб, но позволяет его менять в диапазоне от 4Кб до 64Кб.
Наибольший эффект от использования нового формата файловых баз данных ожидается в следующих сценариях:

"холодный" запуск программы,
работа с файлами базы данных по локальной сети,
работа с сильно фрагментированной базой данных,
использование дисковых подсистем с невысокой производительностью.
При создании новых файловых баз данных рекомендуется использовать настройки формата базы по умолчанию (версия формата "8.3.8", размер страницы файла 8Кб). Если Вы используете базу данных, созданную в предыдущих версиях платформы, и наблюдаете недостаточно высокую производительность при старте и во время работы программы, то рекомендуется сконвертировать базу данных на новый формат файла.
sergio199; Krio2; mysm; JohnConnor; acanta; +5 Ответить
7. Vlx 286 01.11.18 15:13 Сейчас в теме
(6) + Думаю для web доступа производительность тоже улучшится.
13. Dream_kz 78 01.11.18 16:08 Сейчас в теме
(5) Не увидел упоминание вида клиента, подумал про тонкий. Ну толстый по сети использовать это еще то себе решение, я бы однозначно менял схему в сторону RDP (знаю про лицензии, но и этот вопрос решаем, только тссс), хотя бы потому что стабильность повысится.

(10) Тонкий клиент файловой базы по сети работает неплохо? Это где у вас так? Через веб-сервер (именно в файловой) работает быстрее, чем просто по сети.
14. Vlx 286 01.11.18 16:25 Сейчас в теме
(13)
(10) Тонкий клиент файловой базы по сети работает неплохо? Это где у вас так? Через веб-сервер (именно в файловой) работает быстрее, чем просто по сети.

Полностью согласен.
Тонкий клиент боле менее работает только если локально и один пользователь. И все равно хуже чем веб.
Это опять же говорит о том, что сеть - узкое место.
37. Azimut99 07.11.18 09:48 Сейчас в теме
(14) А если тонкий клиент через веб-сервер ?
38. Vlx 286 07.11.18 14:19 Сейчас в теме
(37) Так об этом и говорили.
16. oldcopy 103 01.11.18 16:49 Сейчас в теме
(13)
Тонкий клиент файловой базы по сети работает неплохо? Это где у вас так?


Много где, местами и через интернет поверх VPN работает. Разницы между тонким и веб на современных конфигурациях особо не видно. Разве что если связь совсем плохая, через 3G, тогда да.

А работа в режиме тонкого клиента + двойной горизонт DNS позволяют работать с одной и той же базой в списке как по локалке в офисе, так и через VPN за ее пределами без лишних телодвижений для бухгалтера.
17. Dream_kz 78 01.11.18 17:08 Сейчас в теме
(16)
Много где, местами и через интернет поверх VPN работает. Разницы между тонким и веб на современных конфигурациях особо не видно

(15)
Для тонкого клиента сеть не является узким местом. Проводили как-то исследования, для файловой базы в терминале и тонкого по сети разница в пределах погрешности измерений


Коллега, не обессудьте, но что-то мне подсказывает, что Вы свистите. Из субъективного опыта скажу, что разница ощутима, также разработчики платформы, сотрудники 1С на партнерском форуме это явно утверждали, и предлагали работать через веб-сервер, так как есть проблемы с производительностью при работе по сети (пруфы искать очень лень). Но если исследовали, то может сделаете статью с измерениями?
21. oldcopy 103 01.11.18 17:32 Сейчас в теме
Что заставляет использовать БП 2.0? Тройка вылизана, переход простой и безболезненный.

КА и УПП в файловом? Ну это надо быть знатным извращенцем эстетом.

Остается БГУ, УТ 10 и Камины, да и то УТ - скорее всего тоже клиент-сервер.


(17)
Коллега, не обессудьте, но что-то мне подсказывает, что Вы свистите. Из субъективного опыта скажу, что разница ощутима, также разработчики платформы, сотрудники 1С на партнерском форуме это явно утверждали, и предлагали работать через веб-сервер, так как есть проблемы с производительностью при работе по сети (пруфы искать очень лень).


Пруфы? Будут вам пруфы. Начнем отсюда:

http://v8.1c.ru/overview/Term_000000034.htm

В режиме тонкого клиента на клиенте поднимается серверная среда, а сама БД используется как удаленная СУБД. Трафик там небольшой, можете посмотреть сами, пропускная сети роли здесь не играет. Несколько тонких клиентов - несколько серверных сред, но, по прежнему одна СУБД. Вот здесь и выплывают проблемы разделения доступа и блокировок.

Веб-клиент создает серверную среду на веб-сервере, одну на всех. Теперь у нас одна среда - одна СУБД, но все запросы обрабатываются одним клиентом. По очереди. При большом количестве клиентов и их интенсивной работе упремся в производительность модуля веб-сервера (читай: одного тонкого клиента).

Для двух-трех клиентов это может и будет незаметно, но вешать всю сеть на веб-клиента явно не стоит. Плюс хорошие аппетиты к оперативке, которая не освобождается сразу по завершении сеанса (так как от CGI схемы ушли к аналогу FastCGI).

Ну так и два-три клиента по сети с файловой нормально работают, а больше - там уже смотреть надо.

(17)
Но если исследовали, то может сделаете статью с измерениями?


Сделаем, как раз будет, чем в праздники заняться.
24. Dream_kz 78 01.11.18 17:54 Сейчас в теме
(21)
а сама БД используется как удаленная СУБД. Трафик там небольшой, можете посмотреть сами, пропускная сети роли здесь не играет.

Проблема возникает именно в том, что нужно из бд доставить данные на серверную среду, чтобы обработать, при веб-сервере по сети гуляют только запросы и ответы для клиента. Код самой платформы делает это не очень оптимально, плюс надо делать это не через очень быструю сеть (будем рассматривать самый бюджетный 100 мбит/с). С трафиком кстати есть интересные подводные камни, к теме это не относится, просто пример. Если анализировать трафик между сервером 1С и сервером MS SQL (пусть это две разные машины), то загрузка сети будет маленькая, и многие администраторы не увидят проблемы в ней, но если расширить ширину канала, то будет эффект в производительности (есть статья на хабре об этом)

(21)
Веб-клиент создает серверную среду на веб-сервере, одну на всех. Теперь у нас одна среда - одна СУБД, но все запросы обрабатываются одним клиентом. По очереди.

Тут как раз таки серверная среда одна, и расположена обычно на том же диске, что и файл бд, соот-но работа с диском намного быстрее работы по сети, ну и не нужно тягать данные через сеть на клиента, ему отдадим, грубо говоря, картинку. А то что оно обрабатывается последовательно, не вижу проблем, в файловой в принципе проблемы с блокировкой всей таблицы, узкое место именно бд, так как модифицировать файл по сети затратней модификации этого же файла оттуда где он лежит.

(21)
Сделаем, как раз будет, чем в праздники заняться.

Будет интересно почитать.
25. Vlx 286 01.11.18 18:02 Сейчас в теме
(21)
Что заставляет использовать БП 2.0? Тройка вылизана, переход простой и безболезненный.

Я бы вопрос поставил: что заставит перейти с БП 2.0, если она жива и обновляется? Сидят еще даже на Бухгалтерии 7.7 и тоже ни куда не собираются переходить.

(21)
Остается БГУ, УТ 10 и Камины, да и то УТ - скорее всего тоже клиент-сервер.

Почему остается?
Я же говорю все конфигурации дублируются на обычных и управляемых формах. Кроме ЗУП, ЗИКБУ, Розницы. Т.е. конфигураций примерно одинаковое количество.
26. oldcopy 103 01.11.18 19:44 Сейчас в теме
(25)
Почему остается?
Я же говорю все конфигурации дублируются на обычных и управляемых формах. Кроме ЗУП, ЗИКБУ, Розницы. Т.е. конфигураций примерно одинаковое количество.


Я не вижу практического смысла в использовании БП 2.0 когда есть 3.0, тем более, что двойку обслуживают по остаточному принципу.

Остается то, что переносить долго, дорого или сложно (технически, организационно и т.д.) - это бюджетка, там свои тараканы, Камины и пожалуй УТ. Все остальное можно использовать на управляшках, тем более, что преимуществ у них более чем достаточно (тот же тонкий клиент, веб-сервер и т.д.).


(24)
Проблема возникает именно в том, что нужно из бд доставить данные на серверную среду, чтобы обработать, при веб-сервере по сети гуляют только запросы и ответы для клиента. Код самой платформы делает это не очень оптимально, плюс надо делать это не через очень быструю сеть (будем рассматривать самый бюджетный 100 мбит/с).


Это так, но узкое место там не в сети. Да, можно расширить канал и, возможно, производительность на участке БД - серверная среда увеличится, но сможет ли платформа получить от этого выгоду - иной вопрос. Мы же рассматриваем производительность клиента в комплексе, а не по отдельным участкам. Какая разница, выполнится мой запрос за 0,1 с или 1 с, если последующая обработка результата займет, скажем, 10 с?
28. Dream_kz 78 01.11.18 20:39 Сейчас в теме
(26)
Какая разница, выполнится мой запрос за 0,1 с или 1 с, если последующая обработка результата займет, скажем, 10 с?

Что понимается под обработкой результата? Работа с данными серверной средой? Работа с БД абсолютно всегда занимает огромное количество времени, будь то сервер 1С, либо файловая база, ибо тут самая непроизводительная часть - диск. Данные с бд эмуляция сервера получит, поместит их в память, и обработает, а основные проблемы при параллельной обработке данных заключаются в том, что данные используются одни и те же (10 клиентов* будут по очереди пытаться заблокировать таблицу регистра и модифицировать файл бд по не самой быстрой сети). Между тем, если это будет делать кто-то один, проблем с параллельностью не будет, будет очередь, да, но мы работаем с диском напрямую (в случае веб-сервера). Думаю Вам известны методы оптимизации 1С, где проведение документов просто выстраивали в очередь, из-за проблем с блокировками, и это работало. Приходим в итоге к классическому спору, "что быстрее": центральный процессор обрабатывает информацию быстро, но в один поток, графический процессор может делать параллельно много мелких операций, но если с данными параллельно работать не получается, он проигрывает в производительности.
* Утрирую про 10 клиентов
40. Vlx 286 08.11.18 12:12 Сейчас в теме
(21)
Сделаем, как раз будет, чем в праздники заняться.

Где обещанное исследование?
10. oldcopy 103 01.11.18 15:30 Сейчас в теме
(3)
А поставить веб-сервер, не? Тонкий клиент через веб-сервер работает быстрее файловой по сети.


Тонкий клиент и без веб-сервера довольно бодро работает по сети. Насколько я понял, в статье речь идет о толстом клиенте и неуправляемых формах, там да, есть проблемы, поэтому исследование интересное. Правда уже неактуальное, хотя кому-то и пригодится.
12. Vlx 286 01.11.18 15:50 Сейчас в теме
(10) Почему не актуально? Не соглашусь.
15. oldcopy 103 01.11.18 16:46 Сейчас в теме
(12)
Почему не актуально? Не соглашусь.


А сколько их осталось, конфигураций не на управляшках?

Тонкий клиент боле менее работает только если локально и один пользователь. И все равно хуже чем веб.
Это опять же говорит о том, что сеть - узкое место.


Для тонкого клиента сеть не является узким местом. Проводили как-то исследования, для файловой базы в терминале и тонкого по сети разница в пределах погрешности измерений.
18. Vlx 286 01.11.18 17:14 Сейчас в теме
(15)
А сколько их осталось, конфигураций не на управляшках?

Уходят ЗУП 2.5, ЗИКГУ1.0, Розница 1.0, а остальные есть и на УФ и на обычных.
УТ10, БГУ1, Камин 3.0-3.5, КА, УПП, БП2.0.
19. Vlx 286 01.11.18 17:21 Сейчас в теме
(15)
Для тонкого клиента сеть не является узким местом. Проводили как-то исследования, для файловой базы в терминале и тонкого по сети разница в пределах погрешности измерений.

Конфигурацию сети, компов, сервера не скажите?
Какая конфигурация 1С? Размер БД?
20. Vlx 286 01.11.18 17:23 Сейчас в теме
(19) + А какой формат БД? И размер страницы?
22. oldcopy 103 01.11.18 17:33 Сейчас в теме
(19)
Конфигурацию сети, компов, сервера не скажите?
Какая конфигурация 1С? Размер БД?


Раз пошла такая пьянка, сделаю статью на праздниках.
23. Vlx 286 01.11.18 17:42 Сейчас в теме
8. acanta 45 01.11.18 15:14 Сейчас в теме
Сконвертировать при помощи утилиты cnvdbfl.exe?
Например это https://infostart.ru/public/690692/
интересует дефрагментация базы. По вашему мнению, следует ли проделывать какие либо манипуляции при каждом обновлении платформы?
9. Vlx 286 01.11.18 15:21 Сейчас в теме
(8) Да cnvdbfl.exe. Пример есть в публикации.
Можете использовать графическую оболочку для cnvdbfl.exe в указанной вами публикации.
11. Vlx 286 01.11.18 15:37 Сейчас в теме
(8) Новые базы Розницы 2.2, ЗУП 3.1, ЗИКГУ 3.1 вполне существуют на формате 8.3.8 и ни каких манипуляций с ними делать не надо.
27. KazanKokos 7 01.11.18 20:29 Сейчас в теме
поддержу. работа через вебсервер или рдп. все остальное от лукавого.
30. namazi74 2 02.11.18 10:36 Сейчас в теме
(27) когда в базе два пользователя, то РДП дороже настраивать, чем оставить всё как есть
35. KazanKokos 7 03.11.18 19:43 Сейчас в теме
(30) когда был фрилансером много раз(а точнее всегда) убеждался что даже два пользователя по сети по share это ужас.
39. teller 08.11.18 07:33 Сейчас в теме
(35)
да был фрилансером много раз(а точнее всегда) убеждался что даже два пользователя по сети по share это

100мбит сеть , БП 2, 3 пользователя = нормальная работа
29. SerVer1C 153 02.11.18 08:09 Сейчас в теме
По моему, прирост скорости от увеличения размера страницы вы увидите только для файловой базы, лежащей на дисковых носителях (HDD). Для твёрдотельных накопителей (SSD) прироста не будет.
32. Vlx 286 02.11.18 12:36 Сейчас в теме
(29) Я поставил новые компы с SSD, а прироста скорости работы по сети нет. Локально можно сказать летает. Почему так?
31. CSiER 20 02.11.18 10:52 Сейчас в теме
Можете ли для полноты картины сделать аналогичные замеры для базы, лежащей на ram-диске?
33. Vlx 286 02.11.18 13:53 Сейчас в теме
(31) Я нет. Может кто-нибудь сделает.
41. VGHOST 97 10.11.18 19:30 Сейчас в теме
(31) Замеров не делал, но юзаю RAM-диск для обработки клиентских баз.
Так вот от простого переноса файла базы в оперативу субъективно не меняется ничего (читай прирост <20%).
Пришлось перенаправить туда же профиль пользователя (отдельно Temp и LocalAppData не вышло), тогда разница стала ощутимой.

Во вложении скрипты, инициализирующие RAM-Drive для 1С.
Cсылки из временного профиля в рабочий вычисляются в контексте Одмина, но можно прописать статику в первые 3 строки Env.cmd.
После запуска Setup.cmd с повышенными привилегиями создается диск Z:, с него все и запускать.
Прикрепленные файлы:
RamDrive.img.7z
42. Vlx 286 10.11.18 20:49 Сейчас в теме
43. VGHOST 97 11.11.18 10:27 Сейчас в теме
(42) Разумеется, это приблуда из разряда Temp.
Для организации постоянного хранения оно даже в страшном сне не привидится. Тут однозначно RAID с большим кешем и батарейкой. По-сути то же самое, и по сети дает выигрыш, клиенты оценили.
Все одно где возможно надо ставить Апач и раздавать файловые через него. Пока только непонятно как управлять отдельными базами - ручные перезагрузки и падения сразу для всех. Сервер 1С стоит как 1,5 минимальных RAID-контроллера, так что 80% конфигураций - файлы через WEB.
44. Vlx 286 11.11.18 12:28 Сейчас в теме
(43) Что-то я не совсем пойму как работа организована.

(41)
Пришлось перенаправить туда же профиль пользователя (отдельно Temp и LocalAppData не вышло), тогда разница стала ощутимой.


Т.е. работа происходит локально. А с другой стороны:

(43)
По-сути то же самое, и по сети дает
46. VGHOST 97 11.11.18 17:39 Сейчас в теме
(44) Сообщение 43 про аппаратный RAID, а 41 про локальный RAM-drive для локальной одноразовой обработки баз. Это не части одного решения.
RAID с гигибайтным защищенным кешем дает производительность сравнимую с RAM-диском, и обладает достаточной надежностью для стационарной раздачи в сеть.
47. СергейК 51 12.11.18 19:00 Сейчас в теме
(41) Вот это интересно, почему профиль пользователя так помогает производительности?
Я когда тестировал такой режим файловым монитором, вроде не находил каких то значимых обменов с диском кроме как с базой и TEMP папкой.
Не исследовали почему перенос профиля так сильно влияет?
p.s.
То же не впечатлил RAM диск, а тут вон оно что оказывается. Надо протестировать, спасибо.
48. Vlx 286 12.11.18 19:07 Сейчас в теме
(47)
почему профиль пользователя так помогает производительности?

Там находится кэш. Больше причин не вижу.
49. VGHOST 97 12.11.18 23:25 Сейчас в теме
(47) Основной трафик идет в LocalAppData, так и есть. Просто, как я написал выше, переназначение переменных LocalAppData и Temp контекста приложения не решили проблему полностью - платформа продолжала насиловать профиль на жестком диске. Разбираться не стал, а переназначил все что есть - помогло.

ЗЫ: Всегда пажалиста.
Надо будет выложить полный инструментарий, когда приберу там бардак, может пригодится кому...
34. Vlx 286 02.11.18 14:11 Сейчас в теме
По управляемым формам:
Как минимум при переходе с 8.2.14 на 8.3.8-8К ничего не меняется. Как максимум может дать прирост производительности. У меня на веб-клиенте перепроведение документов прошло на 20% быстрее. При этом процессор был более нагружен, чем при 8.2.14.
Дальнейшее увеличение размера страницы может дать отрицательный результат.
36. KazanKokos 7 04.11.18 08:30 Сейчас в теме
я как-то на фрилансе столкнулся с комедийной ситуацией. Офис фирмы был размещен в 4хкомнатной квартире. евроремонт все дела. одна комната была полностью под серверную. серверная стойка. 3-4 мощных сервака, 1000 мегабит в пределах офиса. и одна бухбаза на два компьютера по шаре.она постоянно рушилась. приходилось ее chdbfl-ить постоянно. месяца три на рдп уговаривал перейти. уговорил. только после перестали вызывать на ремонт базы.
45. Vlx 286 11.11.18 12:29 Сейчас в теме
Или на каждом компе ram-диск?
Оставьте свое сообщение