]> Sergey Matveev's repositories - stargrave-blog.git/commit
Проблема с тредами у btrtrc
authorSergey Matveev <stargrave@stargrave.org>
Mon, 28 Nov 2022 13:57:47 +0000 (16:57 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Mon, 28 Nov 2022 14:45:47 +0000 (17:45 +0300)
commit80defeaa4b493f6d954d0895fdf8fc89409ac875
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parenta52f050c98a04c2bbc29eba6b18c6dc856c7774d
Проблема с тредами у btrtrc

github.com/anacrolix/torrent порождает такую кучу тредов
(2643c085a0970d8d8bc3471cb5c294ba8b09fee8), что ОС это совершенно не
нравится. На самом деле, это просто настолько активная конкурентная
работа с файлами, что сам Go порождает эти треды для блокирующих операций.

Решил её линейно выполняя I/O операции для каждого файла. Просто захват
mutex-а каждый раз. Больше кол-во тредов не растёт. Плюс добавил
сохранение этих файловых дескрипторов открытых на 10сек -- существенно
уменьшает кол-во системных вызовов open/close.