{"id":19,"date":"2015-05-04T15:08:49","date_gmt":"2015-05-04T21:08:49","guid":{"rendered":"http:\/\/peterod.azurewebsites.net\/?p=19"},"modified":"2015-05-04T15:08:49","modified_gmt":"2015-05-04T21:08:49","slug":"run-iometer-on-an-azure-linux-vm-with-azure-premium-storage","status":"publish","type":"post","link":"http:\/\/www.perktime.org\/index.php\/2015\/05\/04\/run-iometer-on-an-azure-linux-vm-with-azure-premium-storage\/","title":{"rendered":"Run IOMeter on an Azure Linux VM with Azure Premium Storage"},"content":{"rendered":"<p>I had to do some IO testing for a customer with Azure Premium Storage. I was able to get some numbers using this command:<br \/>\ndd if=\/dev\/zero of=test.dat bs=1M count=10000;rm \u2013f test.dat<br \/>\nHowever, wouldn\u2019t it be cool if we could use the same IOmeter as Windows users in Linux? Well, it turns out this is actually possible!<br \/>\nI first created a 4 disk RAID 0 array on my DS3 size VM using these instructions: <a title=\"http:\/\/azure.microsoft.com\/en-us\/documentation\/articles\/virtual-machines-linux-configure-raid\/\" href=\"http:\/\/azure.microsoft.com\/en-us\/documentation\/articles\/virtual-machines-linux-configure-raid\/\">http:\/\/azure.microsoft.com\/en-us\/documentation\/articles\/virtual-machines-linux-configure-raid\/<\/a><br \/>\nOnce I had my RAID array, I then followed the instructions to add GNOME to my Linux VM: <a title=\"http:\/\/blogs.msdn.com\/b\/cloud_solution_architect\/archive\/2015\/05\/02\/remote-desktop-to-your-linux-azure-virtual-machine.aspx\" href=\"http:\/\/blogs.msdn.com\/b\/cloud_solution_architect\/archive\/2015\/05\/02\/remote-desktop-to-your-linux-azure-virtual-machine.aspx\">http:\/\/blogs.msdn.com\/b\/cloud_solution_architect\/archive\/2015\/05\/02\/remote-desktop-to-your-linux-azure-virtual-machine.aspx<\/a><br \/>\nI used CentOS 7.1 from the Azure VM Gallery. Unfortunately, it turns out that you can\u2019t just sudo yum install wine to get Windows application support in Linux because IOMeter is a 32-bit Win32 application and CentOS 7.1 only supports 64-bit Windows apps out of the box.<br \/>\nThis Wiki article talks about how to install IOMeter on Linux: <a title=\"http:\/\/www.linuxintro.org\/wiki\/Iometer\" href=\"http:\/\/www.linuxintro.org\/wiki\/Iometer\">http:\/\/www.linuxintro.org\/wiki\/Iometer<\/a>. However, there are a few issues with it. Here\u2019s what I did:<br \/>\nwget <a title=\"http:\/\/downloads.sourceforge.net\/project\/iometer\/iometer-stable\/2006-07-27\/iometer-2006_07_27.linux.i386-bin.tgz\" href=\"http:\/\/downloads.sourceforge.net\/project\/iometer\/iometer-stable\/2006-07-27\/iometer-2006_07_27.linux.i386-bin.tgz\">http:\/\/downloads.sourceforge.net\/project\/iometer\/iometer-stable\/2006-07-27\/iometer-2006_07_27.linux.i386-bin.tgz<\/a><br \/>\ntar xvzf iometer-2006_07_27.linux.i386-bin.tgz<br \/>\ncd iometer-2006_07_27.linux.i386-bin<br \/>\ncd src<br \/>\nchmod +x dynamo<br \/>\nsudo yum install ld-linux.so.2<br \/>\nsudo yum install libstdc++.so.6<br \/>\nsudo .\/dynamo<br \/>\nThis guide talks about how to install Wine on CentOS 6 (also works on 7.1): <a title=\"http:\/\/stackoverflow.com\/questions\/20971960\/the-right-way-to-install-wine-on-centos-6-64bit\" href=\"http:\/\/stackoverflow.com\/questions\/20971960\/the-right-way-to-install-wine-on-centos-6-64bit\">http:\/\/stackoverflow.com\/questions\/20971960\/the-right-way-to-install-wine-on-centos-6-64bit<\/a>. Here\u2019s what I did:<br \/>\n1) Open another terminal window<br \/>\n2) Type this in the command window to download the Wine source:<br \/>\nwget <a href=\"http:\/\/downloads.sourceforge.net\/project\/wine\/Source\/wine-1.7.42.tar.bz2\">http:\/\/downloads.sourceforge.net\/project\/wine\/Source\/wine-1.7.42.tar.bz2<\/a><br \/>\n3) Type these commands in the terminal window:<br \/>\n<code># sudo yum -y groupinstall 'Development Tools' <\/code><br \/>\n<code># sudo yum -y install libX11-devel freetype-devel <\/code><br \/>\n<code># sudo yum install alsa-lib-devel.i686 libsndfile-devel.i686 readline-devel.i686 glib2.i686 glibc-devel.i686 libgcc.i686 libstdc++-devel.i686 pulseaudio-libs-devel.i686 cmake portaudio-devel.i686 openal-soft-devel.i686 audiofile-devel.i686 freeglut-devel.i686 lcms-devel.i686 libieee1284-devel.i686 openldap-devel.i686 unixODBC-devel.i686 sane-backends-devel.i686 fontforge libgphoto2-devel.i686 isdn4k-utils-devel.i686 mesa-libGL-devel.i686 mesa-libGLU-devel.i686 libXxf86dga-devel.i686 libXxf86vm-devel.i686 giflib-devel.i686 cups-devel.i686 gsm-devel.i686 libv4l-devel.i686 fontpackages-devel ImageMagick-devel.i686 openal-soft-devel.i686 libX11-devel.i686 docbook-utils-pdf libtextcat tex-cm-lgc <\/code><br \/>\n<code># sudo yum install alsa-lib-devel audiofile-devel.i686 audiofile-devel cups-devel.i686 cups-devel dbus-devel.i686 dbus-devel fontconfig-devel.i686 fontconfig-devel freetype.i686 freetype-devel.i686 freetype-devel giflib-devel.i686 giflib-devel lcms-devel.i686 lcms-devel libICE-devel.i686 libICE-devel libjpeg-turbo-devel.i686 libjpeg-turbo-devel libpng-devel.i686 libpng-devel libSM-devel.i686 libSM-devel libusb-devel.i686 libusb-devel libX11-devel.i686 libX11-devel libXau-devel.i686 libXau-devel libXcomposite-devel.i686 libXcomposite-devel libXcursor-devel.i686 libXcursor-devel libXext-devel.i686 libXext-devel libXi-devel.i686 libXi-devel libXinerama-devel.i686 libXinerama-devel libxml2-devel.i686 libxml2-devel libXrandr-devel.i686 libXrandr-devel libXrender-devel.i686 libXrender-devel libxslt-devel.i686 libxslt-devel libXt-devel.i686 libXt-devel libXv-devel.i686 libXv-devel libXxf86vm-devel.i686 libXxf86vm-devel mesa-libGL-devel.i686 mesa-libGL-devel mesa-libGLU-devel.i686 mesa-libGLU-devel ncurses-devel.i686 ncurses-devel openldap-devel.i686 openldap-devel openssl-devel.i686 openssl-devel zlib-devel.i686 pkgconfig sane-backends-devel.i686 sane-backends-devel xorg-x11-proto-devel glibc-devel.i686 prelink fontforge flex bison libstdc++-devel.i686 pulseaudio-libs-devel.i686 gnutls-devel.i686 libgphoto2-devel.i686 openal-soft-devel openal-soft-devel.i686 isdn4k-utils-devel.i686 gsm-devel.i686 samba-winbind libv4l-devel.i686 cups-devel.i686 libtiff-devel.i686 gstreamer-devel.i686 gstreamer-plugins-base-devel.i686 gettext-devel.i686 libmpg123-devel.i686<\/code><br \/>\n$mkdir wine64<br \/>\n$ cd wine64<br \/>\n$ ..\/wine-1.7.42\/configure &#8211;enable-win64<br \/>\n$ make<br \/>\n$ cd ..<br \/>\n$ mkdir wine32<br \/>\n$ cd wine32<br \/>\n$ ..\/wine-1.7.42\/configure &#8211;with-wine64=..\/wine64<br \/>\n$ make<br \/>\n# sudo make install<br \/>\n# cd ..\/wine64<br \/>\n# sudo make install<br \/>\n$cd wine32<br \/>\n$wget <a href=\"http:\/\/downloads.sourceforge.net\/project\/iometer\/iometer-stable\/2006-07-27\/iometer-2006.07.27.win32.i386-setup.exe\">http:\/\/downloads.sourceforge.net\/project\/iometer\/iometer-stable\/2006-07-27\/iometer-2006.07.27.win32.i386-setup.exe<\/a><br \/>\n$wine iometer-2006.07.27.win32.i386-setup.exe<br \/>\n$ cd \u201c.wine\/drive_c\/Program Files (x86)\/Iometer.org\/Iometer 2006.07.27&#8243;<br \/>\n$sudo Iometer.exe<br \/>\nOnce IOMeter launched, I selected my RAID disk for each of the workers:<br \/>\n<a href=\"https:\/\/msdnshared.blob.core.windows.net\/media\/MSDNBlogsFS\/prod.evol.blogs.msdn.com\/CommunityServer.Blogs.Components.WeblogFiles\/00\/00\/01\/68\/09\/metablogapi\/6747.image_14BC46CD.png\"><img decoding=\"async\" loading=\"lazy\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" title=\"image\" src=\"https:\/\/msdnshared.blob.core.windows.net\/media\/MSDNBlogsFS\/prod.evol.blogs.msdn.com\/CommunityServer.Blogs.Components.WeblogFiles\/00\/00\/01\/68\/09\/metablogapi\/6114.image_thumb_24CB1584.png\" alt=\"image\" width=\"543\" height=\"341\" border=\"0\" \/><\/a><br \/>\nWith a 4K Read Access Specification for each worker thread: (<strong>Note: <\/strong>Host cache for each data disk was set to none; these are not official benchmarks and are specific to my environment)<br \/>\n<a href=\"https:\/\/msdnshared.blob.core.windows.net\/media\/MSDNBlogsFS\/prod.evol.blogs.msdn.com\/CommunityServer.Blogs.Components.WeblogFiles\/00\/00\/01\/68\/09\/metablogapi\/3566.image_27079E40.png\"><img decoding=\"async\" loading=\"lazy\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" title=\"image\" src=\"https:\/\/msdnshared.blob.core.windows.net\/media\/MSDNBlogsFS\/prod.evol.blogs.msdn.com\/CommunityServer.Blogs.Components.WeblogFiles\/00\/00\/01\/68\/09\/metablogapi\/0434.image_thumb_1B71E101.png\" alt=\"image\" width=\"549\" height=\"340\" border=\"0\" \/><\/a><br \/>\nThis is actually a littler better than the DS3 VM Specification:<br \/>\n<a href=\"https:\/\/msdnshared.blob.core.windows.net\/media\/MSDNBlogsFS\/prod.evol.blogs.msdn.com\/CommunityServer.Blogs.Components.WeblogFiles\/00\/00\/01\/68\/09\/metablogapi\/5545.image_6FC11704.png\"><img decoding=\"async\" loading=\"lazy\" style=\"border-width: 0px; margin: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" title=\"image\" src=\"https:\/\/msdnshared.blob.core.windows.net\/media\/MSDNBlogsFS\/prod.evol.blogs.msdn.com\/CommunityServer.Blogs.Components.WeblogFiles\/00\/00\/01\/68\/09\/metablogapi\/0383.image_thumb_1D4236C8.png\" alt=\"image\" width=\"186\" height=\"244\" border=\"0\" \/><\/a><br \/>\nThe same test on a scaled up DS 13 with the same 4 disk RAID 0 array:<br \/>\n<a href=\"https:\/\/msdnshared.blob.core.windows.net\/media\/MSDNBlogsFS\/prod.evol.blogs.msdn.com\/CommunityServer.Blogs.Components.WeblogFiles\/00\/00\/01\/68\/09\/metablogapi\/7120.image_4781ECAB.png\"><img decoding=\"async\" loading=\"lazy\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" title=\"image\" src=\"https:\/\/msdnshared.blob.core.windows.net\/media\/MSDNBlogsFS\/prod.evol.blogs.msdn.com\/CommunityServer.Blogs.Components.WeblogFiles\/00\/00\/01\/68\/09\/metablogapi\/3438.image_thumb_252CE7E3.png\" alt=\"image\" width=\"567\" height=\"356\" border=\"0\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I had to do some IO testing for a customer with Azure Premium Storage. I was able to get some numbers using this command: dd if=\/dev\/zero of=test.dat bs=1M count=10000;rm \u2013f test.dat However, wouldn\u2019t it be cool if we could use the same IOmeter as Windows users in Linux? Well, it turns out this is actually &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.perktime.org\/index.php\/2015\/05\/04\/run-iometer-on-an-azure-linux-vm-with-azure-premium-storage\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Run IOMeter on an Azure Linux VM with Azure Premium Storage&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/www.perktime.org\/index.php\/wp-json\/wp\/v2\/posts\/19"}],"collection":[{"href":"http:\/\/www.perktime.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.perktime.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.perktime.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.perktime.org\/index.php\/wp-json\/wp\/v2\/comments?post=19"}],"version-history":[{"count":0,"href":"http:\/\/www.perktime.org\/index.php\/wp-json\/wp\/v2\/posts\/19\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.perktime.org\/index.php\/wp-json\/wp\/v2\/media?parent=19"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.perktime.org\/index.php\/wp-json\/wp\/v2\/categories?post=19"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.perktime.org\/index.php\/wp-json\/wp\/v2\/tags?post=19"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}