EC2 인스턴스의 CPU 사용량 인위적으로 올리기

2022.06.13

안녕하세요, 임채정입니다.
이번 시간에는 CPU나 메모리의 부하 테스트를 위해 사용하는 Stress 를 사용해보려고 합니다.

Stress 다운받기

# EC2 인스턴스에 접속해서 EPEL 레포지터리를 활성화
sudo amazon-linux-extras install epel -y

# Stress 설치
sudo yum install stress -y

# 버전 확인
stress --version
# stress 1.0.4

버전까지 확인해보면 다운이 잘 되었습니다.

실제로 사용해보기

이제 실제로 사용해보겠습니다.
먼저 명령어 실행 전에 EC2의 현재 CPU 상태를 확인하겠습니다.
현재는 평균 0.15%의 CPU를 사용하고 있습니다.

테스트로 사용할 EC2의 인스턴스 타입으로 t2.micro 를 사용하고 있기 때문에 한 개의 CPU를 500초 동안 최대한 사용하게 하는 명령어를 실행하겠습니다.

stress --cpu 1 --timeout 500

실행 후에 모니터링 상태의 변화입니다.
지금은 99.7%로 CPU의 사용률이 높게 올라갔습니다.

Stress의 다른 기능

CPU 사용률 이외에도 메모리의 부하 등 에도 사용할 수 있습니다.

 -?, --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

htop를 사용한 CPU 확인

이번에는 EC2 인스턴스 안에서도 CPU 사용률을 확인해보겠습니다.

# htop 설치
sudo yum install -y htop

# htop 실행
htop

다음 사진과 같이 실시간으로 서버의 CPU 사용률을 확인할 수 있습니다.
지금은 거의 100%의 CPU를 사용하고 있습니다.

본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !