From: Sergey Matveev Date: Mon, 28 Nov 2022 13:57:47 +0000 (+0300) Subject: Проблема с тредами у btrtrc X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=80defeaa4b493f6d954d0895fdf8fc89409ac875;p=stargrave-blog.git Проблема с тредами у btrtrc github.com/anacrolix/torrent порождает такую кучу тредов (2643c085a0970d8d8bc3471cb5c294ba8b09fee8), что ОС это совершенно не нравится. На самом деле, это просто настолько активная конкурентная работа с файлами, что сам Go порождает эти треды для блокирующих операций. Решил её линейно выполняя I/O операции для каждого файла. Просто захват mutex-а каждый раз. Больше кол-во тредов не растёт. Плюс добавил сохранение этих файловых дескрипторов открытых на 10сек -- существенно уменьшает кол-во системных вызовов open/close. ---