- Вопрос или проблема
- Почему комбинированный случай показывает даже худшую производительность, чем более слабая из двух планок?
- Что происходит?
- Ответ или решение
- Конфигурация системы и проблемы с совместимостью
- Почему такое снижение «Configured Speed»?
- Парадокс производительности: почему сценарий C показывает более быстрые результаты?
- Рассмотрение итогов
Вопрос или проблема
Я тестирую свою машину (4-ядерный процессор Intel i5-10210U) с использованием различных конфигураций RAM, доступных с оригинальной 8GB/2667MHz планкой и другой 16GB/3200MHz планкой, которую я извлек из другой машины (обе планки DDR4, 64 бита шириной).
Чтобы количественно оценить, в какой степени несоответствие планок RAM ухудшает производительность, я протестировал каждую из следующих ситуаций.
A) Слот 1: 8GB Слот 2: Пусто
B) Слот 1: 16GB Слот 2: Пусто
C) Слот 1: 8GB Слот 2: 16GB
Странно то, что сценарии A и B обе приводят к общей скорости 2667 МГц (что является минимумом из двух), но сценарий C показывает еще большее ухудшение даже ниже этого минимума, исходя из вывода inxi и dmidecode (показано для сценария C ниже).
$ sudo inxi -mxxx | grep -i "mt/s"
Устройство-1: КаналA-DIMM0 размер: 8 GiB скорость: спецификация: 2667 MT/s
фактическая: 2400 MT/s тип: DDR4 подробности: синхронный ширина шины: 64 бита
Устройство-2: КаналB-DIMM0 размер: 16 GiB скорость: спецификация: 3200 MT/s
фактическая: 2400 MT/s тип: DDR4 подробности: синхронный ширина шины: 64 бита
$ sudo dmidecode | grep -i "mt/s"
Скорость: 2667 MT/s
Настроенная скорость памяти: 2400 MT/s
Скорость: 3200 MT/s
Настроенная скорость памяти: 2400 MT/s
Опять же, в обоих сценариях A и B “фактические” и “Настроенные скорости” составили 2667, и я понимаю, почему это может быть. Но…
Почему комбинированный случай показывает даже худшую производительность, чем более слабая из двух планок?
Странно еще и то, что я протестировал производительность памяти с использованием sysbench, что дало более высокие скорости для сценария C, чем в A или B — что противоречит тому, что мы должны ожидать от системы в самом медленном конфиге.
В частности, следуя рекомендациям этого руководства, я настроил планки памяти для каждого сценария и выполнил следующую команду, используя соответствующие значения для общего размера памяти, как для операций записи, так и чтения.
$ sysbench memory --memory-block-size=512M --memory-total-size={размер памяти} --memory-oper={запись/чтение} run
Это дало следующие скорости передачи для каждого сценария:
сценарий | размер (ГБ) | чтение (MiB/с) | запись (MiB/с) |
---|---|---|---|
A | 8 | 14.5 | 7.5 |
B | 16 | 14.5 | 8.5 |
C | 8+16 | 15 | 13 |
Так что с этой точки зрения (что мне кажется наиболее практичным) сценарий C является самым производительным. Мне интересно…означает ли это:
- я могу игнорировать метрики, показанные dmidecode/inxi, и просто довериться бенчмарку?
- Или моя установка бенчмарка плохая?
- Или эта вся предпосылка принципиально неверна?
Что происходит?
Классно вау
Пожалуйста, обязательно ответьте на вопрос. Приведите детали и поделитесь своими исследованиями!
Ответ или решение
Смешение двух модулей оперативной памяти (ОП) с различными размерами и частотами может привести к неожиданным результатам, как вы отметили в своем тестировании. Я постараюсь объяснить, почему вы наблюдаете такое поведение, используя два основных аспекта: конфигурация системы и производительность.
Конфигурация системы и проблемы с совместимостью
При установке двух модулей ОП с разной частотой и размерами память работает на той скорости, которая соответствует самому медленному модулю, а иногда даже ниже. Это связано с тем, что контроллер памяти, как правило, подстраивает скорость работы всех установленных модулей под результаты самого медленного. В вашем случае, когда вы использовали модули 8 ГБ на 2667 МГц и 16 ГБ на 3200 МГц, система определила максимальную скорость на уровне 2400 МГц при смешении двух различных модулей.
Ваши результаты:
- Сценарий A: 8 ГБ на 2667 МГц – система настроена на его частоту.
- Сценарий B: 16 ГБ на 3200 МГц – система снова подстраивается под 2667 МГц, так как это наименьшая частота.
- Сценарий C: 8 ГБ + 16 ГБ – Система действительно должна была бы работать на 2667 МГц, но вы наблюдаете еще большее понижение производительности на 2400 МГц.
Почему такое снижение «Configured Speed»?
Обратите внимание, что «Configured Speed» это не всегда абсолютное значение; это значение, которое контроллер памяти устанавливает для управления работой всех модулей. При смешивании модулей с известной несовместимостью и разницей в размерах (и, возможно, также в таймингах), система может начать функционировать в режиме, который менее оптимален для производительности. На практике это может означать использование менее эффективных таймингов, таких как более медленная латентность.
Парадокс производительности: почему сценарий C показывает более быстрые результаты?
Ваши бенчмарки показывают более высокие показатели скорости в сценарии C. Это может быть объяснено несколькими факторами:
-
Увеличение объема памяти: С введением второго модуля ОП увеличивается общий объем доступной памяти. Это может приводить к улучшенной производительности, особенно в задачах, где требуется большое количество выделяемой памяти, как в современных приложениях или при работе с большими массивами данных.
-
Дуальная канальная архитектура: При установке двух модулей ОП можно воспользоваться преимуществами работы в режиме дуального канала (если это поддерживается материнской платой), что улучшает пропускную способность. Хотя конфигурация может работать на пониженной скорости, сама архитектура канала может создать преимущества для потоков данных, что увеличивает скорость чтения и записи.
-
Ограничения теста: Если ваш тест не очень требователен к производительности (например, если он не использует всю доступную память) или неправильно настроен, результаты могут отражать не самые точные значения. Предполагается, что методология бенчмаркинга корректна, но нужно быть осторожным с интерпретацией данных.
Рассмотрение итогов
-
Доверять метрикам с dmidecode/inxi или бенчмаркам?: Оба аспекта имеют значение. Метрики дают информацию о конфигурации и состоянии системы, тогда как бенчмарки показывают реальную производительность. Используйте эти значения в сочетании.
-
Настройка бенчмарк-процесса: Нельзя оптимистично оценивать результаты, основанные на несоответствиях в тестировании. Возможно, потребуется использовать более требовательные тесты, чтобы получить полноценные результаты.
-
Фундаментальные недорозумения: Ни одно из наблюдений в каждом из сценариев не должно противоречить правилам работы с ОП. Однако стоит помнить, что производительность – это комплексное понятие, зависящее от множества факторов.
Таким образом, разбираться в конфигурациях оперативной памяти – задача не из легких. Она требует понимания комбинации теории работы ОП и реальной производительности в практических приложениях. Рассмотрите возможность улучшения тестирования и обращайте внимание на совместимость используемых модулей, чтобы прийти к оптимальному результату.