Geekbench benchmark of different AWS EC2 instances

接續上一篇 sysbench CPU benchmark of different AWS EC2 instances ,這邊改用 Geekbench 來做效能測試,Geekbench 是跨平台的效能測試工具,有支援 Windows、Linux、macOS、Android 和 iOS 等系統,測試環境、比較對象和上一篇相同。

測試環境

  • Ubuntu: 18.04.3 LTS
  • Linux kernel: 4.15.0-1052-aws
  • Geekbenck: 5.0.3

比較對象

  • General purpose
    • T2
    • T3
    • T3a
    • M4
    • M5
    • M5a
  • Compute optimized
    • C4
    • C5
  • Memory optimized
    • R4
    • R5
    • R5a

T 系列的機器也都同樣是開 Unlimited Mode 下去跑測試讓 CPU 可以全速運轉

執行時不用特別帶參數,像下面這樣

測試畫面

$ ./Geekbench-5.0.3-Linux/geekbench5 
Geekbench 5.0.3 Tryout : https://www.geekbench.com/

Geekbench 5 is in tryout mode.

Geekbench 5 requires an active Internet connection when in tryout mode, and 
automatically uploads test results to the Geekbench Browser. Other features 
are unavailable in tryout mode.

Buy a Geekbench 5 license to enable offline use and remove the limitations of 
tryout mode.

If you would like to purchase Geekbench you can do so online:

  https://store.primatelabs.com/v5

If you have already purchased Geekbench, enter your email address and license 
key from your email receipt with the following command line:

  ./Geekbench-5.0.3-Linux/geekbench5 -r <email address> <license key>

  Running Gathering system information
System Information
  Operating System              Ubuntu 18.04.3 LTS 4.15.0-1052-aws x86_64
  Model                         Amazon EC2 t3a.large
  Motherboard                   Amazon EC2
  BIOS                          Amazon EC2 1.0

Processor Information
  Name                          Intel Pentium II/III
  Topology                      1 Processor, 1 Core, 2 Threads
  Identifier                    AuthenticAMD Family 23 Model 1 Stepping 2
  Base Frequency                2.20 GHz
  L1 Instruction Cache          64.0 KB
  L1 Data Cache                 32.0 KB
  L2 Cache                      512 KB
  L3 Cache                      64.0 MB

Memory Information
  Size                          7.71 GB

Single-Core
  Running AES-XTS
  Running Text Compression
  Running Image Compression
  Running Navigation
  Running HTML5
  Running SQLite
  Running PDF Rendering
  Running Text Rendering
  Running Clang
  Running Camera
  Running N-Body Physics
  Running Rigid Body Physics
  Running Gaussian Blur
  Running Face Detection
  Running Horizon Detection
  Running Image Inpainting
  Running HDR
  Running Ray Tracing
  Running Structure from Motion
  Running Speech Recognition
  Running Machine Learning

Multi-Core
  Running AES-XTS
  Running Text Compression
  Running Image Compression
  Running Navigation
  Running HTML5
  Running SQLite
  Running PDF Rendering
  Running Text Rendering
  Running Clang
  Running Camera
  Running N-Body Physics
  Running Rigid Body Physics
  Running Gaussian Blur
  Running Face Detection
  Running Horizon Detection
  Running Image Inpainting
  Running HDR
  Running Ray Tracing
  Running Structure from Motion
  Running Speech Recognition
  Running Machine Learning

Uploading results to the Geekbench Browser. This could take a minute or two 
depending on the speed of your internet connection.

Upload succeeded. Visit the following link and view your results online:

  https://browser.geekbench.com/v5/cpu/535166

Visit the following link and add this result to your profile:

  https://browser.geekbench.com/v5/cpu/535166/claim?key=185887

測試結果

接著看測試結果,免費版的 Geekbench 測試時必須要有網路連線,結果不會直接顯示在本機,要上傳到他們的伺服器上看,好處應該是比較不怕造假(假設有對資料做應該有的基本驗證機制)或弄錯,畫面呈現如下,除了效能測試的分數以外,也一些作業系統、CPU、記憶體等資訊:

