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 등의 명령어를 사용하여 시스템 상태를 모니터링할 수 있습니다.
- 주의: 실 운영 환경에서 사용 시 주의가 필요합니다. 과도한 부하는 시스템 성능에 영향을 미칠 수 있습니다.
본 포스팅의 내용 및 이미지를 무단 전재, 재배포 또는 복사를 금지합니다.
인용 시 출처와 같이 공개해주세요!
도움이 되셨다면 댓글 또는 공감 부탁드립니다!
'IT > Linux_리눅스' 카테고리의 다른 글
[Linux] 리눅스 CPU 정보 확인 / 리눅스 CPU 코어 갯수 확인 명령어 / 리눅스 코어 계산 (1) | 2024.08.08 |
---|---|
[Linux] 리눅스 서버 메모리 사용량 확인 / 메모리 가장 많이 사용하는 프로세스 찾는 방법 (0) | 2024.08.07 |
[Linux / SSH] OpenSSH, OpenSSl 버전 확인하기 / ssh 버전 확인 명령어 (0) | 2024.07.04 |
[Linux / scp] scp 명령어를 사용하여 원격 서버로 파일 복사하기, 원격 서버의 파일 가져오기 (0) | 2024.06.21 |
[Linux / Network] CentOS9, RHEL9, Oracle Linux9 네트워크 설정하기 (0) | 2024.06.20 |
댓글