Устаревший код, над которым я работаю неоднократно, вызывает sctp_sendmsg () .В течение первых нескольких часов выполнения кода вызов всегда успешен (возвращает целое число больше 0).После этого, однако, повторные вызовы этого API постоянно возвращают -1 с errno, равным 11 («Ресурс временно недоступен»).
Во время постоянного сбоя процесс, выполняющий код, показывает низкий уровень загрузки ЦП и памятииспользуется в top :
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6059 root 20 0 143344 131352 9912 S 10.8 0.1 13:00.85 some_program
Однако, когда я проверяю статистику ассоциаций SCTP, я замечаю, что размер очереди передачи огромен:
cat /proc/`ps -ef | egrep some_program | head -n 1 | awk '{print $2}'`/net/sctp/assocs
Является ли проблема с огромным размером очереди передачи?Если это так, что может быть причиной?Как я могу дополнительно диагностировать проблему, чтобы найти основную причину и решение?