利用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,分库,分表等方式来增长数据库的可扩展性,把压力分散到各个数据库节点,并且须要尽早考虑,由于这部分的改变每每须要应用程序的修改来作配合,因此你们须要综合考虑。

相关文章
相关标签/搜索