Tăng tốc độ ổ cứng của VM trên Azure Cloud

Ổ cứng là một trong những nhân tố ảnh hưởng đến performance của các máy ảo cũng như ứng dụng bạn host trên Azure. Trong bài viết này tôi sẽ đo thử tốc độ của ổ cứng mà Azure cung cấp cũng như chia sẻ về việc thực hiện disk stripping để tăng performance.

VM Tier/Series

Việc đầu tiên bạn cần làm là chọn cho mình 1 tier/series thích hợp cho máy ảo của bản. Với mô hình chi phí Pay-As-You-Go bạn nên chọn cấu hình vừa phải, đủ đáp ứng cho ứng dụng của bạn để tiết kiệm.

Azure Virtual Machine cung cấp cho bạn 2 tier cơ bản: BasicStandard. Cả 2 loại này cung cấp bạn nhiều sự lựa chọn. Basic tier thì hạn chế hơn Standard tier, ví dụ load-balacing và auto-scaling. Standard tier gồm 4 size cho máy ảo: A-series, D-series, DS-series và G-series.

  • D-series: các máy ảo thuộc D-series được sử dụng để chạy các ứng dụng cần cấu hình cao. Các máy ảo này cung cấp processor khá mạnh, bộ nhớ lớn và có sử dụng ổ cứng SSD để tăng performance.
  • DS-series: các máy ảo thuộc size này sử dụng Premium storage, cung cấp performance rất cao và latency thấp. Các máy ảo này cũng sử dụng SSD để lưu trữ, đặc biệt cung cấp ổ cứng local SSD để cache.
  • G-series: đây là loại size có performance tốt nhất vì cấu hình các máy ảo của loại size này được thiết kế để chạy những ứng dụng cực lớn (big data, ERP..). Các loại máy ảo này chạy với công nghệ Intel Xeon E5 V3 processor.

vm_size

Mỗi tier/series sẽ có disk size và performance khác nhau. Bảng dưới là thông báo chính thức từ Microsoft. Để tìm câu trả lời thật sự, tôi làm 1 số phép thử để kiểm tra performance.

Basic Tier Standard Tier
A-series A-series D-series DS-series G-series
MAX IOPS/Disk 300 500 500 3200 500

Tôi thử nghiệm bằng cấu hình máy ảo chạy Windows Server 2012, 2 cores, RAM 3.5 GB. Test case sẽ như sau:

  • Công cụ: CrystalDiskMark 4.1.0 x64
  • Test case 1 (TC01) : TestCount = 5; TestSize = 1 GB
  • Test case 2 (TC02): TestCount = 5; TestSize = 2 GB

azure-iops-toolKết quả kiểm thử test case số 2 trên G1

Kết quả thực tế như sau

Basic Tier Standard Tier
A2 A2 D1 DS1 G1
Test case 1 Read* 410 787 2839 4114 187018
Write* 361 421 529 514 532
Test case 2 Read* 479 902 1339 4115 1339
Write* 431 364 402 513 406

* : Random Read/Write with Queue = 32; Thread = 1

resultVới random Write thì hiệu suất về khả năng write không quá khác biệt giữa các tier/serie, từ 350-500 IOPS.

Với random Read thì:

  • Mặc dù D-series và A-series có cùng thông số tối đa IOPS cho phép ở Standard tier, IOPS sau khi test của D-series vẫn cao hơn (2 lần) vì có sự hỗ trợ của ổ SSD.
  • DS-series cung cấp performance tốt hơn với IOPS cao hơn.
  • Với G-series (RAM 28GB) có IOPS lên đến 18.000, gấp 400 lần so với A-series ở Basic tier ở test case 01.

Sử dụng Disk Stripping

Vì các máy ảo trong mỗi series đều có giới hạn IOPS/disk (500 IOPS) do đó bạn cần phải ghép các disk (disk stripping) lại để tăng IOPS. Và Microsoft Azure hỗ trợ điều này.

Tôi tiếp tục thử nghiệm với các test case sau:

  • S01: Chạy CrystalDiskMark ở 1 single disk
  • S02: Chạy CrystalDiskMark ở 2 stripped disk (ghép 2 disk)
  • S03: Chạy CrystalDiskMark ở 3 stripped disk (ghép 3 disk)
