본문 바로가기
금융을 알고싶은 반디 금융을 알고싶은 반디
" 좋은 일만 가득하세요~ "

Ⅴ-6. 컴퓨터 시스템 계층별 장애 진단과 원인 분리

읽는 시간 약 18분

컴퓨터 장애가 발생하면 사용자는 대부분 가장 먼저 눈에 보이는 증상을 확인한다.

화면이 멈추거나, 프로그램이 종료되거나, 인터넷이 끊기거나, 컴퓨터가 재부팅되는 식이다.

하지만 이러한 증상만으로 실제 장애가 시작된 위치를 판단하기는 어렵다.

하나의 증상이 여러 계층에서 발생할 수 있고, 하위 계층의 장애가 상위 계층의 문제처럼 나타날 수도 있기 때문이다.

예를 들어 프로그램이 멈췄다고 해서 반드시 프로그램 자체에 문제가 있는 것은 아니다.

저장장치 지연, 메모리 오류, 드라이버 문제, 운영체제 장애, 네트워크 문제 등이 응용프로그램의 정지나 응답 지연으로 나타날 수 있다.

따라서 장애 진단에서는 시스템을 기능과 의존관계에 따라 여러 계층으로 나누고,

“어디에서 증상이 보이는가?”와 “어디에서 이상이 시작되었는가?”를 구분하는 과정이 필요하다.

1. 컴퓨터 시스템을 계층으로 나누는 이유

컴퓨터는 하나의 부품이나 프로그램만으로 작동하지 않는다.

하드웨어에서 시작하여 펌웨어, 운영체제, 드라이버, 시스템 서비스, 응용프로그램 등이 서로 의존하면서 최종적인 기능을 제공한다.

일반적인 진단 관점에서는 다음과 같이 구분할 수 있다.

  • 하드웨어
  • 펌웨어
  • 운영체제
  • 드라이버
  • 시스템 서비스
  • 응용프로그램

네트워크는 이러한 계층과 별도로 존재하는 것이 아니라 응용프로그램, 운영체제, 드라이버, 네트워크 장치, 외부 네트워크를 연결하는 장애 경로로 함께 분석할 수 있다.

이렇게 구분하는 이유는 단순히 시스템을 여러 부분으로 나누기 위해서가 아니다.

장애 범위를 좁히고, 어느 지점에서 정상적인 동작이 깨졌는지를 확인하기 위해서다.

2. 하드웨어 계층에서 확인해야 할 것

하드웨어는 시스템의 물리적인 동작을 담당하는 영역이다.

주요 대상은 다음과 같다.

  • CPU
  • 메모리
  • SSD·HDD
  • GPU
  • 메인보드
  • 전원공급장치
  • 냉각장치
  • 네트워크 장치
  • 각종 케이블과 연결부

하드웨어 이상은 특정 프로그램의 오류처럼 보일 수도 있고 시스템 전체의 장애로 확대될 수도 있다.

예를 들어 메모리에 문제가 발생하면 특정 프로그램의 비정상 종료뿐 아니라 운영체제 오류나 시스템 재부팅으로 이어질 수 있다.

저장장치의 문제 역시 파일 접근 오류에서 시작해 프로그램 응답 지연, 서비스 장애, 운영체제 정지 등으로 확대될 수 있다.

따라서 최종 증상이 소프트웨어에 나타났더라도 하드웨어 계층을 너무 빨리 제외해서는 안 된다.

3. 펌웨어 계층에서 확인해야 할 것

펌웨어는 하드웨어가 기본적으로 동작하고 운영체제가 장치를 사용할 수 있도록 하는 중요한 영역이다.

대표적으로 시스템 펌웨어와 각종 장치의 펌웨어가 있다.

펌웨어와 관련된 문제는 다음과 같은 형태로 나타날 수 있다.

  • 부팅 실패
  • 장치 인식 오류
  • 하드웨어 설정 이상
  • 특정 장치의 불안정
  • 업데이트 이후 발생한 장애
  • 특정 기능에서 반복되는 장치 오류

특히 펌웨어 업데이트 이후 장애가 시작되었다면 업데이트 전후의 구성과 동작을 비교할 필요가 있다.

그러나 업데이트 직후 장애가 발생했다는 사실만으로 펌웨어를 원인으로 확정해서는 안 된다.

