На наших серверах часто возникают проблемы с DIMM со следующими ошибками в системном журнале:
7 мая 09:15:31 ядро nolcgi303: EDAC k8 MC0: общая ошибка шины: участвующий процессор (ответ локального узла), тип транзакции памяти с тайм-аутом (без таймаута) (общее чтение), mem или I / O (доступ к памяти) , уровень кэша (общий) 7 мая 09:15:31 nolcgi303 ядро: MC0: страница CE 0xa0, смещение 0x40, зерно 8, синдром 0xb50d, строка 2, канал 0, метка "": k8_edac 7 мая 09:15:31 ядро nolcgi303: MC0: CE - информация отсутствует: k8_edac Ошибка переполнения установлена 7 мая 09:15:31 nolcgi303 ядро: EDAC k8 MC0: расширенный код ошибки: ошибка ECC chipkill x4
Мы можем использовать компакт-диск HP SmartStart, чтобы определить, в каком модуле DIMM произошла ошибка, но для этого необходимо вывести сервер из эксплуатации. Есть ли хитрый способ выяснить, какой крах DIMM, когда сервер работает? Все наши серверы являются оборудованием HP под управлением RHEL 5.
Ответы:
В дополнение к использованию кодов EDAC, вы можете использовать CLI только утилиты HP, чтобы определить это, когда устройство находится в сети. Кли-версии гораздо более легкие, чем веб-версии, и не требуют, чтобы вы открывали порты или постоянно работал демон.
hpasmcli предоставит вам номер картриджа и модуля неисправных модулей. Немного быстрее, чем анализировать EDAC.
Пример:
Статус изменится для неисправных модулей.
источник
MC0, строка 2 и канал 0 являются значимыми. Попробуйте заменить DIMMA1 на CPU0.
В качестве примера мне пришлось идентифицировать неисправный модуль DIMM на сервере Linux с 16 полностью заполненными слотами DIMM и двумя процессорами. Это ошибки, которые я видел на консоли:
Плохой DIMM на моем сервере был DIMMA0 на CPU1.
EDAC расшифровывается как «Обнаружение и исправление ошибок» и задокументировано по адресу http://www.kernel.org/doc/Documentation/edac.txt и /usr/share/doc/kernel-doc-2.6*/Documentation/drivers/edac/edac. .txt в моей системе (RHEL5). CE означает «исправимые ошибки», и, как указано в документации, «CE предоставляет ранние признаки того, что DIMM начинает выходить из строя».
Возвращаясь к описанным выше ошибкам EDAC, которые я видел на консоли моего сервера, MC1 (контроллер памяти 1) означает CPU1, строка 1 упоминается как csrow1 (Chip-Select Row 1) в документации Linux EDAC, а канал 0 означает канал памяти 0 Я проверил диаграмму по адресу http://www.kernel.org/doc/Documentation/edac.txt, чтобы убедиться, что csrow1 и канал 0 соответствуют DIMM_A0 (DIMMA0 в моей системе):
(В качестве другого примера, если бы я видел ошибки на MC0, csrow4 и канале 1, я бы заменил DIMMB2 на CPU0.)
Конечно, на моем сервере фактически есть два слота DIMM с именем DIMMA0 (по одному для каждого процессора), но опять-таки ошибка MC1 соответствует CPU1, который указан в «Bank Locator» в выводе dmidecode:
(На моей рабочей станции dmidecode фактически показывает номер детали и серийный номер для моих модулей DIMM, что очень полезно.)
Помимо просмотра ошибок на консоли и в журналах, вы также можете увидеть ошибки для каждого MC / CPU, строки / csrow и канала, изучив / sys / devices / system / edac. В моем случае ошибки были только на MC1, csrow1, канале 0:
Я надеюсь, что этот пример будет полезен для всех, кто пытается идентифицировать плохой DIMM на основе ошибок EDAC. Для получения дополнительной информации я настоятельно рекомендую прочитать всю документацию Linux EDAC по адресу http://www.kernel.org/doc/Documentation/edac.txt.
источник
MC0: UE row 0, channel-a= 2 channel-b= 3
.