zoukankan      html  css  js  c++  java
  • 利用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=mytest

    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。
    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,分库,分表等方式来增加数据库的可扩展性,把压力分散到各个数据库节点,而且需要尽早考虑,因为这部分的改变往往需要应用程序的修改来做配合,所以大家需要综合考虑。

  • 相关阅读:
    HOJ 2139 Spiderman's workout(动态规划)
    FZU 2107 Hua Rong Dao(dfs)
    Java 第十一届 蓝桥杯 省模拟赛 计算机存储中有多少字节
    Java 第十一届 蓝桥杯 省模拟赛 计算机存储中有多少字节
    Java 第十一届 蓝桥杯 省模拟赛 计算机存储中有多少字节
    Java 第十一届 蓝桥杯 省模拟赛 合法括号序列
    Java 第十一届 蓝桥杯 省模拟赛 合法括号序列
    Java 第十一届 蓝桥杯 省模拟赛 合法括号序列
    Java 第十一届 蓝桥杯 省模拟赛 无向连通图最少包含多少条边
    Java 第十一届 蓝桥杯 省模拟赛 无向连通图最少包含多少条边
  • 原文地址:https://www.cnblogs.com/cloudapps/p/6045750.html
Copyright © 2011-2022 走看看