반응형
부하 테스트를 하기 전에, 환경을 먼저 구축해보겠습니다.
임시 가상환경을 만들기 위해 proxmox에서 다음과 같은 리소스를 할당하여 부하 테스트 환경을 구축합니다.
`stress` 라는 도구를 사용해보겠습니다.
먼저 패키지를 설치해보겠습니다.
root@stress-test:/home/ubuntu# apt install stress -y -q
Reading package lists...
Building dependency tree...
Reading state information...
The following NEW packages will be installed:
stress
0 upgraded, 1 newly installed, 0 to remove and 89 not upgraded.
Need to get 18.4 kB of archives.
After this operation, 55.3 kB of additional disk space will be used.
Get:1 http://kr.archive.ubuntu.com/ubuntu focal/universe amd64 stress amd64 1.0.4-6 [18.4 kB]
Fetched 18.4 kB in 1s (15.1 kB/s)
Selecting previously unselected package stress.
(Reading database ... 71993 files and directories currently installed.)
Preparing to unpack .../stress_1.0.4-6_amd64.deb ...
Unpacking stress (1.0.4-6) ...
Setting up stress (1.0.4-6) ...
Processing triggers for install-info (6.7.0.dfsg.2-5) ...
Processing triggers for man-db (2.9.1-1) ...
그리고 스트레스가 잘 가해지고 있는지 확인할 모니터링 도구도 설치해줍니다.
root@stress-test:/home/ubuntu# apt install htop -y -q
Reading package lists...
Building dependency tree...
Reading state information...
htop is already the newest version (2.2.0-2build1).
htop set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 89 not upgraded.
stress가 어떠한 프로그램인지 살펴봅시다.
root@stress-test:/home/ubuntu# stress --help
`stress' imposes certain types of compute stress on your system
Usage: stress [OPTION [ARG]] ...
-?, --help show this help statement
--version show version statement
-v, --verbose be verbose
-q, --quiet be quiet
-n, --dry-run show what would have been done
-t, --timeout N timeout after N seconds
--backoff N wait factor of N microseconds before work starts
-c, --cpu N spawn N workers spinning on sqrt()
-i, --io N spawn N workers spinning on sync()
-m, --vm N spawn N workers spinning on malloc()/free()
--vm-bytes B malloc B bytes per vm worker (default is 256MB)
--vm-stride B touch a byte every B bytes (default is 4096)
--vm-hang N sleep N secs before free (default none, 0 is inf)
--vm-keep redirty memory instead of freeing and reallocating
-d, --hdd N spawn N workers spinning on write()/unlink()
--hdd-bytes B write B bytes per hdd worker (default is 1GB)
Example: stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s
Note: Numbers may be suffixed with s,m,h,d,y (time) or B,K,M,G (size).
root@stress-test:/home/ubuntu#
프로그램의 설명을 보니 시스템에 특정 유형의 스트레스를 가하는 프로그램이라고 나와있네요.
크게 4가지 기능을 테스트 해볼 수 있다.
cpu 부하 (-c 옵션)
stress -c N # N개의 코어를 부하테스트에 사용
stress -c 3 # 3개 코어를 사용하여 부하 테스트
작업 i/o 부하 (-i 옵션)
stress -i N # N개의 i/o 작업 테스트 수행
가상 메모리 부하 (-m 옵션)
stress -m N # N개의 메모리 부하 작업 실행
stress -m 1 # 1개의 메모리 부하 작업 실행
stress -m 1 --vm-bytes 10MB # 1개의 메모리 부하 작업 실행, 부하작업당 10 MB 할당
디스크 i/o 부하(-d 옵션)
stress -d N # 디스크당 N개의 작업 부하
위 기능은 복합적으로 사용할 수 있고, 장시간 사용시 하드웨어에 부담을 줄 수 있으므로, 시간 제한을 활용해 수행해볼 수 있습니다.
-t 옵션을 활용하여 timeout을 반드시 걸어주는 게 좋습니다.
다음과 같이 예제를 활용해볼 수 있습니다.
예제 1) 1개의 cpu 부하 작업, 10초간 수행
stress -c 1 -t 10
예제 2) 1개의 cpu 부하 작업, 1개의 메모리 부하 작업, 10초간 수행
stress -c 1 -m 1 -t 10
예제 3) 1개의 cpu 부하 작업, 1개의 메모리 부하 작업, 1개의 i/o 부하 작업, 10초간 수행
stress -c 1 -m 1 -i 2 -t 10
예제 4) 2개의 cpu 부하 작업, 2개의 메모리 부하 작업, 1개의 i/o 부하 작업, 1개의 disk i/o 작업, 10초간 수행
stress -c 2 -i 1 -m 2 -d 1 -t 10
다음에는 메모리 부하를 세부적으로 테스트 진행해볼 수 있는 글을 작성해보겠습니다.
읽어주셔서 감사합니다.
반응형
'리눅스' 카테고리의 다른 글
sudo(super user do) 사용법 (0) | 2023.10.03 |
---|---|
SSH에 OTP 적용하기 (MFA) (0) | 2023.09.05 |
caddy를 활용하여 간단히 웹서버에 HTTPS를 붙여보자 (0) | 2023.02.24 |