리눅스 서버가 느려졌다고 느껴질 때
리눅스 성능 튜닝은 복잡해 보일 수 있지만, 핵심만 잘 이해하고 접근하면 어렵지 않습니다.
리눅스 서버 성능을 점검하고 기본적인 튜닝을 적용하는 방법을 안내해드리겠습니다.
시스템 부하(load average) 확인하기
uptime
uptime
명령어를 입력하면 다음과 같은 정보가 출력됩니다.
14:20:52 up 10 days, 3:32, 2 users, load average: 0.58, 0.44, 0.36
- 1, 5, 15분 간의 평균 부하(load average)를 보여줍니다.
- 일반적으로 CPU 코어 수보다 평균 부하가 작으면 정상입니다.
CPU 사용량 점검
top
top
명령어로 실시간 CPU 사용량을 확인할 수 있습니다. CPU 사용률이 지나치게 높다면 다음을 점검해보세요.
- 특정 프로세스가 CPU를 과도하게 사용하는지
- 백그라운드에서 무거운 작업이 지속되는지
- 멀티코어 활용이 제대로 되고 있는지
메모리 사용량 확인
free -h
메모리가 부족하면 스왑 사용량(swap)이 급격히 늘어나고, 전체 시스템 속도가 느려질 수 있습니다.
total used free shared buff/cache available
Mem: 7.8G 6.1G 512M 300M 1.2G 1.0G
Swap: 2.0G 1.5G 500M
buff/cache
가 많고 available
이 부족하다면 메모리 정리를 고려해볼 수 있습니다.
I/O 병목 확인하기
iostat -x 1 3
iostat
는 디스크 I/O 상태를 확인하는 데 유용합니다. 특정 디스크의 %util
값이 80% 이상이면 병목 현상이 있을 수 있습니다.
대체 명령어로는 iotop
, dstat
도 사용할 수 있습니다.
네트워크 상태 확인
ss -tuln
-t
: TCP,-u
: UDP,-l
: Listen 중인 포트,-n
: 포트 번호 표시
서버가 외부 요청을 제대로 받고 있는지, 불필요한 포트가 열려 있는지 확인할 수 있습니다.
기본적인 커널 튜닝 (sysctl)
/etc/sysctl.conf
파일에 다음과 같은 항목을 추가해 네트워크 튜닝을 적용할 수 있습니다.
# TCP 커넥션 재활용
net.ipv4.tcp_tw_reuse = 1
# SYN flood 방지
net.ipv4.tcp_syncookies = 1
# 파일 디스크립터 최대값 증가
fs.file-max = 100000
적용은 다음 명령어로 수행합니다.
sudo sysctl -p
튜닝은 점검부터
리눅스 성능 튜닝은 "막연히 빠르게 만드는 것"이 아니라, 현재 병목 지점을 정확히 파악하고, 그에 맞는 개선을 적용하는 과정입니다.
점검 항목들만 잘 이해하고 체크해도, 서버 운영 중 만나는 대부분의 문제를 빠르게 진단하고 대응할 수 있습니다.
'개발 > 리눅스' 카테고리의 다른 글
서버 모니터링 툴 소개: Glances, Netdata 등 실시간 성능 확인 도구 (1) | 2025.07.25 |
---|---|
[Linux] .bashrc와 .bash_profile 설정 차이 이해하기 (1) | 2025.07.23 |
[Linux] 리눅스 자동화: 셸 스크립트 실전 예제 (0) | 2025.07.22 |
[Linux] 변수, 조건문, 반복문으로 간단한 스크립트 작성하기 (0) | 2025.07.21 |
[Linux] Bash 스크립트 기초 문법 배우기 (0) | 2025.07.20 |