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

  • 相关阅读:
    eclipse 直接向cloudfoundry部署应用
    jenkins slave节点服务 之 标签
    cloud foundry 中 url map/unmap
    公司Oracle生产库某用户中毒【AfterConnect.sql】
    怎样在 Linux 上查看某个端口的相关信息?
    怎样修改 VS Code 主题?
    怎样安装并编译TypeScript?
    怎样坚持写博客?
    第一个shell脚本
    python处理excel之读:xlrd模块
  • 原文地址:https://www.cnblogs.com/cloudapps/p/6045750.html
Copyright © 2020-2023  润新知