下面是這次測試全部結果的連結:

閱讀全文

sysbench CPU benchmark of different AWS EC2 instances

AWS EC2 推出 M5a/R5a/T3a使用 AMD CPU 的 主機分別有大約一年/半年左右的時間了,因為平時使用到美國境內區域的比例比較少、亞洲更新的時間相對還是比較晚,所以幾個月前才陸續開始使用這幾個系列的機器 (截至目前為止東京都還不是每個 AZ 都可以開 T3a 的機器),除了官方宣稱的 10% 左右價差 (跟 M5/R5/T3 相比) 以外,對於效能這方面並沒有提供太多資訊,想像上以及一些其他管道的資訊多是和同系列但使用 Intel 處理器的主機效能約略相同、或少個 10% 以內的效能,但實際上如何好像沒有太多的討論或比較,這邊就來用 sysbench 這套工具很簡單的比較一下幾款比較常用到、不同系列的 AWS EC2 主機 CPU 效能,方便起見,使用預設值下取跑、且都拿 .large 這個大小的機器來比、只看單個執行緒的測試結果

測試環境:

  • Ubuntu: 18.04.3 LTS
  • Linux kernel: 4.15.0-1052-aws
  • sysbench: 1.0.18

比較對象如下,共十一種機型:

  • General purpose
    • T2
    • T3
    • T3a
    • M4
    • M5
    • M5a
  • Compute optimized
    • C4
    • C5
  • Memory optimized
    • R4
    • R5
    • R5a

因為要測試的是 CPU 的效能,一些跟磁碟、網路有關衍生出來的機型例如 C5d / C5n / M5dn / R5dn 等也就不列入測試範圍了。另外 T1 / C3 / M3 / M4 這種前幾個世代比較舊的機器也不列入這次測試,現在要開機器應該不會開這麼舊的來用了,沒事不會同時跟錢包還有效能過不去,除非有什麼比較久遠的 AMI 沒辦法在新機器上開起來非得用舊機器跑不可 …

其中 T2 / T3 / T3a 系列要靠 CPU Credits 才能使用到最佳效能的機器,在測試時都是開 Unlimited Mode 下去測的 (實際上 sysbench 預設只會跑十秒左右,連 1 CPU Credit 都用不滿) ,拿沒有被卡住的效能比較才比較有

關於各機型的規格/價格比較,建議可以參考 EC2Instances.info ,我覺得這網站還不錯很方便:

EC2Instances.info Easy Amazon EC2 Instance Comparison
https://ec2instances.info/?filter=.large&region=ap-northeast-1&cost_duration=monthly&reserved_term=yrTerm1Standard.allUpfront

接下來就直接看測試結果:

# t2.large
$ sysbench cpu run
sysbench 1.0.18 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 1
Initializing random number generator from current time


Prime numbers limit: 10000

Initializing worker threads...

Threads started!

CPU speed:
    events per second:   909.23

General statistics:
    total time:                          10.0008s
    total number of events:              9095

Latency (ms):
         min:                                    1.09
         avg:                                    1.10
         max:                                    1.17
         95th percentile:                        1.10
         sum:                                 9983.83

Threads fairness:
    events (avg/stddev):           9095.0000/0.00
    execution time (avg/stddev):   9.9838/0.00
閱讀全文

AWS EC2 的新 Instances type – T3 以及跟 T2 的比較

AWS EC2 今天新推出的 Instance type – T3:Introducing Amazon EC2 T3 Instances, New T3 Instances – Burstable, Cost-Effective Performance,宣稱因為採用了最新的 Xeon CPU 以及新的 AWS Nitro System 透過專門的硬體協助虛擬化,和 T2 相比有 30% 的效能提昇:

