리눅스 트러블 슈팅(Trouble Shooting).INDEX

리눅스 서버를 공부 할 때 트러블 슈팅(Trouble Shooting)이란 단어를 접하게 되는데 서버 엔지니어와 개발자가 서버를 운영하면서 듣게 되는 단어로 말 그대로 ‘문제 해결’을 뜻 한다.

리눅스에서 Trouble Shooting은 문제가 발생한 시점에서 시스템, 소프트웨어 및 하드웨어, 네트워크 등에서 문제를 진단하고 해결하는 과정이다.

Ⅰ. 트러블 슈팅 시스템 구축

원인과 해결책을 찾는 과정에서 문제 해결이 되었다면 문제점과 해결책을 문서화 하는 것은 매우 중요하다. 동일한 문제가 발생했을 때 빠르게 문제 해결을 할 수 있기 때문이다. 과거에 있었던 해결 방법을 찾을 수 있으며, 서버의 변경 상태(사항)을 파악하고 시스템의 동작 방식을 이해하는 것이 중요하다고 할 수 있다.

  • Trouble Shooting을 위한 조건 1
  • 시스템 동작 방식 이해 및 관련 용어의 이해
  • DNS 및 프로세스 등의 이해와 네트워크 용어 및 시스템의 이해가 필요함.
  • 문제점과 해결책 문서화
  • 과거에 해결되었던 내용을 참조할 수 있도록 한다.
  • Trouble Shooting을 위한 조건 2
  • 시스템 동작 방식 이해 및 관련 용어의 이해
  • DNS 및 프로세스 등의 이해와 네트워크 용어 및 시스템의 이해가 필요함.
  • 시스템의 변경 사항 파악하기
트러블슈팅(Troubleshooting)

Ⅱ. 서버가 느린 경우

네트워크 쪽이 아닌 서버쪽에서 느린 것으로 판단되는 경우 시스템의 리소스가 소비되어 서버가 느린 경우를 생각할 수 있습니다. CPU, 메모리, 디스크 쪽의 문제를 점검할 수 있겠습니다.

1. 시스템 부하: top, uptime 명령어로 문제 진단

리눅스 uptime 명령어로 문제를 빠르게 진단할 수 있습니다.

2. CPU, RAM 문제 파악하기

 1분,5분,15분 동안의 평균 로드(load average)의 숫자가 높은 경우

~]# uptime                                                                                                         
 10:36:12 up 5 days, 17:35,  1 user,  load average: 2.03, 20.17, 15.09  

실행 중인 프로세스가 CPU를 사용 중이거나 CPU 사용을 위한 대기 상태일 가능성을 볼 수 있습니다.

평균 부하가 높은 원인을 CPU 문제인지 RAM의 문제인지 I/O에 대한 문제인지를 살펴 봐야 합니다.

리눅스 uptime 명령어 설명

top 명령어를 이용해서 시스템의 문제를 한 눈에 볼 수 있습니다.

  • top 명령어를 통한 진단
  • ⓐ 부팅 후 가동 시간을 확인하여 언제부터 가동되었는지 확인.
  • load average로 평균 부하 시간을 체크.
  • ⓒ 실행 중인 프로세스의 갯수 체크.
  • ⓓ 사용 중인 메모리는와 남아 있는 메모리는 어느 정도 인지 체크할 수 있습니다.
리눅스 TOP 명령어-메모리 및 스왑메모리 영역.png

3. 메모리 고갈 파악하기

4. 디스크 I/O 진단

Ⅲ. 시스템 부팅 문제

Ⅳ. 파티션 디스크가 FULL 상태인 경우

Ⅴ.웹 사이트 다운

Ⅵ. 데이터베이스 오류

Ⅶ. 하드웨어 진단

Ⅷ. 서버 다운 시 네트워크 문제 확인

Ⅸ. 네임서버 및 DNS 문제 해결

Ⅹ. 이메일 오류

