{"id":12464,"date":"2019-07-10T07:18:38","date_gmt":"2019-07-10T05:18:38","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/"},"modified":"2019-07-10T07:18:38","modified_gmt":"2019-07-10T05:18:38","slug":"storage-performance-benchmarking-with-fio","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/","title":{"rendered":"Storage performance benchmarking with FIO"},"content":{"rendered":"<p>Learn how to do storage performance benchmarks for your database system with the open source tool FIO.<br \/>\n<!--more--><\/p>\n<h2>Before you read<\/h2>\n<p>This is a series of different blog posts:<br \/>\nIn the first blog post, I talk about <a href=\"https:\/\/www.dbi-services.com\/blog\/what-you-should-measure-on-your-database-storage-and-why\/\">\u201cWhat you should measure on your database storage and why\u201d<\/a>.<br \/>\nThe second blog post will talk about <a href=\"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/\">\u201cHow to do database storage performance benchmark with FIO\u201d<\/a> (aka this one here).<br \/>\nThe third blog post will show <a href=\"https:\/\/www.dbi-services.com\/blog\/huawei-dorado-6000-v3-benchmark\/\">\u201cHow good is the new HUAWEI Dorada 6000V3 All-Flash System for databases\u201d<\/a> measured with the methods and tools from post one and two.<\/p>\n<p>The first two posts give you the theory to understand all the graphics and numbers I will show in the third blog post.<\/p>\n<h3> Install FIO <\/h3>\n<p>Many distributions have FIO in their repositories. On a Fedora\/RHEL system, you can just use<br \/>\n<code>yum install fio<\/code><br \/>\nand you are ready to go.<\/p>\n<h2>Start a benchmark with FIO<\/h2>\n<p>There are mainly two different ways to start a benchmark with FIO<\/p>\n<h3>Command line<\/h3>\n<p>Starting from the command line is the way to go when you just wanna have a quick feeling about the system performance.<br \/>\nI prefer to do more complex setups with job files. It is easier to create and debug.<br \/>\nHere a small example how to start a benchmark direct from the command line:<br \/>\n<code>fio --filename=\/dev\/xvdf --direct=1 --rw=randwrite --refill_buffers --norandommap \\<br \/>\n--randrepeat=0 --ioengine=libaio --bs=128k --rate_iops=1280  --iodepth=16 --numjobs=1 \\<br \/>\n--time_based --runtime=86400 --group_reporting \u2013-name=benchtest<\/code><\/p>\n<h3>FIO Job files<\/h3>\n<p>An FIO job file holds a [GLOBAL] section and one or many [JOBS] sections. This section holds the shared parameters which are used for all the jobs when you do not override them in the job sections.<br \/>\nHere is what a typical GLOBAL section from my files looks like:<br \/>\n<code>[global]<br \/>\nioengine=libaio &emsp; &emsp;#ASYNCH IO<br \/>\ninvalidate=1&emsp; &emsp; &emsp; &emsp;#Invalidate buffer-cache for the file prior to starting I\/O.<br \/>\n&emsp; &emsp; &emsp; &emsp; &emsp; &emsp;  &emsp; &emsp; &emsp; &emsp;#Should not be necessary because of direct IO but just to be sure ;-)<br \/>\nramp_time=5 &nbsp; &emsp; &emsp; &emsp;#First 5 seconds do not count to the result.<br \/>\niodepth=1 &emsp; &emsp; &emsp; &emsp; &emsp;#Number of I\/O units to keep in flight against the file<br \/>\nruntime=60 &emsp; &emsp; &emsp; &emsp; #Runtime for every test<br \/>\ntime_based &emsp; &emsp; &emsp; &emsp; #If given, run for the specified runtime duration even if the files are completely read or written.<br \/>\n&emsp; &emsp; &emsp; &emsp; &emsp; &emsp;  &emsp; &emsp; &emsp; &emsp;#The same workload will be repeated as many times as runtimeallows.<br \/>\ndirect=1 &emsp; &emsp; &emsp; &emsp; &emsp; #Use non buffered I\/O.<br \/>\ngroup_reporting=1 &emsp;#If set, display per-group reports instead of per-job when numjobs is specified.<br \/>\nper_job_logs=0 &emsp; &emsp; #If set, this generates bw\/clat\/iops log with per file private filenames.<br \/>\n&emsp; &emsp; &emsp; &emsp; &emsp; &emsp;  &emsp; &emsp; &emsp; &emsp;#If not set, jobs with identical names will share the log filename.<br \/>\nbs=8k &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp;#Block size<br \/>\nrw=randread &emsp; &emsp; &emsp; &emsp;#I\/O Type<br \/>\n<\/code><\/p>\n<p>Now that we have defined the basics, we can start with the JOBS section:<br \/>\nExample of single device test with different parallelity:<\/p>\n<p><code><br \/>\n#<br \/>\n#Subtest: 1<br \/>\n#Total devices = 1<br \/>\n#Parallelity = 1<br \/>\n#Number of processes = devices*parallelity ==&gt; 1*1 ==&gt; 1<br \/>\n#<br \/>\n[test1-subtest1-blocksize8k-threads1-device1of1] &emsp; &emsp; #Parallelity 1, Number of device: 1\/1<br \/>\n stonewall &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp;&emsp; &emsp; &emsp; &emsp;&emsp; &emsp; &emsp; &emsp; #run this test until the next [JOB SECTION] with the \u201cstonewall\u201d keyword<br \/>\n filename=\/dev\/mapper\/device01 &emsp; &emsp; &emsp; &emsp; &emsp; #Device to use<br \/>\n numjobs=1&emsp; &emsp; &emsp; &emsp; &emsp;&emsp; &emsp; &emsp; &emsp;&emsp; &emsp; &emsp; &emsp;&emsp; &emsp; &emsp; &emsp; #Create the specified number of clones of this job.<br \/>\n&emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp;  #Each clone of job is spawned as an independent thread or process.<br \/>\n&emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; #May be used to setup a larger number of threads\/processes doing the same thing.<br \/>\n&emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; #Each thread is reported separately: to see statistics for all clones as a whole<br \/>\n&emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; #use group_reporting in conjunction with new_group.<br \/>\n#<br \/>\n#Subtest: 5<br \/>\n#Total devices = 1<br \/>\n#Parallelity = 5<br \/>\n#Number of processes = devices*parallelity ==&gt; 1*5 ==&gt; 5<br \/>\n#<br \/>\n[test1-subtest5-blocksize8k-threads5-device1of1] &emsp; &emsp; #Parallelity 5, Number of device: 1\/1<br \/>\n stonewall<br \/>\n numjobs=5<br \/>\n filename=\/dev\/mapper\/device01<br \/>\n<\/code><\/p>\n<p>Example of multi device test with different parallelity:<br \/>\n<code><br \/>\n#Subtest: 1<br \/>\n#Total devices = 4<br \/>\n#Parallelity = 1<br \/>\n#Number of processes = devices*parallelity ==&gt; 4<br \/>\n#<br \/>\n[test1-subtest1-blocksize8k-threads1-device1of4] &emsp; &emsp; # Parallelity 1, Number of device 1\/4<br \/>\n stonewall<br \/>\n numjobs=1<br \/>\n filename=\/dev\/mapper\/device01<br \/>\n[test1-subtest1-blocksize8k-threads1-device2of4] &emsp; &emsp; # Parallelity 1, Number of device 2\/4<br \/>\n numjobs=1<br \/>\n filename=\/dev\/mapper\/device02<br \/>\n[test1-subtest1-blocksize8k-threads1-device3of4] &emsp; &emsp; # Parallelity 1, Number of device 3\/4<br \/>\n numjobs=1<br \/>\n filename=\/dev\/mapper\/device03<br \/>\n[test1-subtest1-blocksize8k-threads1-device4of4] &emsp; &emsp; # Parallelity 1, Number of device 4\/4<br \/>\n numjobs=1<br \/>\n filename=\/dev\/mapper\/device04<br \/>\n#<br \/>\n#Subtest: 5<br \/>\n#Total devices = 3<br \/>\n#Parallelity = 5<br \/>\n#Number of processes = devices*parallelity ==&gt; 5<br \/>\n#<br \/>\n[test1-subtest5-blocksize8k-threads5-device1of3] &emsp; &emsp; # Parallelity 5, Number of device 1\/3<br \/>\n stonewall<br \/>\n numjobs=5<br \/>\n filename=\/dev\/mapper\/device01<br \/>\n[test1-subtest5-blocksize8k-threads5-device2of3] &emsp; &emsp; # Parallelity 5, Number of device 2\/3<br \/>\n filename=\/dev\/mapper\/device02<br \/>\n[test1-subtest5-blocksize8k-threads5-device3of3] &emsp; &emsp; # Parallelity 5, Number of device 3\/3<br \/>\n filename=\/dev\/mapper\/device03<br \/>\n<\/code><\/p>\n<p>You can download a compelete set of FIO job files for running the described testcase <a href=\"https:\/\/github.com\/Michael-Wirz\/Huawei-Dorado6000V3-Benchmark\/tree\/master\/fio_job_files\"> on my github repository<\/a>.<br \/>\n<img decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/fio_job_files_list.png\" alt=\"Job files list\" \/><\/p>\n<p>To run a complete test with my job files you have to replace the devices. There is a small shell script to replace the devices called &#8220;replaceDevices.sh&#8221;<br \/>\n<code><br \/>\n#!\/bin\/bash<br \/>\n######################################################<br \/>\n# dbi services michael.wirz@dbi-services.com<br \/>\n# Vesion: 1.0<br \/>\n#<br \/>\n# usage: .\/replaceDevices.sh<br \/>\n#<br \/>\n# todo before use: modify newname01-newname10 with<br \/>\n#                  the name of your devices<br \/>\n######################################################<br \/>\nsed -i -e 's_\/dev\/mapper\/device01_\/dev\/mapper\/newname01_g' *.fio<br \/>\nsed -i -e 's_\/dev\/mapper\/device02_\/dev\/mapper\/newname02_g' *.fio<br \/>\nsed -i -e 's_\/dev\/mapper\/device03_\/dev\/mapper\/newname03_g' *.fio<br \/>\nsed -i -e 's_\/dev\/mapper\/device04_\/dev\/mapper\/newname04_g' *.fio<br \/>\nsed -i -e 's_\/dev\/mapper\/device05_\/dev\/mapper\/newname05_g' *.fio<br \/>\nsed -i -e 's_\/dev\/mapper\/device06_\/dev\/mapper\/newname06_g' *.fio<br \/>\nsed -i -e 's_\/dev\/mapper\/device07_\/dev\/mapper\/newname07_g' *.fio<br \/>\nsed -i -e 's_\/dev\/mapper\/device08_\/dev\/mapper\/newname08_g' *.fio<br \/>\nsed -i -e 's_\/dev\/mapper\/device09_\/dev\/mapper\/newname09_g' *.fio<br \/>\nsed -i -e 's_\/dev\/mapper\/device10_\/dev\/mapper\/newname10_g' *.fio<br \/>\n<\/code><\/p>\n<p><b>!!!After you replaced the filenames you should double check, that you have the correct devices, because when you start the test, all data on these devices is lost!!! <\/b><br \/>\n<code><br \/>\ngrep filename *.fio|awk -F '=' '{print $2}'|sort -u<br \/>\n\/dev\/mapper\/device01<br \/>\n\/dev\/mapper\/device02<br \/>\n\/dev\/mapper\/device03<br \/>\n\/dev\/mapper\/device04<br \/>\n\/dev\/mapper\/device05<br \/>\n\/dev\/mapper\/device06<br \/>\n\/dev\/mapper\/device07<br \/>\n\/dev\/mapper\/device08<br \/>\n\/dev\/mapper\/device09<br \/>\n\/dev\/mapper\/device10<br \/>\n<\/code><\/p>\n<p>To start the test run:<br \/>\n<code><br \/>\nfor job_file in $(ls *.fio)<br \/>\ndo<br \/>\n&emsp; &emsp; fio ${job_file} --output \/tmp\/bench\/${job_file%.fio}.txt<br \/>\ndone<br \/>\n<\/code><\/p>\n<h2>Multiple Servers<\/h2>\n<p>FIO supports to do tests on multiple servers in parallel which is very nice! Often a single server can not max out a modern all-flash storage system, this could be of bandwidth problems (e.g. not enough adapters per server) or one server is just not powerful enough.<\/p>\n<p>You need to start FIO in server mode on all machines you wanna test:<br \/>\n<code> fio --server<\/code><\/p>\n<p>Then you start the test with<br \/>\n<code>fio --client=serverA,serverB,serverC \/path\/to\/fio_jobs.file<\/code><\/p>\n<p>Should you have a lot of servers you can put them in a file and use this as input for your fio command:<\/p>\n<p><code><br \/>\ncat fio_hosts.list<br \/>\nserverA<br \/>\nserverB<br \/>\nserverC<br \/>\nserverD<br \/>\n...<br \/>\n<\/code><\/p>\n<p><code>fio --client=fio_hosts.list \/path\/to\/fio_jobs.file<\/code><\/p>\n<h2>Results<\/h2>\n<p>The output files are not really human readable, so you can go with my getResults.sh script which formats you the output ready to copy\/past to excel:<\/p>\n<p><code><br \/>\ncd \/home\/user\/Huawei-Dorado6000V3-Benchmark\/TESTRUN5-HOST1_3-COMPR\/fio-benchmark-output<br \/>\nbash ..\/..\/getResults.sh<br \/>\n###########################################<br \/>\nSTART :Typerandread-BS8k<br \/>\nFUNCTION: getResults<br \/>\n###########################################<br \/>\nTyperandread-BS8k<br \/>\nLATENCY IN MS<br \/>\n.399 .824 1.664 2.500 3.332 5.022 6.660 8.316 12.464 16.683<br \/>\n.392 .826 1.667 2.495 3.331 4.995 6.680 8.344 12.474 16.637<br \/>\n.397 .828 1.661 2.499 3.330 4.992 6.656 8.329 12.505 16.656<br \/>\n.391 .827 1.663 2.493 3.329 5.002 6.653 8.330 12.482 16.656<br \/>\n.398 .827 1.663 2.497 3.327 5.005 6.660 8.327 12.480 16.683<br \/>\n.403 .828 1.662 2.495 3.326 4.995 6.663 8.330 12.503 16.688<br \/>\n.405 .825 1.662 2.496 3.325 4.997 6.648 8.284 12.369 16.444<br \/>\n.417 .825 1.661 2.497 3.326 4.996 6.640 8.256 12.303 16.441<br \/>\n.401 .826 1.661 2.500 3.327 4.999 6.623 8.273 12.300 16.438<br \/>\n.404 .826 1.661 2.500 3.327 4.993 6.637 8.261 12.383 16.495<br \/>\nIOPS<br \/>\n 2469 6009 5989 5986 5991 5966 5998 6006 6012 5989<br \/>\n 5004 12000 11000 11000 11000 11000 11000 11000 12000 12000<br \/>\n 7407 17000 18000 17000 17000 18000 18000 17000 17000 17000<br \/>\n 10000 23000 23000 24000 23000 23000 24000 23000 24000 23000<br \/>\n 12300 29000 29000 29000 30000 29900 29000 29000 30000 29900<br \/>\n 14600 35900 35000 35000 36000 35000 35000 35000 35000 35900<br \/>\n 16000 42100 41000 41000 42000 41000 42100 42200 42400 42500<br \/>\n 16500 42100 41000 41900 42000 41000 42100 42400 42600 42500<br \/>\n 19600 48000 47000 47900 47000 47900 48300 48300 48700 48600<br \/>\n 21900 54000 53000 53900 53000 53000 54200 54400 54400 54400<br \/>\n###########################################<br \/>\nSTART :Typerandwrite-BS8k<br \/>\nFUNCTION: getResults<br \/>\n###########################################<br \/>\nTyperandwrite-BS8k<br \/>\nLATENCY IN MS<br \/>\n.461 .826 1.662 2.501 3.332 5.022 6.660 8.317 12.467 16.676<br \/>\n.457 .826 1.668 2.495 3.330 5.002 6.681 8.346 12.473 16.635<br \/>\n.449 .826 1.662 2.499 3.327 4.991 6.664 8.326 12.497 16.649<br \/>\n.456 .828 1.661 2.496 3.331 4.997 6.663 8.329 12.477 16.651<br \/>\n.460 .827 1.663 2.495 3.327 5.001 6.660 8.333 12.484 16.676<br \/>\n.463 .830 1.663 2.495 3.325 4.997 6.661 8.330 12.503 16.684<br \/>\n.474 .827 1.661 2.495 3.324 4.999 6.665 8.334 12.451 16.580<br \/>\n.469 .828 1.661 2.497 3.324 5.002 6.668 8.322 12.489 16.594<br \/>\n.471 .827 1.660 2.499 3.327 4.998 6.663 8.335 12.481 16.609<br \/>\n.476 .825 1.675 2.500 3.328 4.992 6.675 8.334 12.480 16.623<br \/>\nIOPS<br \/>\n 2137 5997 5990 5985 5991 5966 5998 6005 6010 5992<br \/>\n 4306 12000 11900 11000 11000 11000 11000 11000 12000 12000<br \/>\n 6571 17000 17000 17000 18000 18000 17000 17000 17000 18000<br \/>\n 8635 23900 23000 23000 23000 23000 23000 23000 24000 24000<br \/>\n 10700 29000 29000 29000 30000 29900 29000 29000 30000 29000<br \/>\n 12800 35900 35000 35000 36000 35000 35000 35000 35000 35900<br \/>\n 14500 41000 41000 41000 42000 41000 41000 41000 42100 42200<br \/>\n 14700 41000 41000 41900 42000 41900 41900 42000 42000 42100<br \/>\n 16700 48000 48000 47900 47000 47000 47000 47900 47000 48100<br \/>\n 18600 54100 53500 53900 53000 54000 53900 53900 53000 54100<br \/>\n...<br \/>\n<\/code><\/p>\n<p>Copy &amp; paste the result into the <a href=\"https:\/\/github.com\/Michael-Wirz\/Huawei-Dorado6000V3-Benchmark\/blob\/master\/Summary_Huawei.xlsx\">excel template <\/a> and you can have an easy over view of the results:<br \/>\n<img decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/fio_result_excel.jpg\" alt=\"fio summary excel\" \/><\/p>\n<h2>Troubleshooting<\/h2>\n<p>If you&#8217;ve got a libaio error you have to install the libaio libraries:<\/p>\n<p><code>fio: engine libaio not loadable<br \/>\nfio: failed to load engine<br \/>\nfio: file:ioengines.c:89, func=dlopen, error=libaio: cannot open shared object file: No such file or directory<\/code><\/p>\n<p><code>yum install libaio-devel<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Learn how to do storage performance benchmarks for your database system with the open source tool FIO.<\/p>\n","protected":false},"author":27,"featured_media":12465,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[],"type_dbi":[],"class_list":["post-12464","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Storage performance benchmarking with FIO - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Storage performance benchmarking with FIO\" \/>\n<meta property=\"og:description\" content=\"Learn how to do storage performance benchmarks for your database system with the open source tool FIO.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-10T05:18:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/fio_job_files_list.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1916\" \/>\n\t<meta property=\"og:image:height\" content=\"604\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"Storage performance benchmarking with FIO\",\"datePublished\":\"2019-07-10T05:18:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/\"},\"wordCount\":538,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/fio_job_files_list.png\",\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/\",\"name\":\"Storage performance benchmarking with FIO - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/fio_job_files_list.png\",\"datePublished\":\"2019-07-10T05:18:38+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/fio_job_files_list.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/fio_job_files_list.png\",\"width\":1916,\"height\":604},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Storage performance benchmarking with FIO\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"caption\":\"Oracle Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Storage performance benchmarking with FIO - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/","og_locale":"en_US","og_type":"article","og_title":"Storage performance benchmarking with FIO","og_description":"Learn how to do storage performance benchmarks for your database system with the open source tool FIO.","og_url":"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/","og_site_name":"dbi Blog","article_published_time":"2019-07-10T05:18:38+00:00","og_image":[{"width":1916,"height":604,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/fio_job_files_list.png","type":"image\/png"}],"author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"Storage performance benchmarking with FIO","datePublished":"2019-07-10T05:18:38+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/"},"wordCount":538,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/fio_job_files_list.png","articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/","url":"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/","name":"Storage performance benchmarking with FIO - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/fio_job_files_list.png","datePublished":"2019-07-10T05:18:38+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/fio_job_files_list.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/fio_job_files_list.png","width":1916,"height":604},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/storage-performance-benchmarking-with-fio\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Storage performance benchmarking with FIO"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","caption":"Oracle Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12464","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=12464"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12464\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/12465"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=12464"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=12464"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=12464"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=12464"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}