T3 instances also feature the latest 2.5 GHz Intel Xeon Scalable processors which combined with the AWS Nitro System result in up to a 30% better price to performance improvement over T2 instances

實際上開了一台 T3 的機器來看,看到的 CPU 是和先前 M5 instance 相同、去年才推出而且是 AWS 才有的 Intel(R) Xeon(R) Platinum 8175M ,也因為 Nitro System 的 Network & EBS bursting,網路透過 ENA (Amazon Elastic Network Adaptor) 頻寬可以拉到 5Gbps,EBS 則是 1.5 / 2.05 Gbps:

T3 instances are powered by the Nitro system. In addition to CPU bursting, they support network and EBS bursting, giving you access to additional throughput when you need it. Network traffic can burst to 5 Gbps for all instance sizes; EBS bursting ranges from 1.5 Gbps to 2.05 Gbps depending on the size of the instance, with corresponding bursts for EBS IOPS.

新的 instance type 一如往常會比同系列上一代的 instance (T2) 來的更經濟實惠,這邊做個比較,大致分成價格跟硬體規格來看:

價格的部份和 T2 相比,on-demand 及 reserved instance (RI) 大約都有 10% 左右的降幅,拿 us-east-1 的 nano Linux 來看,每小時的價格最低為 $0.0052 USD 、標準的一年及三年期 RI 為 $27 / $51 (USD),同 region 的 T2 instance 則分別是 $0.0058 / $29 / $57 (USD),

規格的部份,除了一開始提到的 Xeon CPU 及 AWS Nitro System 之外,T3 instance 的 vCPU 數量最少從 2 開始起跳,同時把 medium 以下的機器每小時給的 CPU credits 翻倍,比較小台的 nano、micro、small  特別受惠 (vCPU & CPU credits per hour 都翻倍),再來 medium & large 這兩種規格帳上就沒有變化,而 xlarge、2xlarge 的 baseline performance 拉到了大概也是兩倍左右,CPU credits per hour 則是分別多了 77% & 135% 也就是快要兩倍及兩倍多的 credits ,還算有誠意

做個表格比較容易比較:

閱讀全文

在 AWS 上的 Ubuntu 安裝 zram-config 出錯

放在 Amazon Web Services (AWS) 上的機器因為用途跟價格的關係, ram 的規格開很小,靠 swap 來緩衝的話吃 IO 吃比較兇會被多收錢,想要用 zram 來壓記憶體

zram 的說明可以參考 Wikipediahttp://zh.wikipedia.org/wiki/Zram

zram 是 Linux 核心的一個模組,之前被稱為「compcache」。zram 透過在RAM內的壓縮塊裝置上分頁,直到必須使用硬碟上的交換空間,以避免在磁碟上進行分頁,從而提高效能。由於 zram 可以用記憶體替代硬碟為系統提供交換空間的功能,zram 可以讓 Linux 在需要大量 RAM 的情況下在記憶體上進行交換/分頁,而提高記憶體的使用率,顯著得減少系統啟動時(此時 Linux 還不能使用外部儲存)對記憶體大小的要求。在實體記憶體較少的舊電腦上,尤其如此。

Lubuntu (13.10 開始) 以及 Chrome OS 預設都有啟用這項功能
所以就來安裝 zram-config,沒想到竟然失敗 …

錯誤訊息大概是這樣:

testuser@ubuntu:~$ sudo apt-get install zram-config
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
zram-config
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/3,078 B of archives.
After this operation, 42.0 kB of additional disk space will be used.
Selecting previously unselected package zram-config.
(Reading database ... 107939 files and directories currently installed.)
Unpacking zram-config (from .../zram-config_0.1_all.deb) ...
Processing triggers for ureadahead ...
Setting up zram-config (0.1) ...
start: Job failed to start
invoke-rc.d: initscript zram-config, action "start" failed.
dpkg: error processing zram-config (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
zram-config
E: Sub-process /usr/bin/dpkg returned an error code (1)
閱讀全文