Назад | Перейти на главную страницу

Есть ли где-нибудь такая ошибка, зафиксированная CentOS, которая может окончательно показать, что «пора платить за ECC»?

У меня есть выделенный сервер RAM объемом 32 ГБ без ECC с CentOS.

Один раз в день он случайно вылетает без каких-либо ошибок в /var/log/kern.log, / var / log / messages, mysql, apache.

CPU / RAM / IO не особо высокие и не низкие.

Есть ли где-нибудь такая ошибка, зафиксированная CentOS, которая может окончательно показать, что «пора платить за ECC»?

Что бы вы хотели записать? CentOS не может знать, что содержимое памяти без ECC повреждено, потому что это неизвестно; он может только знать, что содержимое памяти не имеет смысла, и впадать в панику из-за обнаруженной им непоследовательности. Это несоответствие могло возникнуть из-за повреждения ОЗУ, но также могло возникнуть из-за ошибки ядра или какой-либо другой причины.

Единственный способ точно узнать, что память повреждена, - это использовать память, которая явно включает поддержку проверки на такое повреждение; а именно, память ECC.

редактировать: это совершенно другой вопрос, чем тот, который вы задали. Но моя стратегия была бы такой: беги memtest86+ на оборудовании, чтобы увидеть, есть ли какие-либо легко обнаруживаемые повторяющиеся ошибки, и включить удаленный syslogging на сервере (например, когда ядро ​​паникует, оно часто перестает писать в FS, но все еще может выдавить сообщение журнала из NIC), чтобы увидеть, что будет зарегистрировано при следующей панике.

Память ECC имеет два преимущества:

  • Он зарегистрирован, что означает, что перед другими компонентами чипа стоит регистр. Это должно снять электрическую нагрузку с контроллера памяти. Это верно для всех модулей RDIMM, а не только для ОЗУ с ECC.
  • Он может обнаруживать ошибки и, если не исправлять их, по крайней мере, сообщать, что они произошли.

Учитывая это, на самом деле очень сложно определить, извлекли бы вы выгоду из плунжера ECC без плунжера ECC. По определению, вы не можете регистрировать ошибку при обнаружении ошибки, и, конечно же, у вас нет данных о том, была ли ошибка, которая могла или не могла произойти, результатом поломки контроллера памяти.

Тем не менее, если вы запустите memtest, вы определите пару вещей. Если вы не обнаружите ошибок, либо вам нужна ОЗУ с ECC, либо проблема в чем-то другом (так что, если вы исключите абсолютно все аппаратные и программные средства как причину, вы показали необходимость в ОЗУ с ECC). Если вы обнаружите постоянные ошибки, скорее всего, оперативная память неисправна и ее просто нужно заменить. Если вы обнаружите непоследовательные ошибки, возможно, неисправен ЦП или вам может потребоваться ОЗУ с ECC. Если вы обнаружите, что memtest86 дает сбой, либо DIMM низшего порядка неисправен, либо неисправен ЦП, либо вам нужна ОЗУ с ECC.

Тем не менее, это очень сложно показать определенно. ECC RAM наиболее полезна в приложениях, где невидимые ошибки в расчетах могут вызвать серьезные проблемы, или в приложениях, где огромное количество RAM в сочетании с другими условиями делает ошибки статистически вероятными. Однако сами по себе эти критерии нечеткие и субъективные, поэтому на самом деле объективного критерия для этого нет.

Если где-нибудь, он, вероятно, войдет в

 /var/log/mcelog 

(это то место, где происходят критические события ЦП на разведениях RHEL)