해당 내용은 Class101의 현직 대기업 개발자 푸와 함께하는 진짜 백엔드 시스템 실무! 강의를 기반으로 작성했습니다.
Input/Output으로 입출력을 의미한다. 하나의 프로세스가 I/O를 수행하는 동안 CPU는 놀지않고 다른 프로세스를 실행시킨다. I/O의 종류에는 하드디스크 뿐만아니라 DB, 네트워크에 대한 I/O도 있다.
하나의 프로세스가 실행중일 때 I/O 하는 시간을 I/O Burst 라고 하며, CPU에서 실행되는 시간을 CPU Burst 라고 한다.
해당 프로세스가 전체적으로 I/O를 많이 하는 애플리케이션이라면 I/O Bound 어플리케이션이라고 이야기하고, CPU를 많이 사용하는 애플리케이션이라면 CPU Bound 어플리케이션이라고 한다.
CPU를 많이 사용하는 애플리케이션 즉 CPU Bound 어플리케이션을 만드는 방법은 여러가지가 있지만 Hash연산을 많이 반복하는 방법을 이용한다. Hash 중 MD5 Hash 연산을 사용한다.
우측의 maven 클릭 → LifeCycle → deploy 클릭 하면 jar파일을 얻을 수 있다.
좌측 target 폴더 아래에 .jar 파일이 생성된걸 볼 수 있다.
이제 jar 파일을 github에 올리고 gcp 인스턴스에서 pull해오면 된다.
wget은 http, ftp 포로토콜을 이용해 파일을 다운로드 받기 위한 소프트웨어이다.
sudo yum install wget
sudo yum install java
처음에는 에러가 나서 댓글을 살펴보니 에러나면 CentOS8로 바꿔서 해야된다고 한다..
근데 그냥 한번 더 입력해봤더니 그냥 됐다.
wget https://github.com/lleellee0/class101-files/raw/main/cpu-0.0.1-SNAPSHOT.jar
sudo java -jar cpu-0.0.1-SNAPSHOT.jar