S01 S02 S03
Test case 01 Read* 502 551 600
Write* 539 1075 1634
Test case 02 Read* 284 828 815
Write* 551 1089 1593

azure2Test case trên 1 single disk

azure-3Test case trên 2 stripped disk

azure-4Test case trên 3 stripped disk

result-02

Rõ ràng việc thực hiện disk stripping, có IOPS cao hơn so với single disk. Tuy nhiên không phải lúc nào disk stripping cũng tốt do đó bạn cần test từng case nếu có thời gian.

Dưới đây là thông tin tôi đo được bằng tool CrytalDiskMark

———————————————————————–


<div>Basic tier - A2 - TC01 - CrystalDiskMark 4.1.0 x64 (C) 2007-2015 hiyohiyo
Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

Sequential Read (Q= 32,T= 1) :    19.244 MB/s
Sequential Write (Q= 32,T= 1) :     7.234 MB/s
Random Read 4KiB (Q= 32,T= 1) :     1.678 MB/s [   409.7 IOPS]
Random Write 4KiB (Q= 32,T= 1) :     1.480 MB/s [   361.3 IOPS]
Sequential Read (T= 1) :    20.342 MB/s
Sequential Write (T= 1) :     9.646 MB/s
Random Read 4KiB (Q= 1,T= 1) :     1.289 MB/s [   314.7 IOPS]
Random Write 4KiB (Q= 1,T= 1) :     0.496 MB/s [   121.1 IOPS]

Test : 1024 MiB [C: 7.9% (10.0/127.0 GiB)] (x5)  [Interval=5 sec]
Date : 2015/07/06 4:26:00
OS : Windows Server 2012 R2 Datacenter (Full installation) [6.3 Build 9600] (x64)

-----------------------------------------------------------------------
Basic tier - A2 - TC02 - CrystalDiskMark 4.1.0 x64 (C) 2007-2015 hiyohiyo
Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

Sequential Read (Q= 32,T= 1) :    19.924 MB/s
Sequential Write (Q= 32,T= 1) :     8.152 MB/s
Random Read 4KiB (Q= 32,T= 1) :     1.960 MB/s [   478.5 IOPS]
Random Write 4KiB (Q= 32,T= 1) :     1.767 MB/s [   431.4 IOPS]
Sequential Read (T= 1) :    20.344 MB/s
Sequential Write (T= 1) :     9.017 MB/s
Random Read 4KiB (Q= 1,T= 1) :     1.205 MB/s [   294.2 IOPS]
Random Write 4KiB (Q= 1,T= 1) :     0.454 MB/s [   110.8 IOPS]

Test : 2048 MiB [C: 7.5% (9.5/127.0 GiB)] (x5)  [Interval=5 sec]
Date : 2015/07/06 5:54:25
OS : Windows Server 2012 R2 Datacenter (Full installation) [6.3 Build 9600] (x64)

-----------------------------------------------------------------------
Standard tier - A2 - TC01 - CrystalDiskMark 4.1.0 x64 (C) 2007-2015 hiyohiyo
Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

Sequential Read (Q= 32,T= 1) :    98.513 MB/s
Sequential Write (Q= 32,T= 1) :    10.748 MB/s
Random Read 4KiB (Q= 32,T= 1) :     3.224 MB/s [   787.1 IOPS]
Random Write 4KiB (Q= 32,T= 1) :     1.726 MB/s [   421.4 IOPS]
Sequential Read (T= 1) :    83.257 MB/s
Sequential Write (T= 1) :    12.582 MB/s
Random Read 4KiB (Q= 1,T= 1) :     1.257 MB/s [   306.9 IOPS]
Random Write 4KiB (Q= 1,T= 1) :     0.488 MB/s [   119.1 IOPS]

Test : 1024 MiB [C: 7.4% (9.5/127.0 GiB)] (x5)  [Interval=5 sec]
Date : 2015/07/06 4:03:40
OS : Windows Server 2012 R2 Datacenter (Full installation) [6.3 Build 9600] (x64)
-----------------------------------------------------------------------
Standard tier - A2 - TC02 - CrystalDiskMark 4.1.0 x64 (C) 2007-2015 hiyohiyo
Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