Similar Posts

  • 리눅스 데몬이란? 독립형(Standalone) 방식과 슈퍼데몬 방식(xinetd)

    리눅스 데몬(Daemon)이란 사용자가 직접 제어하지 않고 백그라운드에서 실행되는 여러 작업을 하는 프로그램을 뜻 합니다. 뒤에 ‘d’로 끝나며 보통 프로세스로 실행됩니다. 목차Ⅰ. 트러블 슈팅 시스템 구축Ⅱ. 서버가 느린 경우1. 시스템 부하: top, uptime 명령어로 문제 진단2. CPU, RAM 문제 파악하기3. 메모리 고갈 파악하기4. 디스크 I/O 진단Ⅲ. 시스템 부팅 문제Ⅳ. 파티션 디스크가 FULL 상태인 경우Ⅴ.웹…

  • HTTP 상태 코드 표 [100~500] 정리

    HTTP 상태 코드는 운영 중인 서버의 오류를 확인하는 데 매우 중요한 지표로 활용됩니다. HTTP(Hypertext Transfer Protocol)란 웹 서버와 웹 클라이언트 사이에 데이터를 주고 받기 위해 사용되는 프로토콜 중 하나이며, TCP/IP 프로토콜 위에서 동작합니다. HTTP는 HTML, XML과 같은 하이퍼텍스트(Hypertext)만 전송하는 것이 아닌 이미지, 동영상, JavaScript 등의 다양한 파일을 데이터로 전송할 수 있습니다. 목차Ⅰ. 트러블…

  • 리눅스 head 명령어 & tail 명령어

    리눅스 head 명령어는 파일의 처음 10줄을 보여주는 명령어이며, tail 명령어는 파일의 마지막 10줄을 보여주는 명령어입니다. 옵션 없이 사용할 경우 각각의 머리와 꼬리 부분을 보여주는 것을 알 수 있습니다. head와 tail 명령어는 보통 서버의 access_log를 볼 때 주로 많이 사용됩니다. 두 명령어의 사용법과 테스트 서버에서 access_log를 각각의 명령어를 통해 확인 해 보겠습니다. 목차Ⅰ. 트러블…

  • 리눅스 history 명령어

    리눅스 history 명령어는 이전에 명령어 목록을 확인하는 명령어로 리눅스 콘솔에 접속했을 때 자주 사용하는 명령어 중에 하나입니다. 보통 history만 입력해서 많이 사용하지만 보다 더 다양한 활용 방법에 대해서 알아 보겠습니다. 목차Ⅰ. 트러블 슈팅 시스템 구축Ⅱ. 서버가 느린 경우1. 시스템 부하: top, uptime 명령어로 문제 진단2. CPU, RAM 문제 파악하기3. 메모리 고갈 파악하기4. 디스크…

  • 리눅스 Logrotate 개념과 설정

    리눅스 Logrotate는 “로그를 회전하다.”라는 뜻에서 알 수 있듯이 로그와 Rotate(회전하다[동사])의 합성어입니다. 리눅스 설치 시 기본으로 설치되어 있습니다. 로테이션(Rotation)은 사람을 일정한 순서에 따라 교대하는 일, 야구 경기에서 선발 투수를 차례로 기용하는 일 등의 예에서 볼 수 있듯이 반복과 교대의 개념을 가지고 있습니다. 리눅스에서 로그로테이션(Logrotation) > 로그 회전이라는 명사로도 언급됩니다. Logrotate가 설치되어 있지 않다면 명령어를…

  • nslookup 명령어

    nslookup 명령어는 네임 서버 조회(Name Server Lookup)를 뜻하는 명령어로 네임 서버의 정보를 얻기 위한 명령어입니다. DNS(Domain Name System)에 질의 후 대상 도메인의 IP 주소나 DNS 레코드 등의 정보를 얻기 위한 네트워크 명령어입니다. DNS 서버의 정상적인 작동을 통해 정상적인 네트워크 설정이 되었는지 확인할 때 많이 사용하게 되는 명령어 중 하나입니다. 보통 맥 OS 및…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 1   +   4   =