운영체제, 드라이버, 설정, 하드웨어 상태가 함께 변경되었는지도 확인해야 한다.

4. 운영체제 계층에서 확인해야 할 것

운영체제는 하드웨어 자원을 관리하고 응용프로그램이 실행될 수 있는 환경을 제공한다.

따라서 운영체제 계층에서 문제가 발생하면 여러 프로그램이나 서비스에서 동시에 이상이 나타날 수 있다.

대표적인 증상은 다음과 같다.

  • 시스템 응답 지연
  • 프로세스 비정상 종료
  • 서비스 중단
  • 시스템 오류
  • 부팅 문제
  • 비정상적인 자원 사용
  • 장치 접근 오류

특히 서로 다른 응용프로그램에서 비슷한 문제가 동시에 나타난다면 특정 프로그램 하나의 문제보다는 공통으로 사용하는 운영체제 또는 하위 계층을 함께 조사할 필요가 있다.

다만 여러 프로그램에서 동시에 문제가 발생했다는 사실만으로 운영체제를 원인으로 확정할 수는 없다.

공통으로 사용하는 저장장치, 메모리, 드라이버, 네트워크 등의 문제도 같은 형태로 나타날 수 있기 때문이다.

5. 드라이버 계층에서 확인해야 할 것

드라이버는 운영체제가 특정 하드웨어를 사용할 수 있도록 연결하는 소프트웨어 영역이다.

그래픽카드, 네트워크 장치, 저장장치, USB 장치 등 다양한 장치가 드라이버를 통해 운영체제와 연결된다.

따라서 드라이버에 문제가 발생하면 특정 장치와 관련된 장애가 집중적으로 나타날 수 있다.

예를 들어 다음과 같은 관계를 조사할 수 있다.

그래픽 장치 관련 문제 → 화면 출력 이상

네트워크 장치 드라이버 문제 → 연결 이상

저장장치 드라이버 문제 → I/O 오류

하지만 이러한 증상만으로 드라이버가 원인이라고 확정해서는 안 된다.

동일한 증상을 실제 하드웨어 이상이나 운영체제 문제도 발생시킬 수 있기 때문이다.

특히 드라이버 업데이트 전후에 장애 발생 빈도가 달라졌다면 변경 전 상태와 현재 상태를 비교하는 것이 중요한 진단 단서가 된다.

6. 시스템 서비스 계층에서 확인해야 할 것

운영체제 위에서는 다양한 백그라운드 서비스가 실행된다.

예를 들어 다음과 같은 서비스가 있다.

  • 업데이트 서비스
  • 보안 서비스
  • 파일 공유 서비스
  • 데이터베이스 서비스
  • 백업 서비스
  • 모니터링 서비스

특정 서비스가 비정상적으로 종료되거나 과도한 자원을 사용하면 사용자에게는 전체 시스템이 고장난 것처럼 보일 수 있다.

따라서 장애 발생 시 다음을 구분해야 한다.

전체 운영체제가 비정상적인가?

또는

특정 서비스만 비정상적인가?

서비스 하나가 중단된 것과 운영체제 전체가 장애를 일으킨 것은 대응 범위가 다르다.

이 구분을 통해 불필요하게 전체 시스템을 조사하는 범위를 줄일 수 있다.

7. 응용프로그램 계층에서 확인해야 할 것

응용프로그램은 사용자가 직접 경험하는 상위 영역이다.

대표적인 증상은 다음과 같다.

  • 프로그램 실행 실패
  • 프로그램 멈춤
  • 비정상 종료
  • 파일 처리 오류
  • 응답시간 증가
  • 특정 기능 실행 실패

이때 가장 중요한 판단 기준 중 하나는 문제가 특정 프로그램에만 발생하는지다.

특정 프로그램에서만 반복되고 다른 프로그램은 정상이라면 해당 프로그램의 설정, 데이터, 라이브러리, 서비스 의존성 등을 우선 조사할 수 있다.

반대로 여러 프로그램에서 동시에 비슷한 문제가 나타난다면 응용프로그램 하나만의 문제로 보기 어렵다.

이 경우 공통으로 사용하는 운영체제, 드라이버, 하드웨어, 네트워크 등의 계층을 함께 확인해야 한다.

