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