AWS — EC2 instance
選擇ec2 可以分以下五種方式選擇:
- RAM
- CPU
- I/O(disk performance, ENS optimisations)
- Network(network bandwidth, network latency)
- Graphical Processing Unit (GPU)
可以使用網站觀看每個instance內容。
RAM
RAM(random access memory)是電腦的“hot” memory,硬碟(Disk)是電腦的“cold” memory。RAM 比較貴且比較快通常用來快取資料,當電腦重新啟動的時候會清空。
Apache Spark用了很多RAM來處理大數據。
當記憶體不夠用的時候會出現以下兩種情況1. OutOfMemory 錯誤訊息。2. RAM會改用硬碟來存取(會變得非常的慢),這情就叫做swapping。
以下幾種便宜的EC2 machine 有大的RAM:
- R generation(目前是R4)
- X1
在linux 用以下的指令可以了解目前memory 使用狀態
free -m
以下的指令可以了解目前電腦運行的程式佔用的CPU和Memory。
top// 找出最耗記憶體的程式
shift + m
CPU(central processing unit)
中央處理器,負責處理電腦指令。cpu可以具有多核心(core),每個核心都是獨立的代表cpu可以多工。cpu也有頻率(GHz)代表旋轉的速度(越快越好)。
在linux每個核心代表100%(使用top指令),所以如果有4核心代表可以使用400%。
當你的機器需要大量計算時可以使用好一點的CPU。當你的程式是single thread那麼增加core並沒有任何幫助。
vCPU 代表有幾個核心(core)。
instance Monitoring 可以觀看cpu使用的程度
I/O(input / output)
指的是硬碟的讀和寫。當電腦啟動的時候會去硬碟讀取資料。
當你要使用instance建立資料庫或是需要儲存大量檔案的時候可以使用大一點的硬碟。
AWS上的EC2 如果是I 世代的(目前是I3) 可以用來ElasticSearch、NoSQL 資料庫…。 H或type D可用來MapReduce、HDFS、Big Data…
可以從instance description看I/O的內容
GPU(Graphical processing unit)
用來計算螢幕color of the pixels。大部分的EC2 machine 沒有GPU,只有以下兩種 P-generation(P3 latest) 和 G-generation(G3 latest)
General Instances(M)
在RAM、CPU、Network 都取得平衡。M-generation (M5 latest)