운영중입니다

CentOS 서버에서 stress를 활용한 부하 테스트 본문

리눅스

CentOS 서버에서 stress를 활용한 부하 테스트

https443 2025. 10. 2. 18:30

서버를 운영하다 보면 CPU나 메모리 자원에 부하를 인위적으로 발생시켜 테스트해야 하는 경우가 있음.
이번 글에서는 CentOS5와 CentOS7 환경을 기준으로 stress 도구를 설치하고, 부하 테스트를 진행하는 방법을 정리.


✅ 1. stress 도구란?
stressCPU, 메모리, I/O 등에 인위적으로 부하를 발생시켜 시스템 성능을 점검할 수 있는 간단한 테스트 도구.
주로 서버 초기 세팅 후 자원 사용률을 확인하거나, 모니터링 도구의 정상 작동 여부를 검증할 때 사용.


✅ 2. CentOS 버전별 설치 방법

    2.1 CentOS 5

#CentOS 5는 기본 저장소에 stress 패키지가 포함되어 있지 않음. 
#따라서 RPM 패키지를 직접 다운로드하여 설치.

#ex)
wget https://rpmfind.net/linux/dag/redhat/el5/en/i386/dag/RPMS/stress-1.0.2-1.el5.rf.i386.rpm


   2.2 CentOS 7

yum install epel-release

yum install stress


✅ 3. 부하 테스트 실행 방법
 
    3.1 설정 환경

              total        used        free      shared  buff/cache   available
Mem:           1.8G         75M        1.7G        2.2M         52M        1.6G
Swap:          2.0G        132M        1.9G

 

 3.2 사용 명령어

#설치가 완료되면 아래와 같은 명령어를 통해 CPU와 메모리에 부하를 줄 수 있음.

stress --vm 4 --vm-bytes 800M --timeout 600s

 

 


  3.3 주의 사항

# 아래와 같이 사용할 경우 
#요구량(8GB)이 실제 메모리+스왑(약 3.8GB)보다 훨씬 많아서 
#OOM(Out of Memory) 으로 프로세스가 바로 종료. 
#따라서 테스트시 설정 내용 확인 후 적당한 값을 설정해야 함

stress --vm 4 --vm-bytes 2048m --timeout 600s



  3.4 로그 확인

cd /var/log/httpd
dmesg | grep -i kill

#아래와 같은 내용이 확인 됨.


stress invoked oom-killer
Out of memory: Kill process 32431 (stress)
total-vm:2104468kB, anon-rss:391088kB

#total-vm:2104468kB → 약 2GB 가상 메모리

#anon-rss:391088kB → 실제 사용 중인 RAM 약 391MB

#UID 0 → root 권한으로 실행

#OOM 점수 263 → 커널이 죽여야 한다고 판단

#즉, stress 명령어로 VM worker 4개 × 2GB 시도 → 
#서버가 이를 감당하지 못하고 OOM Killer가 바로 프로세스를 강제 종료.

 


✅ 4. 명령어 상세 설명

옵션  설명
--vm 4 메모리에 부하를 줄 가상 작업자(VM) 프로세스 개수. 여기서는 4개 프로세스 실행.
--vm-bytes 800M 각 VM이 점유할 메모리 크기. 800MB씩 할당. (총 3.2GB 메모리 사용)
--timeout 600s 실행 시간 제한. 600초(10분) 동안 부하 테스트 진행.

✅ 5. 테스트 후 확인 방법

부하 테스트를 실행한 뒤에는 top, free -m 등을 사용하여 CPU 및 메모리 사용량 변화를 실시간으로 확인 가능.

이를 통해 서버 자원의 한계나 모니터링 툴의 정상 동작 여부를 체크 가능.