Вопрос или проблема
Я использую некоторую (не слишком новую) дистрибуцию Linux. Я хочу определить, какое пропускное способность памяти у моей системы – не эффективная пропускная способность, которую я могу получить при помощи бенчмаркинга/тестирования, а номинальная пропускная способность, учитывая мою материнскую плату, сокеты ЦП, каналы памяти и модули ОЗУ.
Я должен упомянуть, что когда я пытаюсь разобраться в этом в своей голове, я всегда путаю расчеты: гигабайты и гигабиты, транзакции в секунду и байты в секунду, количество каналов и количество модулей и т.д.
Примечание: Если возможно, предположим, что у меня не установлены утилиты, такие как lshw или inxi.
То, что вы технически спрашиваете, не обязательно легко объяснить здесь как полный ответ, чтобы сказать вам, как делать расчеты для получения номинального показателя производительности на основе аппаратных возможностей. Вам нужно будет получить номер модели аппаратного обеспечения (материнской платы) и посмотреть характеристики у производителя, а затем, если они действительно публикуют нужные вам числа, сделать несколько бумажных расчетов самостоятельно.
Если у вас нет физического доступа к машине, первым шагом было бы запустить dmidecode
и использовать информацию, представленную в результате, вместе с интернетом для сбора информации.
Вывод dmidecode
и его возможности могут варьироваться между дистрибуциями Linux и аппаратным обеспечением, но на RHEL-7.9 и сервере Dell он показывает мне версию BIOS, информацию о ЦП, напряжение и тактовые частоты, а также каждый слот DIMM и заполненность слота, а также модель и серийный номер ОЗУ и напряжение, например:
Handle 0x1129, DMI type 17, 84 bytes
Memory Device
Array Handle: 0x1000
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 32 GB
Form Factor: DIMM
Set: 7
Locator: D6
Bank Locator: Not Specified
Type: DDR4
Type Detail: Synchronous Registered (Buffered)
Speed: 2933 MT/s
Manufacturer: 00AD063200AD
Serial Number: 123456
Asset Tag: 123456
Part Number: HMA84GR7JJR4N-WM
Rank: 2
Configured Memory Speed: 2933 MT/s
Minimum Voltage: 1.2 V
Maximum Voltage: 1.2 V
Configured Voltage: 1.2 V
Memory Technology: DRAM
Memory Operating Mode Capability: Volatile memory
Firmware Version: Not Specified
Module Manufacturer ID: Unknown
Module Product ID: Unknown
Memory Subsystem Controller Manufacturer ID: Unknown
Memory Subsystem Controller Product ID: Unknown
Non-Volatile Size: None
Volatile Size: 32 GB
Cache Size: None
Logical Size: None
Из информации, такой как та, что на моем сервере есть 48 выходов DIMM, из которых только 24 заполнены ОЗУ, я думаю, что это то, что вам нужно использовать для определения номинальной пропускной способности или теоретического максимального числа пропускной способности. Что не совсем просто, и, как уже было сказано в комментариях, может не иметь большой реалистичности, учитывая все возможные узкие места и прочие нюансы… что и является причиной, по которой вы должны запускать ядро реального времени Linux, чтобы обеспечить согласованность и повторяемость, если вы интересуетесь такими вещами.
Ответ или решение
Чтобы определить номинальную пропускную способность памяти вашей системы, вам необходимо учитывать множество факторов, связанных с архитектурой вашей аппаратной конфигурации, включая материнскую плату, сокеты процессора, каналы памяти и модули DIMM. Давайте разберем шаги, которые помогут вам выполнить необходимые расчеты.
Шаг 1: Сбор информации о системе
Первый шаг — получить информацию о вашем оборудовании. Поскольку вы упомянули, что у вас нет установленных утилит, таких как lshw
или inxi
, мы можем использовать утилиту dmidecode
, чтобы собрать необходимую информацию. Запустите команду:
sudo dmidecode
Ищите в выводе следующие данные:
- Количество и тип DIMM: Определите количество установленных DIMM и их характеристики (например, тип DDR4, частота).
- Число каналов: Это может быть указано в спецификациях материнской платы, но, как правило, в современных системах используется два (dual channel) или четыре (quad channel) канала.
- Ширина шины: Обычно ширина шины для DDR составляет 64 бита (8 байт) на DIMM.
Шаг 2: Основные параметры расчета
-
Частота памяти (MT/s): Это количество миллиардов транзакций в секунду, которые могут выполняться вашим модулем памяти. Частота, возможно, будет указана в выводе
dmidecode
(напр., 2933 MT/s). -
Ширина шины (в байтах): Для DDR это обычно составляет 8 байт.
-
Количество каналов: Определите, сколько каналов вы используете (например, 2 для dual channel, 4 для quad channel).
Шаг 3: Расчет номинальной пропускной способности
Формула для расчета номинальной пропускной способности памяти будет следующей:
[
\text{Пропускная способность (GB/s)} = \frac{\text{Частота (MT/s)} \times \text{Ширина шины (байт)} \times \text{Количество каналов}}{1024}
]
Пример
Допустим, вы имеете следующую конфигурацию:
- Число DIMM: 2
- Частота: 2933 MT/s
- Ширина шины: 64 бита (или 8 байт)
- Число каналов: 2
Теперь подставим эти значения в формулу:
[
\text{Пропускная способность} = \frac{2933 \times 8 \times 2}{1024} \approx 45.5 \text{ GB/s}
]
Это значение (45.5 GB/s) — теоретическая максимальная (номинальная) пропускная способность памяти вашей системы.
Шаг 4: Проверка спецификаций
Важный шаг — проверка спецификаций вашего оборудования. Убедитесь, что информация о номинальной пропускной способности памяти соответствует техническим характеристикам, предоставленным производителем материнской платы и модулей памяти. Обычно производители указывают средства измерения пропускной способности в документации.
Заключение
Определение номинальной пропускной способности памяти вашей системы может показаться сложной задачей из-за различных аспектов конфигурации. Однако соблюдая предложенные шаги, вы сможете легко рассчитывать это значение, сосредоточившись на данных, полученных с помощью dmidecode
, и применяя простые математические операции. Помните, что номинальная пропускная способность является теоретическим максимумом, и фактические результаты могут варьироваться из-за множества факторов.