Sequential Read (Q= 32,T= 1) :    98.259 MB/s
Sequential Write (Q= 32,T= 1) :    11.089 MB/s
Random Read 4KiB (Q= 32,T= 1) :     3.694 MB/s [   901.9 IOPS]
Random Write 4KiB (Q= 32,T= 1) :     1.491 MB/s [   364.0 IOPS]
Sequential Read (T= 1) :    72.363 MB/s
Sequential Write (T= 1) :    13.422 MB/s
Random Read 4KiB (Q= 1,T= 1) :     0.802 MB/s [   195.8 IOPS]
Random Write 4KiB (Q= 1,T= 1) :     0.436 MB/s [   106.4 IOPS]

Test : 2048 MiB [C: 7.4% (9.5/127.0 GiB)] (x5)  [Interval=5 sec]
Date : 2015/07/06 4:27:33
OS : Windows Server 2012 R2 Datacenter (Full installation) [6.3 Build 9600] (x64)

-----------------------------------------------------------------------
Standard tier - D1 - TC01 - CrystalDiskMark 4.1.0 x64 (C) 2007-2015 hiyohiyo
Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

Sequential Read (Q= 32,T= 1) :   140.974 MB/s
Sequential Write (Q= 32,T= 1) :     7.129 MB/s
Random Read 4KiB (Q= 32,T= 1) :    11.628 MB/s [  2838.9 IOPS]
Random Write 4KiB (Q= 32,T= 1) :     2.168 MB/s [   529.3 IOPS]
Sequential Read (T= 1) :  2567.704 MB/s
Sequential Write (T= 1) :     7.340 MB/s
Random Read 4KiB (Q= 1,T= 1) :    62.171 MB/s [ 15178.5 IOPS]
Random Write 4KiB (Q= 1,T= 1) :     0.562 MB/s [   137.2 IOPS]

Test : 1024 MiB [C: 7.4% (9.4/127.0 GiB)] (x5)  [Interval=5 sec]
Date : 2015/07/06 7:09:57
OS : Windows Server 2012 R2 Datacenter (Full installation) [6.3 Build 9600] (x64)

-----------------------------------------------------------------------
Standard tier - D1 - TC02 - CrystalDiskMark 4.1.0 x64 (C) 2007-2015 hiyohiyo
Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

Sequential Read (Q= 32,T= 1) :   183.127 MB/s
Sequential Write (Q= 32,T= 1) :     8.125 MB/s
Random Read 4KiB (Q= 32,T= 1) :     5.483 MB/s [  1338.6 IOPS]
Random Write 4KiB (Q= 32,T= 1) :     1.646 MB/s [   401.9 IOPS]
Sequential Read (T= 1) :   245.819 MB/s
Sequential Write (T= 1) :     9.227 MB/s
Random Read 4KiB (Q= 1,T= 1) :     1.309 MB/s [   319.6 IOPS]
Random Write 4KiB (Q= 1,T= 1) :     0.481 MB/s [   117.4 IOPS]

Test : 2048 MiB [C: 7.4% (9.4/127.0 GiB)] (x5)  [Interval=5 sec]
Date : 2015/07/06 7:24:03
OS : Windows Server 2012 R2 Datacenter (Full installation) [6.3 Build 9600] (x64)

-----------------------------------------------------------------------
Standard tier - DS1 - TC01 - CrystalDiskMark 4.1.0 x64 (C) 2007-2015 hiyohiyo
Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

Sequential Read (Q= 32,T= 1) :    33.583 MB/s
Sequential Write (Q= 32,T= 1) :    32.980 MB/s
Random Read 4KiB (Q= 32,T= 1) :    16.852 MB/s [  4114.3 IOPS]
Random Write 4KiB (Q= 32,T= 1) :     2.105 MB/s [   513.9 IOPS]
Sequential Read (T= 1) :    33.559 MB/s
Sequential Write (T= 1) :    32.927 MB/s
Random Read 4KiB (Q= 1,T= 1) :    14.897 MB/s [  3637.0 IOPS]
Random Write 4KiB (Q= 1,T= 1) :     1.853 MB/s [   452.4 IOPS]

Test : 1024 MiB [C: 8.2% (10.4/127.0 GiB)] (x5)  [Interval=5 sec]
Date : 2015/07/06 6:31:14
OS : Windows Server 2012 R2 Datacenter (Full installation) [6.3 Build 9600] (x64)

