многоядерное использование, склонявшее к базовым 2?

У меня есть 4 ядра в моей системе. Core 2 часто показывает 100%-е использование в htop. Между тем Базовые 1,3,4 шоу что-то приблизительно 5% большую часть времени.

Действительно ли это нормально? Существует ли способ лучше распределить загрузку Core 2 в другие ядра, и это является даже желаемым?

2
задан 27 October 2014 в 19:06

1 ответ

Да, это может быть нормально. Зависит от того, сколько управления ОС делает. Эти два крупных инструмента для влияния на это

  • taskset, который может направить, какой ЦП процесс может использовать
  • установка привязка IRQ из устройств PCI

, привязку IRQ легко зафиксировать. Сделайте некоторый IO, наблюдайте/proc/interrupts и если Вы видите нечто MSI, все на том же ЦП тогда распределяют их. Вы обычно хотите обслужить IRQs на "реальных ядрах", так как они являются самыми быстрыми. Как только Вам выяснили это, запишите сценарий для передачи, это к системе запускается, и Вы сделаны.

Процессы являются болью, потому что они могут мигрировать между центральными процессорами. Чтобы "сделать это правильный", действительно необходимо установить cgroups для рассматриваемых процессов. Или... Вы берете ленивый выход и делаете сценарий обертки для программы X, которая называет taskset... _X.

Мера Ваш перед после того, как производительность со сравнительным тестом как fio или вся Ваша тонкая настройка не ни для чего. Если Вы не можете измерить свои изменения, Вы не знаете то, что они стоят.

, Например, у меня есть 24 ЦП, 2 numa системы узла здесь, которые имеют устройство хранения, которое создаст прерывание MSI для каждого ЦП... и затем свяжет их всех с ЦП 0:-p. Распространение привязки IRQ через первые 12 ядер увеличилось в четыре раза пропускная способность IO, зарегистрированная fio. Но эта система на самом деле имеет много пропускной способности, типичный рабочий стол не делает.

Удача. Работа производительности является забавой... и трудно:)

2
ответ дан 6 October 2019 в 22:08

Другие вопросы по тегам:

Похожие вопросы: