Devo usar o BIOS “Advanced ECC” no Dell PowerEdge R710 BIOS com DIMMs ECC?

14

Eu tenho um Dell PowerEdge R710 com duas CPUs Intel Xeon E5503. Possui 96GB (12x8GB) de DIMMs ECC. No BIOS, a memória está configurada para "ECC avançado".

Minha pergunta é se meus DIMMs já são ECC, faz sentido ativar esse modo "Advanced ECC" no BIOS ou devo mudar para "Otimizado"?

A Dell descreve esses modos da seguinte forma:

Modo ECC avançado Este modo usa dois MCHs e os une para emular um DIMM de barramento de dados de 128 bits. Isso é usado principalmente para obter uma correção de dados de dispositivo único (SDDC) para DIMMs com base na tecnologia x8 DRAM. O SDDC é suportado com DIMMs baseados em x4 em todos os modos de memória. Um MCH é completamente não utilizado e qualquer memória instalada neste canal gera uma mensagem de aviso durante o POST.

Modo de memória otimizada Nesse modo, os MCHs funcionam independentemente um do outro; por exemplo, um pode estar ocioso, um pode estar executando uma operação de gravação e o outro pode estar se preparando para uma operação de leitura. A memória pode ser instalada em um, dois ou três canais. Para obter plenamente o benefício de desempenho do modo de memória otimizada, todos os três canais por CPU devem ser preenchidos. Isso implica que algumas configurações de memória 'atípicas', como 3 GB, 6 GB ou 12 GB, renderão o melhor desempenho. Esse é o modo recomendado, a menos que sejam necessários recursos específicos do RAS.

Manual do proprietário do hardware dos sistemas Dell PowerEdge R710 (PDF)

Mxx
fonte

Respostas:

23

Faz diferença, só fará sentido se você precisar dos recursos RAS (Confiabilidade, Disponibilidade e Serviço) em dispositivos x4 ou x8 e entender as vantagens e desvantagens de suas necessidades. Mais detalhes podem ser explicados no white paper da Dell Servidores Dell ™ PowerEdge ™ 2009 - Memória .

Além disso, a configuração e o layout com detalhes específicos do R710 estão disponíveis no Guia técnico do PowerEdge R710 - (pesquise no Google porque não tenho reputação de link).

A questão importante a ser observada é a diferença entre o ECC no chip e o "ECC avançado" fornecido pelo BIOS da Dell para correção de dados de dispositivo único (SDDC). Você terá um impacto no desempenho em ambos. O ECC se recuperará dos erros durante as gravações no chip. No entanto, o SDDC vai um passo além e organizará os bits para que um chip inteiro possa falhar e ainda ser recuperável. Veja um exemplo e detalhes Chipset SDDC E7500

O problema é se o seu desempenho e / ou confiabilidade são da maior preocupação no uso específico da máquina. Se uma falha no chip causar perda de dados críticos ou uso nesta máquina e não for redundante na implementação, o Advanced ECC pode ser um ótimo caminho a percorrer. No entanto, você o faz com um impacto no desempenho que pode ser mais importante para você.

Eu implementei tanto no campo nos servidores Dell PowerEdge para implementações únicas do Microsoft SQL Server. Se eu puder ter mais ajuda, basta comentar para que eu saiba.

Espero que ajude.

EDIT: Lacuna de cobertura / implementações ECC

Sim, existe uma lacuna de cobertura mesmo se você implementar os dois. Como você está usando especificamente um cluster de servidores de alta disponibilidade, IMHO, você deve usar o ECC avançado. Seu impacto no desempenho é mínimo comparado aos benefícios para os dispositivos em cluster. De acordo com Crucial, você tem apenas uma redução de 2% no desempenho da memória ECC em geral.

A diferença seria mais específica para os tipos de erros que ocorrem e como cada um lida com os erros. Na sua situação específica, não deve se traduzir em perda de dados. Como esse é um DBMS corporativo, os erros, problemas de concorrência etc. são gerenciados no nível do software para evitar a perda de dados. É mantido um histórico detalhado das alterações em um DBMS configurado corretamente e o software que o utiliza normalmente pode ser configurado para que a transação seja "revertida", caso ocorra um erro grave.