-----------------------------------------------------------------------
Standard tier - DS1 - TC02 - CrystalDiskMark 4.1.0 x64 (C) 2007-2015 hiyohiyo
Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

Sequential Read (Q= 32,T= 1) :    33.610 MB/s
Sequential Write (Q= 32,T= 1) :    32.821 MB/s
Random Read 4KiB (Q= 32,T= 1) :    16.853 MB/s [  4114.5 IOPS]
Random Write 4KiB (Q= 32,T= 1) :     2.101 MB/s [   512.9 IOPS]
Sequential Read (T= 1) :    33.764 MB/s
Sequential Write (T= 1) :    32.930 MB/s
Random Read 4KiB (Q= 1,T= 1) :    15.807 MB/s [  3859.1 IOPS]
Random Write 4KiB (Q= 1,T= 1) :     1.938 MB/s [   473.1 IOPS]

Test : 2048 MiB [C: 8.2% (10.4/127.0 GiB)] (x5)  [Interval=5 sec]
Date : 2015/07/06 6:51:59
OS : Windows Server 2012 R2 Datacenter (Full installation) [6.3 Build 9600] (x64)

-----------------------------------------------------------------------
Standard tier - G1 - TC01 - CrystalDiskMark 4.1.0 x64 (C) 2007-2015 hiyohiyo
Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

Sequential Read (Q= 32,T= 1) :  5933.514 MB/s
Sequential Write (Q= 32,T= 1) :     6.815 MB/s
Random Read 4KiB (Q= 32,T= 1) :   766.024 MB/s [187017.6 IOPS]
Random Write 4KiB (Q= 32,T= 1) :     2.177 MB/s [   531.5 IOPS]
Sequential Read (T= 1) :  3419.535 MB/s
Sequential Write (T= 1) :     7.760 MB/s
Random Read 4KiB (Q= 1,T= 1) :   103.392 MB/s [ 25242.2 IOPS]
Random Write 4KiB (Q= 1,T= 1) :     0.582 MB/s [   142.1 IOPS]

Test : 1024 MiB [C: 7.5% (9.5/127.0 GiB)] (x5)  [Interval=5 sec]
Date : 2015/07/06 8:20:21
OS : Windows Server 2012 R2 Datacenter (Full installation) [6.3 Build 9600] (x64)

-----------------------------------------------------------------------
Standard tier - G1 - TC02 - CrystalDiskMark 4.1.0 x64 (C) 2007-2015 hiyohiyo
Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

Sequential Read (Q= 32,T= 1) :   195.495 MB/s
Sequential Write (Q= 32,T= 1) :     7.863 MB/s
Random Read 4KiB (Q= 32,T= 1) :     5.484 MB/s [  1338.9 IOPS]
Random Write 4KiB (Q= 32,T= 1) :     1.662 MB/s [   405.8 IOPS]
Sequential Read (T= 1) :   264.414 MB/s
Sequential Write (T= 1) :     7.339 MB/s
Random Read 4KiB (Q= 1,T= 1) :     1.459 MB/s [   356.2 IOPS]
Random Write 4KiB (Q= 1,T= 1) :     0.512 MB/s [   125.0 IOPS]

Test : 2048 MiB [C: 7.5% (9.5/127.0 GiB)] (x5)  [Interval=5 sec]
Date : 2015/07/06 8:35:40
OS : Windows Server 2012 R2 Datacenter (Full installation) [6.3 Build 9600] (x64)</div>

KhoaPhiDang

Anh Phi Đăng Khoa là một cựu nhân viên tại Microsoft Việt Nam, đã có kinh nghiệm 4 năm phát triển dự án Azure từ IaaS đến PaaS, từ new development đến cloud migration. Hiện tại, Khoa đang là trướng nhóm giải pháp Digitalization, và là một trong những người đặt nền móng về việc nghiên cứu các giải pháp trên Azure tại FPT Software. Đến với AzureVN.net, Khoa sẽ tập trung chia sẻ các kinh nghiệm làm việc về Cloud Transformation và Cognitive Computing trên nền tảng Azure.

khoa has 5 posts and counting.See all posts by khoa

Leave a Reply

Your email address will not be published. Required fields are marked *