Автор Тема: Параллельность файловых операций на SMB ресурсе  (Прочитано 1193 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Онлайн airdwarf

  • Постоялец
  • ***
  • Сообщений: 371
  • Рейтинг: 7
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Чесслово, нашел, гражданин начальник!
Возможно, кто-то подскажет, куда копать...

Есть Windows Server 2012R2, на котором крутится прикладное приложение.
Это приложение имеет привычку многопроцессно и многопоточно работать с файлами, размещенными на общем ресурсе.
И когда количество потоков, работающих с такими файлами, возрастает до примерно 10 на одной шаре, простейшие файловые операции начинают затягиваться.

В стеках висящих потоков примерно следующее:
ntoskrnl.exe!KeSynchronizeExecution+0x2246
ntoskrnl.exe!KeWaitForMultipleObjects+0x135e
ntoskrnl.exe!KeWaitForMultipleObjects+0xdd9
ntoskrnl.exe!KeReleaseQueuedSpinLock+0x2572
ntoskrnl.exe!ExAcquireResourceExclusiveLite+0x1da
rdbss.sys!RxIsPrefixTableEmpty+0x15b
rdbss.sys!RxDeregisterFcbWithBufferingManager+0x271
rdbss.sys!RxQueryNetRootCachingMode+0x51a
rdbss.sys!RxFsdDispatch+0xed
mrxsmb.sys!SmbCeDereferenceTransportArray+0x103
mup.sys!DllInitialize+0x5ced
mup.sys!DllInitialize+0x5eca
mup.sys!DllInitialize+0x6027
fltmgr.sys!FltIsCallbackDataDirty+0x2ee
fltmgr.sys+0x10c2
ntoskrnl.exe!ObOpenObjectByName+0x636c
ntoskrnl.exe!ProbeForWrite+0x15c
ntoskrnl.exe!ObfDereferenceObjectWithTag+0x8f
ntoskrnl.exe!NtClose+0x205
ntoskrnl.exe!setjmpex+0x34a3
ntdll.dll!NtClose+0xa
KERNELBASE.dll!FindFirstFileExW+0xd4
KERNELBASE.dll!FindFirstFileW+0x1c
... прикладной код ...

На другой стороне Samba 4
Кэширование на клиенте и сервере отключал. Оплоки на клиенте отключал и протокол до NT1 на сервере понижал. Без изменений.

В момент наблюдения проблемы обращения к тому же ресурсу сервера с другого хоста и к другим samba-серверам с проблемного клиента проходят без проблем.
Кто чувствует несвободу воли, тот душевнобольной; кто отрицает ее, тот глуп. Один я умный в белом пальто стою красивый.
Вы тут серьёзно отстали от жизни. Админство, саппорт - это уже вчерашний день. Сейчас рулят микросервисная архитектура и continuous integration. Ну еще SAAS, конечно.