Linux 서버를 운영하다 보면 평소에는 정상적으로 동작하던 서버가 갑자기 느려지는 상황을 경험할 수 있습니다. 웹 페이지가 늦게 열리거나 SSH 접속이 지연되고, 데이터베이스 응답 시간이 길어지는 등 다양한 증상이 나타날 수 있습니다.
이러한 문제는 CPU 사용률 증가, 메모리 부족, 디스크 I/O 병목, 네트워크 문제, 특정 프로세스의 과도한 리소스 사용 등 여러 원인으로 발생합니다. 무작정 서버를 재부팅하기보다는 원인을 순서대로 확인하는 것이 중요합니다.
이번 글에서는 Linux 서버가 갑자기 느려졌을 때 실무에서 가장 많이 사용하는 점검 순서를 자세히 알아보겠습니다.
서버가 느려지는 주요 원인
대표적인 원인은 다음과 같습니다.
- CPU 사용률 급증
- 메모리 부족
- Swap 과다 사용
- 디스크 I/O 병목
- inode 부족
- 디스크 용량 부족
- 네트워크 지연
- 특정 프로세스의 비정상 동작
- 과도한 로그 생성
- 악성 프로세스 실행
원인을 정확하게 찾는 것이 가장 중요합니다.
1단계. Load Average 확인하기
가장 먼저 현재 서버 부하를 확인합니다.
uptime
또는
cat /proc/loadavg
Load Average가 CPU 코어 수보다 지속적으로 높다면 서버에 과부하가 발생하고 있을 가능성이 큽니다.
2단계. CPU 사용률 확인하기
현재 CPU를 많이 사용하는 프로세스를 확인합니다.
top
또는
htop
CPU 사용률이 높은 프로세스를 먼저 확인하는 것이 좋습니다.
3단계. 메모리 확인하기
메모리 부족 여부를 확인합니다.
free -h
다음 항목을 확인합니다.
- Total
- Used
- Free
- Buff/Cache
- Available
- Swap
Available 메모리가 매우 적다면 메모리 부족을 의심할 수 있습니다.
4단계. Swap 사용량 확인하기
Swap을 많이 사용하면 서버 속도가 크게 느려질 수 있습니다.
vmstat 1 5
si(Swap In)와 so(Swap Out) 값이 계속 증가하는지 확인합니다.
5단계. 디스크 I/O 확인하기
디스크 병목이 발생하는지 확인합니다.
iostat -xz 1
다음 항목을 확인합니다.
- %util
- await
- svctm
- r/s
- w/s
특히 %util이 100%에 가까우면 디스크가 포화 상태일 가능성이 있습니다.
6단계. 디스크 용량 확인하기
용량 부족도 성능 저하의 원인이 될 수 있습니다.
df -h
사용률이 95% 이상이라면 오래된 로그나 불필요한 파일을 정리하는 것이 좋습니다.
7단계. inode 확인하기
디스크 용량은 충분하지만 inode가 부족하면 새로운 파일을 생성하지 못합니다.
df -i
inode 사용률도 함께 확인합니다.
8단계. 네트워크 상태 확인하기
네트워크 연결 수를 확인합니다.
ss -s
또는
netstat -an | wc -l
비정상적으로 연결 수가 많다면 네트워크 문제나 공격 가능성도 고려해야 합니다.
9단계. 시스템 로그 확인하기
최근 오류를 확인합니다.
dmesg | tail
또는
journalctl -xe
디스크 오류나 OOM(Out of Memory) 메시지가 있는지 확인합니다.
10단계. 가장 많은 리소스를 사용하는 프로세스 찾기
CPU 기준으로 정렬합니다.
ps aux --sort=-%cpu | head
메모리 기준으로 확인하려면 다음 명령어를 실행합니다.
ps aux --sort=-%mem | head
문제가 되는 프로세스를 빠르게 찾을 수 있습니다.
서버가 느릴 때 확인해야 하는 순서
실무에서는 일반적으로 다음 순서대로 점검합니다.
- uptime
- top
- free -h
- vmstat
- iostat
- df -h
- df -i
- ss -s
- dmesg
- ps aux
이 순서대로 확인하면 대부분의 성능 문제 원인을 빠르게 찾을 수 있습니다.
서버 점검 시 주의할 점
문제가 발생했다고 바로 서버를 재부팅하는 것은 권장되지 않습니다.
재부팅하면 원인 분석에 필요한 정보가 사라질 수 있습니다.
현재 상태를 먼저 확인하고 로그와 리소스 사용량을 분석한 후 필요한 조치를 진행하는 것이 가장 안전한 방법입니다.
자주 묻는 질문
서버가 갑자기 느려졌다면 가장 먼저 무엇을 확인해야 하나요?
먼저 현재 시스템 부하를 확인합니다.
uptime
CPU와 메모리 중 무엇을 먼저 봐야 하나요?
CPU 사용률과 Load Average를 먼저 확인한 뒤 메모리와 Swap 사용량을 함께 확인하는 것이 좋습니다.
디스크 문제도 서버 속도에 영향을 주나요?
그렇습니다.
디스크 I/O 병목이나 저장 공간 부족은 전체 서버 성능을 크게 저하시킬 수 있습니다.
마무리
Linux 서버 성능 저하는 하나의 원인보다 여러 요소가 함께 영향을 미치는 경우가 많습니다. uptime, top, free, vmstat, iostat, df, ss, ps, dmesg 명령어를 순서대로 활용하면 대부분의 장애 원인을 빠르게 진단할 수 있습니다. 실무에서는 문제 발생 직후의 상태를 먼저 분석한 후 조치를 진행하는 것이 가장 효율적인 서버 운영 방법입니다.