利用Azure高級存儲搭建高性能Linux服務器(2)

  1. 咱們首先來測試隨機寫的IOPS,能夠看到隨機寫的IOPS能夠達到5082順序寫的IOPS能夠達到5087數據庫

    $ sudo fio -filename=/data/testfile -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=libaio -bs=16k -size=10G -numjobs=20 -runtime=60 -group_reporting -name=mytest緩存

    $ sudo fio -filename=/data/testfile -direct=1 -iodepth 1 -thread -rw=write -ioengine=libaio -bs=16k -size=10G -numjobs=20 -runtime=60 -group_reporting -name=mytest服務器

     

  2. 一樣的方法咱們測試一下隨機讀的IOPS,默認狀況下,讀緩存是打開的,隨機讀能夠達到114619萬左右的IOPS,順序讀能夠達到139746左右的IOPS:架構

     

    $ sudo fio -filename=/data/testfile -direct=1 -iodepth 1 -thread -rw=read -ioengine=libaio -bs=4k -size=10G -numjobs=20 -runtime=60 -group_reporting -name=mytest併發

    $ sudo fio -filename=/data/testfile -direct=1 -iodepth 1 -thread -rw=read -ioengine=libaio -bs=4k -size=10G -numjobs=20 -runtime=60 -group_reporting -name=mytestide

     

  3. 咱們再來作一個測試,關閉緩存服務,即緩存服務設爲無,進行測試,能夠看到:高併發

    隨機寫:5089 順序寫:5099    隨機讀:5163    順序讀:5102性能

     

     

RAID 0高性能磁盤配置及測試

 

在有些狀況下,好比高負載的MySQL,MongoDB服務器,可能對於單盤的IOPS要求高於5000,但願達到2000或者更好,那麼在這種狀況下,得到更高IOPS的方式就是使用軟RAID,RAID 0的方式。在後續測試中,爲了看到實際性能,全部磁盤的緩存都是關閉的狀態,及緩存爲"無"。 測試

  1. 前面已經在界面上添加了4個1T的SSD數據盤,其中sdc用來作單盤測試,剩下的sdd,sde,sdf來作RAID。url

     

  2. 使用SSH登錄虛擬機,安裝RAID管理軟件mdadm:

    $ sudo yum install mdadm

     

  3. 使用mdm建立RAID 0設備/dev/mdraid

    sudo mdadm --create /dev/md127 --level 0 --raid-devices 3 /dev/sdc1 /dev/sdd1 /dev/sde1

     

     

  4. 建立掛載文件目錄,並格式化文件系統爲ext4格式:

$ sudo mkdir /data

$ sudo mkfs -t ext4 /dev/md127

若是你想快速啓用,快速格式化,可使用參數-E lazy_itable_init=1

例如:$ sudo mkfs -t ext4 -E lazy_itable_init=1 /dev/md127

 

  1. 最後,須要把文件掛載信息添加到fstab裏面,確保每次機器重啓的時候能夠自動掛載文件系統,首先得到剛纔建立設備的UUID:

    sudo /sbin/blkid

  2. 打開fstab文件,將文件關在信息添加到該文件以下:

    $ sudo vi /etc/fstab

     

    最後一行添加(須要換成你本身的UUID)

     

    UUID=bf5f2973-ded3-4da2-a67a-0dc9fd36554c /data ext4 defaults 0 2

按照以前注意事項提到的,你須要設置barrier和nofail,因此個人fstab文件的設置以下:

UUID=3c8289a5-de55-4e1c-9baf-5a603d8230e3 /data ext4 defaults,barrier=0,nofail 0 2

  1. 執行sudo mount -a並檢查當前掛載狀態:

  1. 在使用RAID0條帶化之後,iodepth的數值會和測試結果有較大的關係,咱們經過不一樣的參數來看一下不一樣的結果:

$ sudo fio -filename=/data/testfile -direct=1 -iodepth 32 -thread -rw=write -ioengine=libaio -bs=16k -size=10G -numjobs=20 -runtime=60 -group_reporting -name=mytest

Iodepth

Randwrite

Write

Randread

Read

16

iops=15185

iops=17523

iops=17523

iops=19885

32

iops=15164

iops=25033

iops=15183

iops=30788

128

iops=15169

iops=31862

iops=15227

iops=31805

 

能夠看到,在你須要更高磁盤性能,單個P30沒法知足你的要求的狀況下,可使用soft RAID的方式來提高磁盤的性能,隨着磁盤的增長,性能呈線性增加,固然就如以前全部,磁盤的性能依賴於磁盤的類型,磁盤的大小和虛擬機的大小,例如DS14在無緩存的狀況下最大能夠達到51200 IOPS,能夠根據本身的需求選擇合適的VM,搭配高級存儲。

最後,簡單聊一下一些作數據庫服務器架構設計的一些想法,在大部分狀況下,建立高IOPS的虛擬機都是做爲數據庫來使用的,可是高性能和高可用是兩個概念,若是你要保證數據庫的高可用性,以MySQL來舉例,你須要配置MySQL集羣,好比Master-Slave模式,或者多maste多slave模式;從性能和擴展性的角度來說,若是你使用了很是高IOPS,大內核的虛擬機,但仍是不能知足要求,你須要儘早考慮一下數據庫的擴展性問題,原來這種性能不夠就加CPU,加內存,vertical scale的方式被證實並非一個好的設計,不管物理機仍是虛擬機,性能都是有上限的,爲了知足當前大規模高併發訪問的需求,數據庫須要考慮sharding,分庫,分表等方式來增長數據庫的可擴展性,把壓力分散到各個數據庫節點,並且須要儘早考慮,由於這部分的改變每每須要應用程序的修改來作配合,因此你們須要綜合考慮。

相關文章
相關標籤/搜索