У меня есть Dell PowerEdge R710 с двумя процессорами Intel Xeon E5503. Он имеет 96 ГБ (12 x 8 ГБ) модулей DIMM ECC. В его BIOS память настроена на «Advanced ECC».
У меня вопрос: если мои модули DIMM уже поддерживают ECC, имеет ли смысл включать этот режим «Advanced ECC» в BIOS или мне следует переключиться на «Оптимизированный»?
Dell описывает эти режимы как таковые:
Расширенный режим ECC В этом режиме используются два MCH и «связываются» их вместе для имитации 128-битной шины данных DIMM. Это в основном используется для достижения коррекции данных одного устройства (SDDC) для модулей DIMM на основе технологии x8 DRAM. SDDC поддерживается модулями DIMM на базе x4 во всех режимах памяти. Один MCH полностью не используется, и любая память, установленная в этом канале, будет генерировать предупреждающее сообщение во время POST.
Оптимизированный режим памяти В этом режиме MCH работают независимо друг от друга; например, один может бездействовать, один может выполнять операцию записи, а другой может готовиться к операции чтения. Память может быть установлена на один, два или три канала. Чтобы в полной мере реализовать преимущества режима оптимизации памяти, необходимо заполнить все три канала на процессор. Это означает, что некоторые «нетипичные» конфигурации памяти, такие как 3 ГБ, 6 ГБ или 12 ГБ, будут обеспечивать наилучшую производительность. Это рекомендуемый режим, если не требуются специальные функции RAS.
Руководство пользователя оборудования систем Dell PowerEdge R710 (PDF)
Это имеет значение, это будет иметь смысл только в том случае, если вам потребуются функции RAS (надежность, доступность и обслуживание) на устройствах x4 или x8 и вы поймете, какие компромиссы для ваших нужд. Более подробную информацию можно найти в официальном документе Dell. Серверы Dell ™ PowerEdge ™ 2009 - Память.
Кроме того, конфигурация и компоновка с подробностями, относящимися к R710, доступны в Техническом руководстве для PowerEdge R710 - (Google это, потому что у меня нет репутации для ссылки).
Важно отметить разницу между ECC на кристалле и «Advanced ECC», предоставляемой BIOS Dell для коррекции данных одного устройства (SDDC). У вас будет влияние на производительность обоих. ECC восстанавливается после ошибок во время записи в чип. Однако SDDC идет еще дальше и организует биты таким образом, чтобы весь чип мог выйти из строя и при этом его можно было восстановить. См. Пример и подробности Набор микросхем SDDC E7500
Проблема заключается в том, являются ли ваша производительность и / или надежность наибольшей проблемой при использовании вами машины. Если отказ микросхемы приведет к потере критически важных данных или использованию на этой машине, и это не является избыточным в реализации, Advanced ECC может быть отличным решением. Однако это может сказаться на производительности, что может быть для вас более важным.
Я реализовал оба варианта на серверах Dell PowerEdge для отдельных реализаций Microsoft SQL Server. Если я могу быть более полезен, просто прокомментируйте, дайте мне знать.
Надеюсь, это поможет.
РЕДАКТИРОВАТЬ: пробел в покрытии / реализации ECC
Да, существует пробел в охвате, даже если вы реализуете оба варианта. Поскольку вы специально используете кластер серверов высокой доступности, IMHO вам следует использовать Advanced ECC. Влияние на производительность минимально по сравнению с преимуществами кластерных устройств. Согласно Crucial, у вас есть только 2% снижение производительности памяти ECC В основном.
Разрыв будет более специфичным для типов возникающих ошибок и того, как каждая из них обрабатывает ошибки. В вашей конкретной ситуации это не должно приводить к потере данных. Поскольку это корпоративная СУБД, управление ошибками, проблемами параллелизма и т. Д. Осуществляется на программном уровне, чтобы предотвратить потерю данных. Подробная история изменений хранится в правильно настроенной СУБД, и программное обеспечение, которое ее использует, обычно может настраиваться на «откат» транзакции в случае возникновения серьезной ошибки.
Реализации ECC
ECC попытается исправить любые битовые ошибки при чтении / записи в память. Однако, если ошибка более значительная, то даже ECC не сможет восстановить, что приведет к потенциал потеря данных. Также есть более подробное обсуждение ECC на ServerFault / Что такое оперативная память ECC и почему она лучше?
В соответствии с Википедия о ECC_Memory
Память ECC поддерживает систему памяти, фактически свободную от однобитовых ошибок ...
SDDC
Если вы обратитесь к документу чипсета E7500 выше (примечание 55xx / 56xx от Intel требуют логин / партнерство, но идея аналогична, поэтому я изначально не ссылался), в котором описывается SDDC и как это стало возможным. По сути, он использует метод организации слов, записанных в память, который гарантирует, что все они будут записаны таким образом, чтобы каждое слово будет содержать только одну битовую ошибку т.е. слово должно восстанавливаться из единственной битовой ошибки (как указано выше). Теперь это на слово, поэтому он потенциально может восстановить до 4-битных ошибок на устройствах x4 (1 на слово) и до 8-битных ошибок на устройствах x8 (по-прежнему 1 на слово) путем исправления ошибок каждого слова.
Дополнительные ошибки, дополнительные битовые ошибки, общий сбой памяти, сбой канала, сбой шины и т. Д. Все еще могут вызывать ужасные проблемы, но именно поэтому у вас есть кластер и СУБД предприятия.
Короче говоря, если у вас все включено и есть слишком много битовых ошибок для исправления алгоритмов исправления ошибок, у вас все равно будет ошибка, то есть пробел в покрытии ошибок. Однако это может быть очень редко.