My Sql Performance In A Cloud
-
Upload
sky-jian -
Category
Technology
-
view
3.451 -
download
0
description
Transcript of My Sql Performance In A Cloud
![Page 1: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/1.jpg)
MySQL cloud performance
Mark Callaghan
![Page 2: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/2.jpg)
Special thanks
Eric Hammond (http://www.anvilon.com) provided documentation that made all of my work much easier.
![Page 3: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/3.jpg)
What is this thing called a cloud?
Deployment trendsTechnologyPublic versus private
![Page 4: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/4.jpg)
Deploying MySQL in a cloud
New problems New benefitsDifferences from traditional deploymentPerformance can be good, but ...
Virtualization techniques matter May need InnoDB patches to tolerate IO latency
![Page 5: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/5.jpg)
Impact from requirements
Database in direct attached storage:backups and binlogs archived in the clouduse MySQL replication to maintain a failover targetless can go wrong
Database in network attached storage
another MySQL server can takeover on failure
![Page 6: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/6.jpg)
Focus on InnoDB performance
Network attached storageDirect attached storageMulti-core serversVirtualization overheadPatches that improve performance
![Page 7: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/7.jpg)
Benchmarks
Start with simple benchmarks iibench
IO bound workloadgreat for finding bottlenecks in storage enginesstarted by Tokutek
sysbenchOLTP workload
wisconsinquery processing workload
![Page 8: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/8.jpg)
What is different?
Not much, MySQL runs great hereMulti-core scalability matters because 8-cores costs moreMay need ability to tolerate IO latency
![Page 9: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/9.jpg)
Make InnoDB faster
link with tcmallocuse XFS reduce mutex contention for multi-core serversIO performance
multiple background IO threadsincrease IO rate on busy servers
![Page 10: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/10.jpg)
Factors for IO latency
O_DIRECT versus buffered IOSATA writeback cacheFlash erase cyclesNetwork versus direct attached storageIO schedulerExcessive prefetching from the OSHardware RAID write cacheFile system limits on concurrent reads/writes per fileAbility of storage engine to issue concurrent IO requests
![Page 11: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/11.jpg)
Tuning for IO bound loads
innodb_read_io_threadsIn Percona and Google patchesHelps when there is a lot of prefetching for full table scans
innodb_write_io_threads
In Percona and Google patchesHelps when writes have a lot of latencyWrites have a lot of latency when:
using O_DIRECT without SATA writeback cacheusing O_DIRECT without HW RAID write cacheusing network attached storage
![Page 12: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/12.jpg)
Tuning for IO bound loads (2)
innodb_io_capacityIn Google and Percona patchesHelps when there are many writes to issue
faster IO
Increases rate at which background IO is doneIncrease size of IO request arrays Google and Percona patches have changes for this
SHOW INNODB STATUS
Google and Percona added more outputGoogle patch includes average IO time for reads and writes
![Page 13: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/13.jpg)
Network attached storage tests
Server:2 CPU cores, 4G or 8G RAMSW RAID 0 striped over 4 network volumes1M RAID stripe sizeXFSMySQL 5.0.37 + v3 Google patch + tcmalloc Innodb with 1G buffer pool, O_DIRECT, innodb_flush_log_at_trx_commit=2
![Page 14: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/14.jpg)
Concurrent query performance with network attached storage:4 concurrent queries, IO bound
![Page 15: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/15.jpg)
iibench insert rate
![Page 16: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/16.jpg)
iibench QPS rate from 4 threads concurrent with inserts
![Page 17: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/17.jpg)
Direct attached storage tests
Server:2 CPU cores, 4G or 8G RAMSW RAID 0 striped over 2 disks 1M RAID stripe sizeXFSInnodb with 1G buffer pool, O_DIRECT, innodb_flush_log_at_trx_commit=2MySQL 5.0.37 + v3 Google patch + tcmalloc
![Page 18: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/18.jpg)
Concurrent query performance with direct attached storage:2 concurrent queries, IO bound
![Page 19: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/19.jpg)
iibench insert rate
![Page 20: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/20.jpg)
Direct attached storage tests (2)
Server:8 CPU cores, 4G or 8G RAMSW RAID 0 striped over 10 disks 1M RAID stripe sizeext-2Innodb with 1G buffer pool, O_DIRECT, innodb_flush_log_at_trx_commit=2MySQL 5.0.37 + v3 Google patch + tcmalloc
![Page 21: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/21.jpg)
Time to load 50M rows in iibench
![Page 22: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/22.jpg)
Row insert rate while loading 50M rows in iibench
![Page 23: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/23.jpg)
Multi-core servers
How do MySQL and InnoDB scale on SMP?Test configuration:
CPU bound workloadMySQL 5.0.37 with v3 Google patch4, 8 and 16 core serversmysqld linked with tcmalloc
![Page 24: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/24.jpg)
CPU speedup without virtualization:
modified sysbench readonly, CPU boundmeasure transactions per second
![Page 25: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/25.jpg)
CPU speedup without virtualization:
modified sysbench readwrite, CPU boundmeasure transactions per second
![Page 26: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/26.jpg)
Virtualization overhead
KVM testsUbuntu 8.044 core server, 1 disk, 4G RAM, supports AMD-VMySQL 5.0.77 with tcmallocMySQL 5.0.37 with v3 Google patch and tcmallocNote that KVM is much improved since this version
Xen tests
Linux 2.68 CPU cores, enough RAM to cache databasehardware on server with Xen faster than non-Xen serverXen server has 4 disks in SW-RAID 0 using XFS, 16G RAM MySQL 5.0.37 with tcmalloc and v3 Google patch
![Page 27: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/27.jpg)
KVM random IO performance:sysbench fileio rndrd, 8G file
![Page 28: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/28.jpg)
Xen random IO performance:sysbench fileio rndrd, 16G file
![Page 29: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/29.jpg)
KVM sequential IO performance:sysbench fileio seqrd, 8G file
![Page 30: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/30.jpg)
Xen sequential IO performance:sysbench fileio seqrd, 16G file
![Page 31: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/31.jpg)
KVM sequential IO performance:hdparm -t, hdparm -T
![Page 32: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/32.jpg)
KVM CPU performance:
modified wisconsin benchmark, CPU boundmeasure time to run all queries
![Page 33: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/33.jpg)
KVM CPU performance:
modified sysbench readonly, CPU boundmeasure transactions per second
![Page 34: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/34.jpg)
KVM CPU performance:
modified sysbench readwrite, CPU boundmeasure transactions per second
![Page 35: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/35.jpg)
Xen CPU performance:modified sysbench OLTP readonly, CPU bound
![Page 36: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/36.jpg)
Xen CPU performance:modified sysbench OLTP readwrite, CPU bound
![Page 37: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/37.jpg)
iibench insert rate comparing 2 local disks versus 4 network volumes
![Page 38: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/38.jpg)
iibench QPS rate comparing 2 local disks versus 4 network volumes
![Page 39: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/39.jpg)
Patches
All of these changes are available in some combination of the v3 Google patch, Percona builds and now ....
MySQL 5.4!
![Page 40: My Sql Performance In A Cloud](https://reader034.fdocuments.us/reader034/viewer/2022051513/54590165af7959755d8b54a5/html5/thumbnails/40.jpg)
Make appropriate choices
remote versus direct attached storageconfigurationstorage engineIO schedulerfile systempatches