🔧 Engineering/📁 Study Notes

서버 문제를 계층으로 나눠서 보는 법

만두개 2026. 3. 3. 11:28
반응형
SMALL

1. 서버 문제가 생겼을 때 막히는 이유?

서버에 문제가 생기면 이런 느낌이었다.

  • 느리다
  • 접속이 안 된다
  • GPU가 이상하다
  • 알람이 떴다

근데 어디부터 봐야 할지 모르겠어서 정리해보려고 한다.

문제를 해결하기 전에, 먼저 문제를 “어디에 속하는지” 분류해야 한다는 것.


2. 서버 문제는 크게 4가지 영역으로 나눌 수 있다

나는 앞으로 이렇게 나누기로 했다.

① 리소스 (CPU / Memory / Disk Usage)

서버가 “느릴 때” 가장 먼저 보는 영역.

확인 명령어:

top
htop
free -h
df -h
ps aux --sort=%cpu | head
 

여기서 보는 것:

  • CPU 100%?
  • 메모리 부족?
  • 디스크 꽉 찼나?
  • 특정 프로세스가 다 잡아먹고 있나?

② 스토리지

RAID 문제, 디스크 장애, I/O 이슈 등.

lsblk
cat /proc/mdstat
iostat
dmesg
 

디스크가 살아 있는지,
재구성 중인지,
I/O 에러가 있는지 확인.


③ 네트워크

접속 안 될 때는 감정적으로 SSH부터 다시 치지 말고
계층적으로 봐야 한다.

  • L1: 케이블 물리 연결
  • L2: NIC up/down
  • L3: IP 설정
  • L4: 포트 열려있는지
  • DNS: 이름 해석 문제

명령어:

ip a
ip route
ping
ss -tulnp
ethtool

④ GPU 영역

GPU 서버라면 이 영역은 따로 본다.

nvidia-smi
nvidia-smi -q
nvidia-smi dmon
dmesg | grep -i xid
 
  • GPU 인식 되는지
  • 온도 이상 없는지
  • XID 에러 있는지
  • NVLink 상태 정상인지

3. 중요한 건 “순서”다

예전에는 이랬다.

GPU 문제인가? → 네트워크인가? → 로그 보다가 멘붕

앞으로는 이렇게 하려고 한다.

1. 리소스
2. 스토리지
3. 네트워크
4. GPU

위에서 아래로 내려간다.

왜냐하면
리소스 문제인데 GPU부터 보면 시간만 낭비하기 때문이다.

반응형
LIST