{"id":835,"date":"2014-04-05T04:56:27","date_gmt":"2014-04-05T04:56:27","guid":{"rendered":"http:\/\/poojanwagh.opalstacked.com\/techblog\/?p=835"},"modified":"2014-11-26T03:51:59","modified_gmt":"2014-11-26T03:51:59","slug":"more-zilslog-comparisons","status":"publish","type":"post","link":"https:\/\/tech.poojanblog.com\/blog\/unix-linux\/more-zilslog-comparisons\/","title":{"rendered":"More ZIL\/SLOG comparisons"},"content":{"rendered":"<p>Suspicious of my previous tests using iozone, I wrote a small program (that follows) to measure synchronous write speed. I tested this with and without an SLOG device, and then used a really fast Plextor M5 Pro 256GB SSD as the SLOG. I wanted to make sure that <em>something<\/em> could achieve the fast SLOG speed that I hoped for. (Remember I am doing this in the interest of spending money on a new SSD.)<\/p>\n<h2>Summary<\/h2>\n<p>An SLOG device can degrade performance, by forcing synchronous writes to wait until they are committed to the SLOG. However, it cannot <em>enhance<\/em> performance. The max (steady-state) performance is determined by bandwidth to the main storage.<br \/>\n<!--more--><\/p>\n<h2>No SLOG<\/h2>\n<p>The benchmark shows:<\/p>\n<code><br \/>\n16777216000 bytes written in 88.68440651893616 seconds 189.17887212130893 MB\/s<br \/>\n<\/code>\n<p>A typical iostat looks like:<\/p>\n<code><\/p>\n<p>capacity\u00a0\u00a0\u00a0\u00a0 operations\u00a0\u00a0\u00a0 bandwidth<br \/>\npool\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 alloc\u00a0\u00a0 free\u00a0\u00a0 read\u00a0 write\u00a0\u00a0 read\u00a0 write<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;<br \/>\ntank\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 6.43T\u00a0 1.45T\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 1.36K\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0 175M<br \/>\nraidz1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 6.43T\u00a0 1.45T\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 1.36K\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0 175M<br \/>\ngpt\/TOSH-3TB-A\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 694\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 86.2M<br \/>\ngpt\/TOSH-3TB-B\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 704\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 87.6M<br \/>\ngpt\/SGT-USB-3TB\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 695\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 86.5M<br \/>\ncache\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;<br \/>\ngpt\/tank_cache0\u00a0\u00a0\u00a0\u00a0 174G\u00a0\u00a0 256M\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 927\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0 116M<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;<br \/>\n<\/code>\n<h2>32GB SATA II Kingston SSD as SLOG<\/h2>\n<p>Python benchmark:<\/p>\n<code><\/p>\n<p>335544320 bytes written in 13.72151803970337 seconds 24.453877408395968 MB\/s<\/p>\n<p><\/code>\n<p>I also tried running the native device (no gpt layer), but the results were in fact lower (maybe just a coincidence):<\/p>\n<code><\/p>\n<p>335544320 bytes written in 22.335944175720215 seconds 15.02261634252945 MB\/s<\/p>\n<p><\/code>\n<p>Typical iostat:<\/p>\n<code><\/p>\n<p>capacity\u00a0\u00a0\u00a0\u00a0 operations\u00a0\u00a0\u00a0 bandwidth<br \/>\npool\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 alloc\u00a0\u00a0 free\u00a0\u00a0 read\u00a0 write\u00a0\u00a0 read\u00a0 write<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;<br \/>\ntank\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 6.42T\u00a0 1.46T\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 187\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 12.4M<br \/>\nraidz1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 6.42T\u00a0 1.46T\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0 0<br \/>\ngpt\/TOSH-3TB-A\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0 0<br \/>\ngpt\/TOSH-3TB-B\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0 0<br \/>\ngpt\/SGT-USB-3TB\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0 0<br \/>\nlogs\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;<br \/>\ngpt\/tank_zil1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 29.8G\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 187\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 12.4M<br \/>\ncache\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;<br \/>\ngpt\/tank_cache0\u00a0\u00a0\u00a0\u00a0 174G\u00a0\u00a0 256M\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 16.0K<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;<br \/>\n<\/code>\n<p>and<\/p>\n<code><\/p>\n<p>capacity\u00a0\u00a0\u00a0\u00a0 operations\u00a0\u00a0\u00a0 bandwidth<br \/>\npool\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 alloc\u00a0\u00a0 free\u00a0\u00a0 read\u00a0 write\u00a0\u00a0 read\u00a0 write<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;<br \/>\ntank\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 6.43T\u00a0 1.44T\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 332\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 27.2M<br \/>\nraidz1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 6.43T\u00a0 1.44T\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 144\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 14.8M<br \/>\ngpt\/TOSH-3TB-A\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0 67\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 7.41M<br \/>\ngpt\/TOSH-3TB-B\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0 67\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 7.42M<br \/>\ngpt\/SGT-USB-3TB\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0 66\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 7.41M<br \/>\nlogs\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;<br \/>\nada2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 424K\u00a0 29.7G\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 187\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 12.4M<br \/>\ncache\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;<br \/>\ngpt\/tank_cache0\u00a0\u00a0\u00a0\u00a0 174G\u00a0\u00a0 256M\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 117\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 14.7M<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;<br \/>\n<\/code>\n<h2>32 GB 4kB aligned as SLOG<\/h2>\n<p>I thought maybe the fact that this drive identifies itself as a 512-byte sector (when in fact it is a 4k drive) was causing lower performance. So, I forced 4k sectors using gnop.<\/p>\n<p>Not much different (aligned via gnop):<\/p>\n<code><\/p>\n<p>335544320 bytes written in 14.291123151779175 seconds 23.47921268582913 MB\/s<\/p>\n<p><\/code>\n<p>iostat:<\/p>\n<code><\/p>\n<p>capacity\u00a0\u00a0\u00a0\u00a0 operations\u00a0\u00a0\u00a0 bandwidth<br \/>\npool\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 alloc\u00a0\u00a0 free\u00a0\u00a0 read\u00a0 write\u00a0\u00a0 read\u00a0 write<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;<br \/>\ntank\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 6.43T\u00a0 1.44T\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 307\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 22.4M<br \/>\nraidz1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 6.43T\u00a0 1.44T\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0 87\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 7.82M<br \/>\ngpt\/TOSH-3TB-A\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0 34\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 3.32M<br \/>\ngpt\/TOSH-3TB-B\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0 35\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 3.44M<br \/>\ngpt\/SGT-USB-3TB\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0 39\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 3.93M<br \/>\nlogs\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;<br \/>\nada2.nop\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 320M\u00a0 29.4G\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 220\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 14.6M<br \/>\ncache\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;<br \/>\ngpt\/tank_cache0\u00a0\u00a0\u00a0\u00a0 174G\u00a0\u00a0 256M\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 146\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 18.2M<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;<\/p>\n<p><\/code>\n<h2>Plextor 256GB as SLOG:<\/h2>\n<code><\/p>\n<p>16777216000 bytes written in 83.31868481636047 seconds 201.3619878539612 MB\/s<\/p>\n<p><\/code>\n<p>iostat:<\/p>\n<code><\/p>\n<p>capacity\u00a0\u00a0\u00a0\u00a0 operations\u00a0\u00a0\u00a0 bandwidth<br \/>\npool\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 alloc\u00a0\u00a0 free\u00a0\u00a0 read\u00a0 write\u00a0\u00a0 read\u00a0 write<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;<br \/>\ntank\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 6.45T\u00a0 1.42T\u00a0\u00a0\u00a0\u00a0\u00a0 4\u00a0 4.46K\u00a0\u00a0 531K\u00a0\u00a0 383M<br \/>\nraidz1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 6.45T\u00a0 1.42T\u00a0\u00a0\u00a0\u00a0\u00a0 4\u00a0 1.63K\u00a0\u00a0 531K\u00a0\u00a0 191M<br \/>\ngpt\/TOSH-3TB-A\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 3\u00a0\u00a0\u00a0 799\u00a0\u00a0 224K\u00a0 95.3M<br \/>\ngpt\/TOSH-3TB-B\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 1\u00a0\u00a0\u00a0 799\u00a0\u00a0 125K\u00a0 95.5M<br \/>\ngpt\/SGT-USB-3TB\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 2\u00a0\u00a0\u00a0 791\u00a0\u00a0 176K\u00a0 94.6M<br \/>\nlogs\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;<br \/>\ngpt\/tank_cache0\u00a0\u00a0\u00a0 1.88G\u00a0\u00a0 172G\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 2.83K\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0 192M<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;<\/p>\n<p><\/code>\n<h2>No SLOG \/ no L2ARC:<\/h2>\n<p>This is the control (in the scientific method) for the case where I used the Plextor as the SLOG device. Since the plextor <em>was<\/em> the L2ARC before, I had really made two changes in making it the log:<\/p>\n<ol>\n<li>Removed it as L2ARC (cache)<\/li>\n<li>Added it as SLOG (ZIL)<\/li>\n<\/ol>\n<p>This benchmark configuration isolates the effect of #1 without #2.<\/p>\n<code><\/p>\n<p>16777216000 bytes written in 87.0151207447052 seconds 192.80805285811064 MB\/s<\/p>\n<p><\/code>\n<p>iostat:<\/p>\n<code><\/p>\n<p>capacity\u00a0\u00a0\u00a0\u00a0 operations\u00a0\u00a0\u00a0 bandwidth<br \/>\npool\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 alloc\u00a0\u00a0 free\u00a0\u00a0 read\u00a0 write\u00a0\u00a0 read\u00a0 write<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;<br \/>\ntank\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 6.46T\u00a0 1.41T\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 1.61K\u00a0 51.2K\u00a0\u00a0 198M<br \/>\nraidz1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 6.46T\u00a0 1.41T\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0 1.61K\u00a0 51.2K\u00a0\u00a0 198M<br \/>\ngpt\/TOSH-3TB-A\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 806\u00a0 19.2K\u00a0 98.4M<br \/>\ngpt\/TOSH-3TB-B\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 811\u00a0 6.40K\u00a0 99.0M<br \/>\ngpt\/SGT-USB-3TB\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 806\u00a0 19.2K\u00a0 99.4M<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;\u00a0 &#8212;&#8211;<br \/>\n<\/code>\n<p>Synchronous write benchmark in Python<\/p>\n<pre>\r\nimport os\r\nimport random\r\nimport argparse\r\nimport logging\r\nimport time\r\n\r\nif __name__ == '__main__':\r\n  logging.basicConfig(filename='disk_test.log', format=\"%(asctime)s - %(message)s\", level=logging.INFO)\r\n  parser = argparse.ArgumentParser(description='test synchronous write bandwidth')\r\n  parser.add_argument('--block_size', '-b', default=16384*1024*10, type=int, help='block size')\r\n  parser.add_argument('--iterations', '-i', default=100, type=int, help='iterations')\r\n\r\n  args = parser.parse_args()\r\n\r\n  data = os.urandom(args.block_size)\r\n\r\n  logging.debug(\"opening file\")\r\n  f_out = os.open('test.dat', os.O_CREAT | os.O_WRONLY | os.O_SYNC)\r\n  bytes_written = 0\r\n  elapsed = 0\r\n  logging.debug(\"starting test\")\r\n  start = time.time()\r\n  for i in range(args.iterations):\r\n    bytes_written += os.write(f_out, data)\r\n  end = time.time()\r\n  elapsed = end - start\r\n  os.close(f_out)\r\n  print(\"{0} bytes written in {1} seconds {2} MB\/s\".format(bytes_written, elapsed, 1.0E-6*bytes_written\/elapsed))\r\n  logging.info(\"{0} bytes written in {1} seconds {2} MB\/s\".format(bytes_written, elapsed, 1.0E-6*bytes_written\/elapsed))\r\n<\/pre>\n<\/p>\n<div class='wp_likes' id='wp_likes_post-835'><a class='like' href=\"javascript:wp_likes.like(835);\" 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(835);\">Like<\/a><\/div>\n<div class='unlike' ><a href=\"javascript:wp_likes.unlike(835);\">Unlike<\/a><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Suspicious of my previous tests using iozone, I wrote a small program (that follows) to measure synchronous write speed. I tested this with and without an SLOG device, and then used a really fast Plextor M5 Pro 256GB SSD as the SLOG. I wanted to make sure that something could achieve the fast SLOG speed [&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,211],"class_list":["post-835","post","type-post","status-publish","format-standard","hentry","category-unix-linux","tag-benchmark","tag-benchmarks","tag-slog","tag-ssd","tag-synchronous-write"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/posts\/835","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=835"}],"version-history":[{"count":16,"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/posts\/835\/revisions"}],"predecessor-version":[{"id":973,"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/posts\/835\/revisions\/973"}],"wp:attachment":[{"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/media?parent=835"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/categories?post=835"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tech.poojanblog.com\/blog\/wp-json\/wp\/v2\/tags?post=835"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}