8. 네트워크 장애는 하나의 계층이 아니라 경로로 분석한다

네트워크 장애는 단순히 “네트워크 계층” 하나의 문제로 보는 것보다 통신이 지나가는 전체 경로를 확인하는 것이 더 정확하다.

예를 들어 사용자가 서버에 접속하지 못하는 경우 다음과 같은 구간을 생각할 수 있다.

응용프로그램

→ 운영체제의 네트워크 기능

→ 네트워크 드라이버

→ NIC·무선 장치

→ 스위치·라우터 등 네트워크 장비

→ DNS·방화벽·라우팅

→ 목적지 서버

이 중 어느 구간에서 통신이 정상적으로 이루어지지 않는지를 좁혀야 한다.

또한 인터넷 전체가 끊긴 것인지, 특정 서버만 접근할 수 없는 것인지, 특정 이름 해석만 실패하는 것인지도 구분해야 한다.

따라서 네트워크 장애에서는 증상 범위와 통신 경로를 함께 확인하는 것이 중요하다.

9. 하나의 증상을 여러 계층에서 비교한다

계층별 진단에서 중요한 것은 계층을 단순히 나열하는 것이 아니라 같은 증상을 각 계층에서 설명할 수 있는지를 비교하는 것이다.

예를 들어 “컴퓨터가 느리다”라는 증상이 있다고 하자.

조사 영역확인 가능한 원인 후보
하드웨어CPU·메모리·저장장치 상태
펌웨어장치 초기화·설정 관련 문제
운영체제자원 관리·시스템 오류
드라이버장치 처리 지연·오류
서비스백그라운드 작업 증가
응용프로그램특정 프로그램의 자원 사용
네트워크 경로서버 응답·통신 지연

“느리다”라는 증상 하나만으로는 어느 영역이 원인인지 알 수 없다.

따라서 영향 범위, 발생 조건, 시간 순서, 관련 로그, 성능 데이터를 이용하여 조사 범위를 줄여야 한다.

10. 장애 진단의 핵심은 ‘범위 축소’다

장애 진단에서는 처음부터 정확한 원인을 맞히려고 하기보다 정상 동작과 비정상 동작의 경계가 어디에서 갈라지는지 찾는 것이 효율적이다.

예를 들어 다음과 같이 범위를 좁힐 수 있다.

전체 시스템 이상

→ 특정 기능만 이상

→ 특정 프로그램에서만 발생

→ 특정 장치 사용 시 발생

→ 특정 서비스 또는 드라이버와 연관

→ 해당 하위 구성요소 집중 조사

이 과정에서 중요한 것은 단순히 아래 계층으로 내려가는 것이 아니다.

문제가 발생하지 않는 영역을 하나씩 배제하면서 장애가 존재할 가능성이 높은 영역을 좁히는 것이다.

이것이 계층별 장애 진단의 실질적인 목적이다.

11. 장애 격리와 계층 진단을 연결한다

계층별 진단은 장애 격리와 함께 사용하면 더욱 효과적이다.

예를 들어 저장장치 문제가 의심된다면 다음과 같이 접근할 수 있다.

응용프로그램

→ 파일 처리

→ 파일 시스템

→ 운영체제 I/O

→ 저장장치 드라이버

→ SSD·HDD

각 단계에서 정상 여부를 확인하면 장애 범위를 점점 좁힐 수 있다.

네트워크 역시

응용프로그램

→ 운영체제 네트워크 기능

→ 드라이버

→ NIC

→ 네트워크 장비

→ 외부 네트워크

의 경로를 따라 확인할 수 있다.

여기서 중요한 것은 모든 경로를 무조건 처음부터 끝까지 조사하는 것이 아니다.

현재 증상과 증거에 따라 의심되는 경로를 선택하고, 각 단계에서 정상 여부를 확인하면서 범위를 줄이는 것이다.

12. 증상이 나타난 위치와 장애가 시작된 위치를 구분한다

계층별 장애 진단에서 가장 중요한 판단 기준 중 하나다.

관찰 위치 ≠ 발생 위치

예를 들어 저장장치에 문제가 발생했다고 가정해 보자.

SSD 이상

→ 파일 읽기 지연

→ 응용프로그램 처리 지연

→ 프로그램 응답 없음

사용자가 처음 확인하는 것은 프로그램의 정지다.

