1. 5가지 고려사항
- RAM (memory)
- CPU
- I/O
- Networking
- GPU
2. RAM이란
- random access memory
- 메모리를 많이 잡아먹는 프로세스를 돌리기위한 인스턴스라면, 메모리 사이즈를 늘리는 것을 고려한다.
- Hot memory 이다. (<-> 디스크는 cold memory)
- reboot하면 내용이 날라간다.
- 속도빠르다.
- 비싸다.
- free -m명령어 사용해서 확인할 수있다.
-top 명령어 -> shift + m 사용해서 어떤 프로세스가 메모리 많이 사용하는지 desc로 확인할 수 있다.
3. CPU란
- 계산하는 역할
- core와 frequency (GHz)로 이루어져있다
- frequency: cpu의 속도라고 할수있다.
- 코어가 여러개인 경우-> 멀티코어라고 부른다.
- 코어 수가 무조건 많으면 좋은가? -> No. 어플리케이션이 싱글스레드로 돌아간다면, 코어 수가 많아도 하나의 코어만 사용한다. 따라서 어떤 어플리케이션을 돌릴것인가를 생각한다.
- 계산하는 작업(ex. 피보나치 수열 계산) 이 많은 어플리케이션이라면, 멀티코어를 고려한다.
- top 명령어를 통해서 cpu사용량을 확인할 수 있다.
4. I/O란
- 디스크로부터 읽기 쓰기를 하는 것을 I/O라고 한다.
- I/O 성능이 나쁠경우, 인스턴스 slowdown한다.
- SSD같이 I/O성능이 좋은 인스턴스를 고려한다.
- 이를테면 db를 돌리는 인스턴스. 디스크에서 데이터를 읽고, 디스크에 데이터를 쓰는 작업이 많으므로. 이러한 작업에 특화된 인스턴스를 선택할 수 있다.
- IOPS: I/O per second. 저장장치(디스크)의 속도를 나타낸다.
5. Network란
- 다른 machine에게 web을통해 데이터를 전달하는것.
- ftp서버, apache kafka 등, 다른 인스턴스들과 인터넷을 이용하여 소통해야 하는 일이 많다면, 네트워크 성능이 좋아야 한다.
- 네트워크성능 구성요소 : bandwith, latency
- 네트워크 bandwidth가 낮으면-> 어플리케이션 time out이 발생한다.
6. GPU란
- 매우 특수한 경우에만 사용된다. 머신러닝 . 비디오 프로세싱.
- 대부분의 일반적인 인스턴스의 경우 GPU탑재하고 있지 않다.
---그외
- cpu credit : unexpected traffic이 발생하는 경우 cpu burst하면서 힘을 쥐어짜낼수있다. 즉, 필요할때 순간적으로 cpu의 성능을 높이는 기능.
- cpu credit은 인스턴스에 따라 쌓이는 정도 및 max 가 다르다.
- cpu credit소모하고 다시 쌓이는 식이다.
댓글 없음:
댓글 쓰기