{"id":829,"date":"2014-04-02T11:16:05","date_gmt":"2014-04-02T11:16:05","guid":{"rendered":"http:\/\/poojanwagh.opalstacked.com\/techblog\/?p=829"},"modified":"2014-04-02T13:34:15","modified_gmt":"2014-04-02T13:34:15","slug":"slog-tests-on-a-32gb-kingston-ssd-with-iozone","status":"publish","type":"post","link":"https:\/\/tech.poojanblog.com\/blog\/unix-linux\/slog-tests-on-a-32gb-kingston-ssd-with-iozone\/","title":{"rendered":"SLOG tests on a 32GB Kingston SSD with iozone"},"content":{"rendered":"<p>This is a follow-up on my <a title=\"SLOG tests on a 32GB Kingston SSD with iozone\" href=\"http:\/\/poojanwagh.opalstacked.com\/techblog\/unix-linux\/slog-tests-on-a-32gb-kingston-ssd-with-iozone\/\">previous post<\/a>. I ran iozone both with and without the [ccie]-e[\/ccie] flag. This flag includes a sync\/flush in the speed calculations. This flush should tell ZFS to commit the in-process data to disk, thus flushing it to the SLOG device (or to the on-disk ZIL).<\/p>\n<p>I ran 4 tests: one without the [ccie]-e[\/ccie] flag, and one with it; I then repeated the combination with the SLOG device removed.<\/p>\n<p>Here are the results:<!--more--><\/p>\n<table>\n<thead>\n<tr>\n<th>Sync?<\/th>\n<th>SLOG?<\/th>\n<th>Write Speed (KB\/s)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>No<\/td>\n<td>Yes<\/td>\n<td>2922009<\/td>\n<\/tr>\n<tr>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<td>13650<\/td>\n<\/tr>\n<tr>\n<td>No<\/td>\n<td>No<\/td>\n<td>3955196<\/td>\n<\/tr>\n<tr>\n<td>Yes<\/td>\n<td>No<\/td>\n<td>227990<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>In cases where the sync was disabled, we can see ridiculously fast rates&#8211;the ZFS system is just writing to kernel memory and calling it done. (This is a TxG and will be written to disk at worst case periodically.)<\/p>\n<p>In the one case where sync is enabled and the SLOG is in place, the write speed drops considerably&#8211;to 13.6 MB\/s. This indicates that the sequential rate isn&#8217;t really dominating. If it were, it would be closer to 68 MB\/s. Instead, it seems like the random-write speed is somehow in the mix. This result is a bit surprising. I will try (tonight) another test with a python script that opens the file with SYNC set, to see what that does.<\/p>\n<p>As you can see below, iozone was run with a record length of 16384K (the max it would allow) and a file size of 163840K (10 records).<\/p>\n<h2>Without Sync \/ With SLOG<\/h2>\n<code><\/p>\n<p>Iozone: Performance Test of File I\/O<br \/>\nVersion $Revision: 3.420 $<br \/>\nCompiled for 64 bit mode.<br \/>\nBuild: freebsd<\/p>\n<p>Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins<br \/>\nAl Slater, Scott Rhine, Mike Wisner, Ken Goss<br \/>\nSteve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,<br \/>\nRandy Dunlap, Mark Montague, Dan Million, Gavin Brebner,<br \/>\nJean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,<br \/>\nErik Habbinga, Kris Strecker, Walter Wong, Joshua Root,<br \/>\nFabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,<br \/>\nVangel Bojaxhi, Ben England, Vikentsi Lapa.<\/p>\n<p>Run began: Wed Apr\u00a0 2 05:51:16 2014<\/p>\n<p>File size set to 163840 KB<br \/>\nRecord Size 16384 KB<br \/>\nCommand line used: iozone -s 163840 -r 16384 -i 0<br \/>\nOutput is in Kbytes\/sec<br \/>\nTime Resolution = 0.000001 seconds.<br \/>\nProcessor cache size set to 1024 Kbytes.<br \/>\nProcessor cache line size set to 32 bytes.<br \/>\nFile stride size set to 17 * record size.<br \/>\nrandom\u00a0 random\u00a0\u00a0\u00a0 bkw<br \/>\nKB\u00a0 reclen\u00a0\u00a0 write rewrite\u00a0\u00a0\u00a0 read\u00a0\u00a0\u00a0 reread\u00a0\u00a0\u00a0 read\u00a0\u00a0 write\u00a0\u00a0\u00a0 rea<br \/>\n163840\u00a0\u00a0 16384 2922009 4685031<\/p>\n<p>iozone test complete.<br \/>\n<\/code>\n<h2>With Sync \/ With SLOG<\/h2>\n<code><\/p>\n<p>Iozone: Performance Test of File I\/O<br \/>\nVersion $Revision: 3.420 $<br \/>\nCompiled for 64 bit mode.<br \/>\nBuild: freebsd<\/p>\n<p>Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins<br \/>\nAl Slater, Scott Rhine, Mike Wisner, Ken Goss<br \/>\nSteve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,<br \/>\nRandy Dunlap, Mark Montague, Dan Million, Gavin Brebner,<br \/>\nJean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,<br \/>\nErik Habbinga, Kris Strecker, Walter Wong, Joshua Root,<br \/>\nFabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,<br \/>\nVangel Bojaxhi, Ben England, Vikentsi Lapa.<\/p>\n<p>Run began: Wed Apr\u00a0 2 05:51:41 2014<\/p>\n<p>Include fsync in write timing<br \/>\nFile size set to 163840 KB<br \/>\nRecord Size 16384 KB<br \/>\nCommand line used: iozone -e -s 163840 -r 16384 -i 0<br \/>\nOutput is in Kbytes\/sec<br \/>\nTime Resolution = 0.000001 seconds.<br \/>\nProcessor cache size set to 1024 Kbytes.<br \/>\nProcessor cache line size set to 32 bytes.<br \/>\nFile stride size set to 17 * record size.<br \/>\nrandom\u00a0 random\u00a0\u00a0\u00a0 bkw<br \/>\nKB\u00a0 reclen\u00a0\u00a0 write rewrite\u00a0\u00a0\u00a0 read\u00a0\u00a0\u00a0 reread\u00a0\u00a0\u00a0 read\u00a0\u00a0 write\u00a0\u00a0\u00a0 rea<br \/>\n163840\u00a0\u00a0 16384\u00a0\u00a0 13650\u00a0\u00a0 11330<\/p>\n<p>iozone test complete.<br \/>\n<\/code>\n<h2>Remove SLOG<\/h2>\n<code>sudo zpool remove tank gpt\/tank_zil1<\/code>\n<h2>Without Sync \/ Without SLOG<\/h2>\n<code><\/p>\n<p>Iozone: Performance Test of File I\/O<br \/>\nVersion $Revision: 3.420 $<br \/>\nCompiled for 64 bit mode.<br \/>\nBuild: freebsd<\/p>\n<p>Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins<br \/>\nAl Slater, Scott Rhine, Mike Wisner, Ken Goss<br \/>\nSteve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,<br \/>\nRandy Dunlap, Mark Montague, Dan Million, Gavin Brebner,<br \/>\nJean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,<br \/>\nErik Habbinga, Kris Strecker, Walter Wong, Joshua Root,<br \/>\nFabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,<br \/>\nVangel Bojaxhi, Ben England, Vikentsi Lapa.<\/p>\n<p>Run began: Wed Apr\u00a0 2 05:52:45 2014<\/p>\n<p>File size set to 163840 KB<br \/>\nRecord Size 16384 KB<br \/>\nCommand line used: iozone -s 163840 -r 16384 -i 0<br \/>\nOutput is in Kbytes\/sec<br \/>\nTime Resolution = 0.000001 seconds.<br \/>\nProcessor cache size set to 1024 Kbytes.<br \/>\nProcessor cache line size set to 32 bytes.<br \/>\nFile stride size set to 17 * record size.<br \/>\nrandom\u00a0 random\u00a0\u00a0\u00a0 bkw<br \/>\nKB\u00a0 reclen\u00a0\u00a0 write rewrite\u00a0\u00a0\u00a0 read\u00a0\u00a0\u00a0 reread\u00a0\u00a0\u00a0 read\u00a0\u00a0 write\u00a0\u00a0\u00a0 rea<br \/>\n163840\u00a0\u00a0 16384 3955196 5757868<\/p>\n<p>iozone test complete.<br \/>\n<\/code>\n<h2>With Sync \/ Without SLOG<\/h2>\n<code><\/p>\n<p>Iozone: Performance Test of File I\/O<br \/>\nVersion $Revision: 3.420 $<br \/>\nCompiled for 64 bit mode.<br \/>\nBuild: freebsd<\/p>\n<p>Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins<br \/>\nAl Slater, Scott Rhine, Mike Wisner, Ken Goss<br \/>\nSteve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,<br \/>\nRandy Dunlap, Mark Montague, Dan Million, Gavin Brebner,<br \/>\nJean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,<br \/>\nErik Habbinga, Kris Strecker, Walter Wong, Joshua Root,<br \/>\nFabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,<br \/>\nVangel Bojaxhi, Ben England, Vikentsi Lapa.<\/p>\n<p>Run began: Wed Apr\u00a0 2 05:52:53 2014<\/p>\n<p>Include fsync in write timing<br \/>\nFile size set to 163840 KB<br \/>\nRecord Size 16384 KB<br \/>\nCommand line used: iozone -e -s 163840 -r 16384 -i 0<br \/>\nOutput is in Kbytes\/sec<br \/>\nTime Resolution = 0.000001 seconds.<br \/>\nProcessor cache size set to 1024 Kbytes.<br \/>\nProcessor cache line size set to 32 bytes.<br \/>\nFile stride size set to 17 * record size.<br \/>\nrandom\u00a0 random\u00a0\u00a0\u00a0 bkw<br \/>\nKB\u00a0 reclen\u00a0\u00a0 write rewrite\u00a0\u00a0\u00a0 read\u00a0\u00a0\u00a0 reread\u00a0\u00a0\u00a0 read\u00a0\u00a0 write\u00a0\u00a0\u00a0 rea<br \/>\n163840\u00a0\u00a0 16384\u00a0 227990\u00a0 232362<\/p>\n<p>iozone test complete.<br \/>\n<\/code>\n<div class='wp_likes' id='wp_likes_post-829'><a class='like' href=\"javascript:wp_likes.like(829);\" title='' ><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/tech.poojanblog.com\/blog\/wp-content\/plugins\/wp-likes\/images\/like.png\" alt='' border='0'\/><\/a><span class='text'>Be the first to like.<\/span><\/p>\n<div class='like' ><a href=\"javascript:wp_likes.like(829);\">Like<\/a><\/div>\n<div class='unlike' ><a href=\"javascript:wp_likes.unlike(829);\">Unlike<\/a><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>This is a follow-up on my previous post. I ran iozone both with and without the [ccie]-e[\/ccie] flag. This flag includes a sync\/flush in the speed calculations. This flush should tell ZFS to commit the in-process data to disk, thus flushing it to the SLOG device (or to the on-disk ZIL). I ran 4 tests: [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[10],"tags":[174,137,210,129,3,191],"class_list":["post-829","post","type-post","status-publish","format-standard","hentry","category-unix-linux","tag-benchmark","tag-benchmarks","tag-slog","tag-ssd","tag-zfs","tag-zil"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/posts\/829","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/comments?post=829"}],"version-history":[{"count":5,"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/posts\/829\/revisions"}],"predecessor-version":[{"id":839,"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/posts\/829\/revisions\/839"}],"wp:attachment":[{"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/media?parent=829"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/categories?post=829"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/tags?post=829"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}