하지만 프로그램은 장애의 시작점이 아니라 하위 계층에서 발생한 문제의 영향을 받은 결과일 수 있다.

따라서 진단할 때는 다음 두 질문을 분리해야 한다.

① 어디에서 증상이 나타났는가?

② 어디에서 정상적인 동작이 처음 깨졌는가?

이 두 질문의 답이 같지 않을 수 있다는 점이 계층별 장애 분석의 핵심이다.

13. 계층 간 장애 전파 경로를 확인한다

실제 시스템에서는 장애가 한 계층에 머물지 않고 다른 계층으로 전달될 수 있다.

예를 들어 다음과 같은 흐름이 가능하다.

하드웨어 이상

→ 드라이버 오류

→ 운영체제 처리 이상

→ 시스템 서비스 중단

→ 응용프로그램 오류

이때 마지막에 나타난 응용프로그램 오류만 조사하면 원인을 놓칠 수 있다.

반대로 하드웨어에서 이상이 발생했다고 추정하면서 상위 계층에서 나타난 모든 오류를 하드웨어 탓으로 돌리는 것도 올바른 접근은 아니다.

따라서 각 사건에 대해

  • 어디에서 처음 관찰되었는가?
  • 언제 발생했는가?
  • 다음 계층에 어떤 영향을 주었는가?
  • 해당 전파 관계를 뒷받침하는 증거가 있는가?

를 확인해야 한다.

즉, 장애 시작점과 장애 전파 경로를 함께 확인해야 한다.

14. 계층별 장애 진단 절차

실제 장애가 발생했을 때는 다음과 같은 방식으로 범위를 좁혀갈 수 있다.

① 최종 증상을 확인한다

  • 무엇이 작동하지 않는가?
  • 언제부터 발생했는가?
  • 특정 사용자 또는 전체 사용자에게 발생하는가?
  • 특정 기능에서만 발생하는가?

② 영향 범위를 확인한다

  • 하나의 프로그램인가?
  • 여러 프로그램인가?
  • 특정 서비스인가?
  • 특정 장치인가?
  • 전체 시스템인가?
  • 특정 네트워크 대상인가?

③ 발생 조건을 확인한다

  • 특정 작업에서 발생하는가?
  • 특정 부하에서 발생하는가?
  • 장시간 사용 후 발생하는가?
  • 특정 장치 연결 후 발생하는가?
  • 특정 환경에서만 발생하는가?

④ 최근 변경을 확인한다

  • 프로그램 업데이트
  • 운영체제 업데이트
  • 드라이버 변경
  • 펌웨어 업데이트
  • 하드웨어 교체
  • 설정 변경

⑤ 계층별 증거를 비교한다

  • 시스템 로그
  • 이벤트 기록
  • 애플리케이션 로그
  • 성능 데이터
  • 하드웨어 상태
  • 장치 오류
  • 네트워크 상태

⑥ 장애 시작점을 추적한다

최종 증상이 발생한 위치에서 멈추지 않고 그보다 앞선 시간에 어느 계층에서 최초 이상이 확인되었는지를 찾는다.

⑦ 장애 전파 경로를 검증한다

최초 이상이 이후의 증상을 실제로 설명할 수 있는지 확인한다.

이 과정을 통해 장애 범위를 단계적으로 줄여갈 수 있다.

15. 계층별 진단에서 비교 환경을 활용한다

장애가 특정 환경에서만 발생한다면 비교 환경을 이용하는 것도 효과적이다.

예를 들어 같은 프로그램이 다른 컴퓨터에서는 정상적으로 작동하고 특정 컴퓨터에서만 오류가 발생한다고 하자.

이 경우 다음 항목을 비교할 수 있다.

  • OS 버전
  • 드라이버 버전
  • 펌웨어 버전
  • 하드웨어 구성
  • 프로그램 버전
  • 설정값
  • 연결된 장치
  • 네트워크 환경

이때 중요한 것은 다른 환경에서 정상이라는 사실이 곧 원인을 증명하지는 않는다는 것이다.

두 환경에서 차이가 나는 요소를 찾아내고, 그 차이가 장애와 관련 있는지 다시 검증해야 한다.

즉, 비교 환경은 원인 후보를 좁히는 도구이지 자동으로 원인을 확정하는 도구가 아니다.

