开发者

Tuning SSD MySql Performance

I'm testing SSDs for use with MySql and am unable to see any performance benefits. This makes me feel like I must be doing something wrong.

Here is the setup:

  • Xeon 5520 2.26 Ghz Quad Core
  • 12 GB Ram
  • 300GB 15k in RAID 1
  • 64GB SSD in RAID 1

For the test I moved the mysql directory on the SSD.

I imported a table with 3 million rows. Then imported the same table with the data and index directories symlinked to the 15k drive.

Loading the data into the tables via a dump from mysqldump the 15k drives showed a faster insert rate over the SSDs:

  • 15k ~= 35,800 inserts/sec
  • SSD != 27,000 inserts/sec

Then I tested SELECT speed by doing 'SELECT * FROM table INTO OUTFILE '开发者_运维知识库/tmp/table.txt':

  • 15kk ~= 3,000,000 rows in 4.19 seconds
  • SSD ~= 3,000,000 rows in 4.21 seconds

The SELECTS were almost identical and the writes were actually slower on the SSD which does not seem right at all. Any thoughts on what I should look into next?


Extra note: I tuned the SSD with the standard changes: noatime and noob-scheduler


Two points:

  1. I see nothing surprising about your 15k drives writing faster than the SSD. Flash memory is slow writing. Internally, NAND flash memory it is page oriented (pages>sectors). So to write a sector the SSD reads the page, replaces 512 bytes, erases the page, and finally writes the page.

  2. Your tests are totally sequential. Your write test is a load via a dump, and your read test is 'SELECT *...'. The real strength of SSD drives is their random read speed. Your test is not forcing the 15k HD to seek often, so what you are really testing is just the interface speed.


All you testing should be under simmillar conditions. Ie. Initialse disks, reboot, load data, run selects. Shutdown. And then repeat. If this gives a better indication, as to if one is better or worse than the other.

Once you've done this, you can then investigate whether the tests are actually taxing the 15 disk at all. If both tests are not stressing you system, then I'd say that you've not discovered the bottlenecks that require a particular upgrade such as this one.

Once you have, then please post the results. That would make analysis and tuning easier.


I would use some better tool to run the tests. One such tool is FIO for Linux which can simulate all kind of read/write IOPS scenarios for you. I recommend that you check on RAID controller and make sure it has optimizations for SSD drives. The older RAID controller were never designed for SSD and they generally speaking perform poorly. For example with Dell servers you need to have a never generation PERC 710H to get the full speed out of your SSDs. Intelligent RAID controller can also spare SSD for caching in front of regular mechanical drives improving overall read/write performance.

I recently wrote up a blog post about this subject that you may find helpful. I've also included some benchmark results SSD vs. mechanical disks.

http://www.juhavehnia.com/2015/05/using-ssds-to-improve-mysql-performance.html

Good luck in your tests, Juha Vehnia

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