After a customer has established a virtual machine in Azure, there is usually a need for disk performance testing.
for Base Centos Linux on Azure The virtual machine environment performs a disk performance test.
in theAzureEstablished inLinuxafter a virtual machine, you can see two disksSDAand theSDB, whereSDAis the system disk,SDBas a temporary disk. The temporary disk is the local storage of the physical server where the virtual machine resides,Windows Azurewhen performing planned or unplanned maintenance, virtual opportunities are moved to other host servers, resulting in the loss of the contents of the temporary disk. In addition to the system disk and the temporary disk,Windows Azureusers are also allowed to mount data disks. ForLinuxvirtual machine, system disk only30Gspace, it is necessary to mount the data disk to store the application data in the actual application scenario. In Azure Linuxin a virtual machine, forA7type of virtual machine allows up to mount -data disks, providing16TBstorage space and these disks are supported byRaidmechanism to get a better read/write performance.
1. Install the disk test tool
Fio is a common disk IOPS test Tools. First install the Fioin Centos:
Yum Install gcc Libaio-devel–y
Download Fio and install:
Wgethttp://brick.kernel.dk/snaps/fio-2.1.6.1.tar.gz
TAR-ZXVF fio-2.1.6.1.tar.gz
CD fio-2.1.6.1
make&& make Install
2. View Current disk information
Fdisk-l
You can see the current system disk and the temporary disk
3. Attachment Data Disk
in the Windows Azure the management Portal , add a data disk to the test virtual machine.
Enter the disk size and view the disk information after the attach succeeds:
Sudo grep scsi/var/log/messages
To perform a partition operation on a new disk:
sudo fdisk/dev/sdc
After partitioning is complete, create the file system:
sudo mkfs-t EXT4/DEV/SDC1
To create a mount point
sudo mkdir/datadrive
sudo mount/dev/sdc1/datadrive
Auto mount for next reboot, need to be modified /etc/fstab file
Execution sudo-i Blkio gets the new disk's UUID , and add to Fstab file
' Uuid=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e/datadrive ext4 defaults 1 2 '
4. perform the test
Perform a random write test on the system disk
Fio-filename=/dev/sda1-direct=1-iodepth1-thread-rw=randwrite-ioengine=psync-bs=16k-size=20g-numjobs=30-runtime =1000-group_reporting-name=test
of the test results ioPS to be 478, with the Windows Azure per disk 500IOPS more consistent.
Next, random and random read and write tests are performed:
Random Read test
Fio-filename=/dev/sda1-direct=1-iodepth1-thread-rw=randread-ioengine=psync-bs=16k-size=2g-numjobs=10-runtime= 1000-group_reporting-name=test
Random Read and write test
fio-filename=/dev/sda1-direct=1-iodepth1-thread-rw=randrw-rwmixread=70-ioengine=psync-bs=16k-size=20g-numjobs= 30-runtime=100-group_reporting-name=test1
use the above method to the data disk /DEV/SDC1 to test.
Parameter description:
FILENAME=/DEV/SDB1 test file name, usually select the disk to be tested Data directory.
direct=1 the test process bypasses the machine's own Buffer . Make the test results more realistic.
Rw=randwrite test the random write I/O
RW=RANDRW test random Write and read I/O
bs=16k One-time io The block file size is 16k
bsrange=512-2048 ditto, size range of the data block
size=5g The test file size for this time is 5g , with each 4k of the io to test.
numjobs=30 this time the test thread is .
runtime=1000 test Time is + seconds, if not written, will always 5g File Points 4k each time you finish writing.
Ioengine=psyncio engine Use Pync Way
rwmixwrite=30 in mixed read and write mode, the write-up takes 30%
group_reporting For information about displaying the results, summarize each process.
In addition
lockmem=1g Use only 1g memory for testing.
zero_buffers with 0 Initializing the system Buffer .
nrfiles=8 number of files generated per process
Deployment RAID the idea of special in the Windows Azure created on the Linux VMs , in VMS on Deployment MySQL and the ability to get higher performance disk reads / Write access, better data security, support for more concurrent access is better
for Azure on the Linux virtual machines, you can use the following steps to create RAID :
1. attach multiple data disks to a virtual machine.
The number of data disks that can be attached to different sizes of virtual machines is not the same: 8 of Nuclear XL and the A7 you can add up to - Block 1T data disks, that is, each virtual machine can provide a maximum of 16TB .
This work can be done in Azure Management Portal (Management Portal) come on, you can do it. PowerShell scripts, etc. to add.
It is important to note that for data disks, the host cache default preference is " No " , so that the application of the database, it is more advantageous to ensure that the data is not lost.
2. in a Linux virtual machine, using root privileges, perform the following create RAID, File system and Disk installation commands:
Mdadm--create/dev/md0--level=0--RAID-DEVICES=4/DEV/SDC/DEV/SDD/DEV/SDE/DEV/SDF
Mkfs.ext3/dev/md0
Mount/dev/md0/raid0
For example, using 4 block data disks, deploying RAID-0 .
of different RAID level, which satisfies the user's ability to read on disk / write performance, data validation and other requirements.
Linux virtual machines on Azure use FIO test disks, and additional data disks to build raid to increase IOPS