16. 계층별 장애 진단에서 흔히 발생하는 오류

다음과 같은 판단은 주의해야 한다.

  • 프로그램이 멈췄으므로 프로그램이 원인이라고 판단
  • 네트워크가 끊겼으므로 네트워크 장비가 원인이라고 판단
  • 장치가 인식되지 않으므로 하드웨어 고장으로 확정
  • 여러 프로그램이 동시에 오류를 내므로 운영체제 문제라고 단정
  • 드라이버 업데이트 직후 장애가 발생했으므로 드라이버가 원인이라고 확정
  • 마지막으로 기록된 오류를 장애 시작점으로 판단
  • 가장 먼저 눈에 띈 계층을 원인 계층으로 판단
  • 상위 계층의 증상을 하위 계층의 원인과 동일시
  • 한 계층의 이상을 확인한 뒤 다른 계층을 더 이상 확인하지 않음

계층별 진단의 목적은 가장 그럴듯한 계층을 빨리 찍는 것이 아니다.

각 계층을 비교하면서 정상 영역과 비정상 영역의 경계를 찾고, 증상과 장애 시작점을 분리하는 것이다.

17. Ⅴ-1부터 Ⅴ-6까지의 장애 분석 흐름

앞에서 다룬 내용을 연결하면 각 글의 역할이 더욱 분명해진다.

Ⅴ-1. 장애 진단 절차와 원인 추적

장애가 발생했을 때 전체적인 진단 절차를 어떻게 구성할 것인가를 다룬다.

Ⅴ-2. 하드웨어 장애와 소프트웨어 장애의 구분

원인 후보를 하드웨어와 소프트웨어 영역으로 어떻게 좁혀갈 것인가를 다룬다.

Ⅴ-3. 시스템 로그 기반 장애 원인 추적

로그와 성능 데이터를 시간축으로 연결하여 장애 전후의 사건을 추적한다.

Ⅴ-4. 장애 증상과 근본원인(RCA) 분석

증상, 직접 원인, 근본원인, 기여 요인을 구분하고 재발 방지까지 연결한다.

Ⅴ-5. 장애 재현성과 발생 조건 분석

어떤 조건에서 장애가 발생하는지 확인하고 조건을 비교하여 원인 후보를 검증한다.

Ⅴ-6. 컴퓨터 시스템 계층별 장애 진단과 원인 분리

재현 조건과 장애 증상을 바탕으로 어느 계층에서 이상이 시작되었고, 어떤 경로를 통해 최종 증상으로 이어졌는지를 분리해서 분석한다.

따라서 전체 흐름은 다음과 같이 연결할 수 있다.

장애 발생

→ 진단 범위 설정

→ 하드웨어·소프트웨어 범위 축소

→ 로그와 시간축 분석

→ RCA 관점에서 원인 관계 검토

→ 발생 조건 재현·비교

→ 계층별 장애 시작점과 전파 경로 분리

이렇게 연결하면 Ⅴ-1부터 Ⅴ-6까지가 각각 다른 주제를 다루면서도 하나의 장애 진단 과정으로 이어진다.

18. 핵심정리

컴퓨터 장애에서 증상이 나타난 위치와 장애가 시작된 위치는 다를 수 있다.

프로그램이 멈췄다고 프로그램이 원인인 것은 아니며, 네트워크 접속이 되지 않는다고 네트워크 장비가 반드시 원인인 것도 아니다.

계층별 장애 진단의 핵심은 시스템을 단순히 하드웨어·소프트웨어로 나누는 것이 아니라,

증상 확인 → 영향 범위 축소 → 계층별 비교 → 장애 시작점 추적 → 전파 경로 검증

을 통해 정상과 비정상의 경계가 어디에서 갈라졌는지를 찾는 것이다.

특히 기억해야 할 것은 두 가지다.

관찰 위치 ≠ 장애 발생 위치

장애가 발생한 계층 ≠ 장애가 전파된 모든 계층

결국 좋은 계층별 장애 진단은 처음부터 원인을 맞히는 것이 아니라,

“어느 계층까지는 정상이고, 어느 지점부터 비정상이 시작되었는가?”

를 하나씩 확인하면서 장애 범위를 줄여가는 과정이다.

bandion
함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.

error: Content is protected !!