Я пытаюсь измерить эффективность сетевой системы и ищу инструмент, который либо позволяет ограничить максимальную пропускную способность для каждого теста, либо, в идеале, ограничить использование процессора. В конце мне нужен ответ типа «для 10% пропускной способности ЦП это 10 Гбит / с».
Естественным выбором для тестирования только пропускной способности был бы инструмент iperf, но он, кажется, всегда использует 100% ЦП, что делает его бесполезным для этого.
Полагаю, у вас несколько процессоров. Затем посмотрите на cpusets и cpushares. С помощью cpuset вы можете привязать определенный процесс к конкретному процессору. Затем с помощью cpushares вы можете ограничить использование процессора.
Вы можете рассмотреть инструмент Apache JMeter , который может регулировать свои соединения до определенного значения пропускной способности, которое вы можете установить, управляя следующими свойствами:
httpclient.socket.http.cps = 0
httpclient.socket.https.cps = 0
где cps
обозначает символов в секунду
Ссылки:
Для ограничения использования ЦП для каждого процесса вы можете использовать комбинацию команд taskset и cpulimit , для получения дополнительных сведений ознакомьтесь со статьей Ограничение использования ЦП процессами с помощью nice, cpulimit и cgroups .