У меня есть сервер Windows 2003 (не смейтесь) с подключением 10GbE, обрабатывающий данные, поступающие к нему по сети и отправляющие их обратно.
Вот график общей производительности системы и конкретного исследуемого приложения:
Второй график увеличен до кратковременного всплеска и имеет отношение к данным в моем ответе.
Как мне интерпретировать высокий процент времени ядра на этих процессах? В целом, они выполняют много сетевых операций ввода-вывода (66K PPS на входе, 96K PPS на выходе), и мне интересно, правильная ли интерпретация заключается в том, что время, проведенное в привилегированном пространстве, копирует данные туда и обратно между буферами и приложением. объем памяти. Это имело бы смысл?
Я обнаружил БОЛЬШОЕ количество фрагментированных пакетов, обрабатываемых / генерируемых этим приложением, и подозреваю, что это является причиной проблемы. Ожидаем результатов дальнейшего тестирования. Новости в 11!
Цифры представляют собой образцы, взятые через регулярные интервалы, соответствующие приведенному выше графику. Между вторым и третьим образцами трафик, идущий к приложению, увеличился на 40 тысяч пакетов в секунду.
Network Interface(BASP Virtual Adapter)\Packets Received/sec
64072 60684 114605 111119
Network Interface(MS TCP Loopback interface)\Packets Received/sec
9965 10434 20499 17024
IPv4\Datagrams Received/sec
74042 71114 135104 128143
IPv4\Datagrams Received Delivered/sec
65927 64088 107000 102459
IPv4\Fragments Received/sec
10503 9246 32927 29528