본문 바로가기
IT/Linux_리눅스

[Linux / 명령어] 리눅스 CPU, memory 부하테스트를 위한 stress 명령어 사용, stress 테스트 진행하기

by 능보테 2024. 8. 2.
728x90
반응형

 

 

 

728x90

1. 부하테스트와 stress 명령어

stress 명령어는 Linux 시스템을 구성하는 CPU, Memory 등과 같은 HW 자원에 인위적으로 부하를 가해서 

해당 시스템의 성능을 테스트하거나 한계치를 확인, 각 HW 파트들의 장애유무를 판단할 수 있는 명령어/유틸리티 입니다. 

기본적으로 CPU, Memory, I/O 등을 대상으로 부하를 주면서 테스트가 가능합니다.

 

그렇지만 I/O나 디스크와 같은 경우엔 별도의 테스트툴이 더 좋은 것들이 많기 때문에

보통은 stress 명령어는 CPU 나 Memory의 부하테스트 용도 한정으로 많이 사용되고 있습니다. 

 

stress 명령어를 사용하기 위한 패키지는 쉽게 설치할 수 있습니다. 

아래와 같이 리눅스 배포판마다의 설치 명령어의 차이만 있을뿐 설치를 위한 패키지명은 동일합니다. 

 

#Ubuntu/Debian
sudo apt-get install stress

#Fedora
sudo dnf install stress

#CentOS/RHEL
sudo yum install epel-release
sudo yum install stress

 

 

2. stress 명령어 사용법

사용 형식과 옵션은 아래와 같습니다. 

stress [option]

 

옵션에 따라서 CPU / Memory / IO / Disk 에 대한 테스트를 결정할 수 있습니다. 

 

  • -c N : N개의 CPU 워커를 실행합니다. 각 워커는 sqrt() 연산을 반복하여 CPU를 사용합니다.
  • -i N : N개의 I/O 워커를 실행합니다. 각 워커는 동기식 쓰기 작업을 반복합니다.
  • -m N : N개의 메모리 워커를 실행합니다. 각 워커는 malloc()과 free()를 반복합니다.
  • -d N : N개의 디스크 워커를 실행합니다. 각 워커는 파일을 생성하고 삭제합니다.
  • --timeout N : N초 후에 자동으로 종료됩니다.

 

예를 들어서 CPU에 부하테스트를 하고 싶다면 아래의 코드로 실행 할 수 있습니다. 

stress -c 8

 

 

위의 코드는 CPU 워커 8개를 생성하여 8개의 CPU에 부하를 줍니다. 

그렇다면 만약 시스템의 CPU가 N개 일 때, 이 전체 CPU에 대한 테스트를 하고싶다면

stress -c N

 

을 실행하게 되면 모든 CPU에 부하를 걸면서 테스트를 할 수 있습니다. 

 

아래와 같이 실제 사용하고 있는 서버에서 테스트를 진행해봤습니다. 

 

현재 서버의 CPU 갯수는 32개로 이 CPU 전체에 모두 부하를 거는 테스트를 실행해 보겠습니다. 

 

 

부하를 걸기 전에 현재 CPU의 load average는 모두 0 입니다. CPU 사용률이 0 라는 뜻입니다. 

load average에 관해 궁금한 점이 있다면 아래의 링크에서 확인가능합니다. 

2021.01.02 - [IT/Linux_리눅스] - [Linux] Load Average란? , 리눅스의 uptime, vmstat 명령어로 Load Average 확인하기

 

[Linux] Load Average란? , 리눅스의 uptime, vmstat 명령어로 Load Average 확인하기

안녕하세요 이번 포스팅에서는 Load Average가 무엇인지, 그리고 이를 확인할 때 쓰이는 vmstat 명령어에 대해서 글을 써보겠습니다. 0. Load Average 란? Load Average는 현재얼마나 많은 수의 프로세스가 실

youngswooyoung.tistory.com

 

이제 CPU에 부하를 걸어서 테스트를 진행하겠습니다. 

stress -c 32

 

 

32개의 CPU에 모두 부하를 거는 테스트를 실행한 후

 

top 명령어를 사용해서 load average를 확인하면 점점 그 수치가 올라가는 것을 확인할 수 있습니다. 

 

 

시간이 한참 흐른 후에는 load average가 CPU의 갯수인 32까지 도달하는 모습을 보여주는데, 이는 CPU 32개가 모두 한계치까지 작업을 하고 있다는 것으로 해석할 수 있습니다. 

 

 

3. stress 테스트 중의 모니터링

해당 stress 테스트 중에도별도로 모니터링을 진행할 수 있는데 아래와 같이 모니터링 예제를 볼 수 있습니다. 

 

  • 모니터링: stress 실행 중에 top, htop, vmstat 등의 명령어를 사용하여 시스템 상태를 모니터링할 수 있습니다.
  • 주의: 실 운영 환경에서 사용 시 주의가 필요합니다. 과도한 부하는 시스템 성능에 영향을 미칠 수 있습니다.

 

 


 



 

본 포스팅의 내용 및 이미지를 무단 전재, 재배포 또는 복사를 금지합니다.

인용 시 출처와 같이 공개해주세요!

도움이 되셨다면 댓글 또는 공감 부탁드립니다!

 

728x90
반응형

댓글