Определить текущее количество незавершенных подключений в очереди TCP listen()

Есть ли способ узнать текущееколичество попыток соединения, ожидающих accept() на TCP-сокете в Linux? ?

Я полагаю, что мог бы подсчитать количество успешных вызовов accepts() до нажатия EWOULDBLOCK в каждом цикле обработки событий, но я использую высокоуровневую библиотеку (Python/Twisted), которая скрывает эти детали. Также он использует epoll() вместо старомодного цикла select()/poll().

Я пытаюсь получить общее представление о нагрузке на высокопроизводительный неблокирующий сетевой сервер и думаю, что это число будет хорошей характеристикой. Средняя нагрузка/статистика ЦП не очень помогают, потому что я выполняю много дисковых операций ввода-вывода в параллельных рабочих процессах. Большинство этих статистических данных в Linux считают время, затраченное на ожидание дискового ввода-вывода, как часть нагрузки (что не так для моей конкретной серверной архитектуры). Задержка между accept() и ответом также не является хорошей мерой, поскольку каждый запрос обычно обрабатывается очень быстро, как только сервер до него доберется. Я просто пытаюсь выяснить, насколько я близок к критической точке, когда сервер не может отправлять запросы быстрее, чем они приходят.

7
задан Dan Maas 20 June 2012 в 19:00
поделиться