Implementações ECC

O ECC tentará corrigir erros de bit na leitura / gravação na memória. No entanto, se o erro for mais significativo, nem mesmo o ECC poderá se recuperar, causando potencial perda de dados. Há mais discussões sobre ECC também em ServerFault / O que é ram ​​ECC e por que é melhor?

De acordo com a Wikipedia no ECC_Memory

A memória ECC mantém um sistema de memória efetivamente livre de erros de um bit ...

SDDC

Se você se referir ao documento do chipset E7500 acima (observe que os 55xx / 56xx da Intel exigem login / parceria, mas a idéia é semelhante e é por isso que eu não vinculei originalmente), que descreve o SDDC e como isso é possível. Basicamente, ele usa uma técnica para organizar as palavras gravadas na memória, garantindo que todas sejam escritas de tal maneira que cada palavra contenha apenas um erro de bit único, ou seja, a palavra deve ser recuperada do erro de bit único (como acima). Agora, isso é por palavra, para potencialmente se recuperar de erros de até 4 bits em dispositivos x4 (1 por palavra) e de até 8 bits em dispositivos x8 (ainda 1 por palavra), corrigindo erros de cada palavra.

Erros adicionais, mais erros de bits, falha total de memória, falha de canal, falha de barramento, etc. ainda podem causar problemas horríveis, mas é por isso que você tem um cluster e um DBMS corporativo.

Em resumo, se você tiver tudo ativado e houver muitos erros de bits para os algoritmos de correção de erros corrigirem, ainda haverá um erro, ou seja, lacuna na cobertura de erros. Estes podem ser excepcionalmente raros.

Matthew Reid
fonte
Para ser mais específico, este é um conjunto de 3 R710s idênticos executando o cluster do Oracle DB. Portanto, a disponibilidade de uma única máquina não é da maior importância. No entanto, a corrupção de dados é preocupante. Eu vi o guia técnico do R710. Não possuía muita informação adicional sobre memória. Assim, com o ECC on-dimm, ele detecta / corrige erros nos chips do dimm? No entanto, o ECC avançado detectará / corrigirá erros para todo o dimm? Se for esse o caso, existe uma lacuna de cobertura entre esses dois métodos?
Mxx 14/05
@Mxx Atualizei minha resposta para tentar explicar. IMHO desde que você está executando um cluster do Oracle DB, duvido que você tenha perda de dados. No raro evento de uma falha, o DBMS é criado para evitar a perda de dados e outros problemas. No seu caso do cluster, eu ativaria o ECC avançado, pois o desempenho deve ser insignificante, mas você pode testá-lo sob carga, se tiver alguma dúvida.
Matthew Reid
Muito obrigado pela resposta. Sinto muito, mas ainda não estou claro sobre uma coisa. O que o "ECC avançado" poderia me proteger daquele ECC on-dimm não poderia? Se estivermos usando dbms, não faria sentido mudar o BIOS para o "modo otimizado" para obter um benefício de desempenho da configuração de memória de canal triplo e será protegido pelo ECC on-dimm e pela própria validação da Oracle?
Mxx
@Mxx Suponho que não seja exatamente garantido de qualquer maneira. No entanto, com a opção ECC avançado Ativado, você poderá se recuperar de mais erros sem intervenção (menor probabilidade geral de um erro de bit) e o desempenho atingido deve ser baixo. É certamente mais baixo tentar corrigir no DBMS. Embora o DBMS possa salvar seus dados, a experiência do usuário final ainda pode ser apresentada em uma falha de software e / ou reversão de uma operação potencialmente grande. Suponho que, com o monitoramento, se o chip está falhando e a frequência de erros aumenta, o Advanced ECC pode lhe dar tempo para substituir o DIMM corretamente.
Matthew Reid