[스크랩] CPU 와 Memory Error...
Posted 2009. 1. 22. 20:29[출처] [펌]Solaris CPU와 메모리 이벤트 관련|작성자 대충쏜다
Solaris는 device간 통신을 할 경우 data의 정합성을 보장하기 위해
Data 전송 시 parity 값을 같이 전송하며 만약 data를 받을 때 정합성에
문제가 있을 경우 parity를 이용해 data를 보정한다.
일반적인 반도체 소자의 경우 일정량의 전자파 방출이 있으며 특정 환경에서(온도,습도 비적정 및 다른장비 에서 발생되는 전자파의 간섭이 있을경우)
전자파 방출량이 많아지게 되는 현상이 발생하면서 bit 오류를 발생 시키는 경우가 있다.
위에서 처럼 parity로 data를 보정 가능할 경우를 CE(correctable Error)라 하며
한 word에 double bit오류가 발생하여 data 보정이 불가능 할 경우를 UE(Uncorrectable Error)라
하며 UE의 경우 hardware error로 간주하여 해당 part를 교체 해야한다.
다는 vendor의 제품들과 같이 Sun system도 memory의 경우 ECC(Error check & correct) 기능이
있는 memory를 사용하며 CPU는 scrubber 기능을 두어 CE 및 UE error를 control한다.
CE error는 error를 fix한후 messages에 정상적으로 device가 동작했음을 알려주는
notice를 나타내며 UE의 경우 hardware error로 해당 device만 down시키거나 system reset이
가해 지게 된다.
그러나 CE error가 동일 part에 대해서 계속적으로 발생할 경우는 hardware적인 오류가 있을수
있으므로 해당 part를 교체해 주어야 한다.
3.Messages file 분석법
1) Memory CE Error관련(eprjdb2 분석)
May 22 11:09:50 eprjdb2 SUNW,UltraSPARC-II: [ID 362078 kern.info] [AFT0] Corrected Memory Error detected by CPU11, errID 0x001dd49c.d54e5a7b May 22 11:09:50 eprjdb2 SUNW,UltraSPARC-II: [ID 589262 kern.info] [AFT0] errID 0x001dd49c.d54e5 a7b Corrected Memory Error on Board 5 J3101 is Persistent |
CE error의 경우 위의 sample에서 처럼 다음과 같은 3가지 type의 message가 display된다.
"Intermittent" : data에 오류가 있어 다시 해당 word를 read할시 error가 없는 경우로
memory module 교체는 필요 없다.
"Persistent" : data에 오류가 있어 다시 해당 word를 read할시 또 오류가 있는 경우로
memory scrub operation으로 해당 bit를 fix를 수정한 경우로
한 module에서 계속적인 error가(24시간내 4번 이상) 없을 경우 memory 교체는
필요 없다.
"Sticky"- persistent error로 bit를 수정한 이후에도 error가 fix되지 않는 경우로
이 error가 발생하면 즉시 memory를 교체해 주어야 한다.
위 eprjdb2의 경우는 persistent로 만약 24시간내 동일 장애가 4회 이상 발생하지 않을시
memory교체는 필요 없으며 추후 동일 장애가 발생하는지 monitoring이 필요하다.
2) CPU CE error 관련(zoisite 분석)
May 24 04:01:38 zoisite SUNW,UltraSPARC-II: [ID 359263 kern.info] [AFT2] E$Data (0x20): 0x00000000.00000000 May 24 04:01:38 zoisite SUNW,UltraSPARC-II: [ID 359263 kern.info] [AFT2] E$Data (0x30): 0x00000000.00000000 May 24 04:01:38 zoisite SUNW,UltraSPARC-II: [ID 522370 kern.info] NOTICE: [AFT2] errID 0x00048964.88b46551 CBI event on CPU15 May 24 04:01:38 zoisite SUNW,UltraSPARC-II: [ID 147036 kern.info] [AFT2] errID 0x000489 64.88b46551 PA=0x00000000.007bd600 |
Memory의 경우 12시간에 최소 한번 이상의 scrubber가 동작하여 모든 memory를 scan하여
정합성 여부를 test하나 CPU는 memory bit점검과 비슷한 방식으로 정합성 test는 하지만
초당 최소 한번 이상의 scrubber가 동작 하면서 Ecache memory를 점검한다.
이경우 single bit오류가 발생했을시 다음과 같은 CBI/CBB/DBI/DBB형태로 message를
표출하며 만약 double bit오류가 발생할 시에는 UE error로 시스템이 reset되게 된다.
clean_bad_idle : CBI event à해당 data를 사용치 않으나 bad로 판명되어 re-read시 error
없는 경우
clean_bad_busy : CBB event à해당 data를 사용하지만 bad로 판명되어 re-read시 error 없는경우
dirty_bad_idle : DBI event à해당 data를 사용치 않으나 bad로 판명되어 bit 수정
dirty_bad_busy : DBB event à 해당 data를 사용하지만 bad로 판명되어 bit 수정
위의 zoisite 경우 cpu 15번의 CBI event로 ecach에 bit 오류가 있었으나 re-read시
error가 없는 경우로 이는 단순 scrubber가 정상적으로 동작 했음을 나타내는 message로
cpu 교체는 필요 없다.
3) CPU UE error 관련
WARNING: [AFT1] EDP event on CPU1 Instruction access at TL=0, errID 0x0000ad88.6cd9989f AFSR 0x00000000.80408000<PRIV,EDP> AFAR 0x00000000.0f0c8080 AFSR.PSYND 0x8000(Score 95) AFSR.ETS 0x00 FAULT_PC 0x780b481c UDBH 0x0000 UDBH.ESYND 0x00 UDBL 0x0000 UDBL.ESYND 0x00 |
CPU UE error는 다음과 같은 방식으로 display 되며
이 message가 display될 경우는 해당 cpu를 교체 해야 한다.
EDP(Ecache Data Parity Event)
CPU가 Ecache Data SRAM(cpu 상에 있는 cache memory 이름)
으로부터 Data를 Reading할시 parity error가 발생한경우 발생
WP(Write Back Data Parity Error)
CPU Ecache로부터 main memory로 data가 written back될시에
Cpu상의 UDB(Ultra Data Buffer) chip에서 parity error를 발생할시
CP(Copy Out Data Parity Error)
특정 cpu로부터 다른 cpu로 ecache data를 copy할시 parity error 발생
-CPU관련 error messages설명
Cpu error발생시 시스템 console이나 /var/adm/messages ,core file등에
다음과 같은 message가 출력되며 type별로 설명하면 다음과 같다.
Category 1: Messages that identify the type and source of an error
------------------------------------------------------------------
WARNING: [AFT1] EDP event on CPU1 Instruction access at TL=0, errID
0x0000ad88.6cd9989f
AFSR 0x00000000.80408000<PRIV,EDP> AFAR 0x00000000.0f0c8080
AFSR.PSYND 0x8000(Score 95) AFSR.ETS 0x00 FAULT_PC 0x780b481c
UDBH 0x0000 UDBH.ESYND 0x00 UDBL 0x0000 UDBL.ESYND 0x00
[Score 95] data parity error가 발생할시 Error 원인을 제공한 cpu는 확률방식으로
checking하게 되며 50이상으로 표시되는cpu가 fault임을 뜻한다.
위의 sample의 경우 score가 95인 경우이므로 cpu1에 hardware 오류가
있음을 뜻한다.
Category 2: Messages that supply a cache line or memory dump
------------------------------------------------------------
[AFT2] errID 0x0000ad88.6cd9989f PA 0x00000000.0f0c8080 E$tag
0x00000000.0bc001e1 E$State: Modified E$parity 0x05
[AFT2] E$Data (0x00): 0xffffffff.beefface *Bad* PSYND=0x8000
[AFT2] E$Data (0x08): 0x00000000.00000000
[AFT2] E$Data (0x10): 0x6d656d6d.6f727920
[AFT2] E$Data (0x18): 0x6572726f.7220696e
[AFT2] E$Data (0x20): 0x6a656374.6f720000
[AFT2] E$Data (0x28): 0x6d656d74.65737420
[AFT2] E$Data (0x30): 0x6d757465.780059f8
[AFT2] E$Data (0x38): 0x00000300.00c11000
[AFT2] Event PA displayed in AFAR was derived from E$Tag
[AFT2] 추후 분석을 위한 cache memory,main memory dump를 뜻하는 표시어
Category 3: Messages from the kernel error recovery code
--------------------------------------------------------
[AFT3] errID 0x00000058.0d0dc830 Above Error detected by protected Kernel code
that will try to clear error from system
[AFT3] error발생시 kernel상에서 detect한 code를 display하는 표시어
'OS 운영체제 및 보안 > Solaris' 카테고리의 다른 글
[스크랩] Solaris에서 system performance 측정 (0) | 2009.02.24 |
---|---|
Solaris7 에서 SSH(openssh) 설치 (0) | 2009.02.17 |
Solaris8 SSH 설치 (0) | 2009.02.17 |
[스크랩] Crash dump 분석하기 및 자동분석 스크립트 (0) | 2009.02.16 |
[스크랩] Crash Dump & Core File (0) | 2009.01.23 |
[스크랩] Solaris 서버 정보 확인 명령어 (0) | 2009.01.20 |
Solaris Telnet 사용시 Root로 접근 허용 및 제한 (0) | 2009.01.05 |
Solaris 에서 삭제를 할수 없는 파일이 있을때 해결 방법 (0) | 2008.12.24 |
Solaris9 Proftp 설치(패키지) (0) | 2008.12.23 |
한글 LANG 변수와 솔라리스 한글 설정. (0) | 2008.12.02 |
- Filed under : OS 운영체제 및 보안/Solaris