ストレージ視点から見た
MariaDB性能チューニング
db tech showcase 2017 Tokyo
2017年9月6日 16:30~17:20
東芝メモリ株式会社
SSD事業部 SSD応用技術部 SSD応用技術担当 主幹
佐藤 修一
2© 2017 Toshiba Memory Corporation
• はじめに
• NVMeTM SSDの実力
• Linux OSの影響
• MariaDB™ (innodb)性能チューニング
• まとめ
Agenda
・PCIeはPCI-SIG社の商標です。
・NVMeはNVM Express, Inc.の商標です。
・その他本文中に記載されている会社名および製品名は、それぞれ各社が商標または登録商標として使用している場合があります。
3© 2017 Toshiba Memory Corporation
• はじめに
• NVMe SSDの実力
• Linux OSの影響
• MariaDB(innodb)性能チューニング
• まとめ
4© 2017 Toshiba Memory Corporation
幅広いSSDラインナップで、多様なアプリケーションに対応します!
SSD製品の適用分野
ハイエンド
PC
ホームサーバ
データセンタ
監視カメラカムコーダ
航空機内
AVシステム
組み込み用
ストレージ
POSシステム
タブレット
タブレット
PC
エンタープライズ
サーバ/ストレージ
Toshiba SSDTMC NAND Flashメモリ搭載
電子楽器
映像編集機器
医療計測器
5© 2017 Toshiba Memory Corporation
東芝メモリSSDラインアップ
6© 2017 Toshiba Memory Corporation
Enterprise向けSSDの性能
0
500
1000
1500
2000
2500
3000
3500
4000
0 100 200 300
円形の面積:SSD容量
MB/sシーケンシャルライト
0
500
1000
1500
2000
2500
3000
3500
4000
0 200 400 600 800
HK4
シーケンシャルリード
円形の面積:SSD容量
K IOPSランダムリードK IOPSランダムライト
シーケンシャルライト性能 シーケンシャルリード性能
PX04S
PX04S
PX04P
PX04P
HK4
MB/s
7© 2017 Toshiba Memory Corporation
• はじめに
• NVMe SSDの実力
• Linux OSの影響
• MariaDB(innodb)性能チューニング
• まとめ
8© 2017 Toshiba Memory Corporation
• MySQL™をDefault Configurationのまま使用した場合のNVMe SSD のTPC™
TPC-C™性能は、NL HDD(8台 RAID1+0)の1.5~3倍の性能
Default ConfigurationでもNVMe SSDは早いけど・・・
Red Hat Enterprise Linux® 6.6, MySQL 5.6.28, HammerDB 2.1.18
Warehouse:3000
NVMe SSD(PX04PMB080) vs NL HDD(MG05ACA800E )8台 RAID1+0
9© 2017 Toshiba Memory Corporation
• MySQLのDefault ConfigurationでNVMe SSDを使用しても、
ConfigurationをチューニングしたNL HDD(8台 RAID1+0)の性能に及ばない
• NVMe SSDでもRDBのConfigurationチューニングは必要!
Default ConfigurationでNVMe SSDを使っても・・・
Red Hat Enterprise Linux 6.6, MySQL 5.6.28, HammerDB 2.1.18
Warehouse:3000
NVMe SSD(PX04PMB080) vs NL HDD(MG05ACA800E )8台 RAID1+0
10© 2017 Toshiba Memory Corporation
• やっぱりNVMe SSDは、速い! Max 12MTPM(200KTPS)
• 注:
– NL HDDでもMax 1900KTPM(約31KTPS)
– 現行のNL HDDは、旧世代15Krpm HDD同等以上のTPC-C性能
MySQLの設定をチューニングしたら…
Red Hat Enterprise Linux 6.6, MySQL 5.6.28, HammerDB 2.1.18
Warehouse:3000
NVMe SSD(PX04PMB080) vs NL HDD(MG05ACA800E )8台 RAID1+0
11© 2017 Toshiba Memory Corporation
• はじめに
• NVMe SSDの実力
• Linux OSの影響
• MariaDB(innodb)性能チューニング
• まとめ
12© 2017 Toshiba Memory Corporation
• Many Core CPU, RAID Controller同様にSSD内部でRead/Write要求を並列
処理することで性能を上げている。
• SSD性能を使い切るためには、同時に多数のRead/Write要求を発行する必要がある。
• PCIe ® Gen3 X4の帯域を使い切るEnterprise SSDでは、状況によっては
Linux Kernel, File Systemがボトルネックとなって、SSDの性能を生かせない
– Linux Kernel Page CacheのWrite Back
– File Systemの排他制御
NVMe SSDが速くなって・・・
13© 2017 Toshiba Memory Corporation
• 以下のPage Cacheの機能から、小サイズのSequential Accessでは、Page Cacheを使用した方がI/O性能
が高い
– アプリケーションが4KiBでRead/Writeしてもストレージへのアクセスは、Read: Max 256KiB, Write: Max
512KiB(CentOS 7.3 NVMe SSDの場合)と大サイズでアクセス
– 書き換えられたDirty Pageを4~8Thereadsで書き込み
• 特にReadの先読み効果が大きく、Sequential Accessが多いアプリケーションは、Page Cacheを使用し
た方がSSDの性能を生かせる
Page Cache VS O_DIRECT(Sequential Read/Write)
14© 2017 Toshiba Memory Corporation
• 小サイズのRandom Accessの場合、Page Cacheの優位性がなくなる
– アプリケーションのアクセスサイズでストレージをアクセス
– 先読みの効果が少ない
• FIO同様にlibaioを使用するなどし、アプリケーションが同時Read/Write要求数を4以上にで
きれば、O_DIRECTを使用した方がSSD性能を生かせる
Page Cache VS O_DIRECT(Random Read/Write)
1
15© 2017 Toshiba Memory Corporation
• TraditionalなFile System(ext4, xfs)では、1Fileに対するI/O性能にFile Systemの排他制
御が原因と思われる性能限界がある
同時にコマンドを発行しすぎても・・・
Job数xI/O Depthが64を超えるとRAW I/Oより性能が低下
Job4:16, Job8:8, Job16:4, Job32:2
I/O Depth:16以上で
性能低下
Fio RAW I/O, _DIRECT I/O Performance(ext4)
16© 2017 Toshiba Memory Corporation
• 性能を突き詰めていくとPage Cahce, File Systemの影響を受ける
– innodb_flush_method: dsatasync(Default) からO_DIRECT ⇒ 20~40%の向上
– innodb_file_per_table:OFF(Default)からON ⇒ 4~8%の向上とFile Systemの影
響は少ない。
TPC-C性能に対する影響は?
17© 2017 Toshiba Memory Corporation
• はじめに
• NVMe SSDの実力
• Linux OSの影響
• MariaDB(innodb)性能チューニング
• まとめ
18© 2017 Toshiba Memory Corporation
• 他にも試してみたので紹介させて頂きます
– Innodb_buffer_pool_sizeだけ増やしたら?
– I/O関係の設定だけ変更したら?
– どの設定を変更するのが、一番効果があるの?
MariaDB™(InnoDB)性能チューニング
19© 2017 Toshiba Memory Corporation
Model Name, Version
Server Supermicro 6028U-TNR4T+/3Y
CPU Intel® Xeon® Processor E5-2640 v3
(8 cores/16 thread, 20MB cache, 2.6GHz (TB:3.4GHz)) x 2
Memory 64GB(2133MHz DDR4 SDRAM)
OS CentOS™ 7.3.1611(kernel: 3.10.0-514.26.2.el7.x86_64)
SSD PX04PMB080
MariaDB 5.5.52
HarmaerDB 2.23
評価環境
TPC-C
- Warehouse: 3000
- Virtual user: 2, 4, 6, 8, 10, 20, 40, 60, 80, 100, 150, 200, 300, 400, 500
- Rump Time:30分, Run Time:15分
20© 2017 Toshiba Memory Corporation
• 単にinnodb_buffer_pool_sizeだけ増やしても、TPC-C性能は向上
– Fdataaync:1.4~2.1倍
– O_DIRECT:1.3~2.4倍
• 1~2GiB以上に増やしてもTPC-C性能は向上しない
innodb_buffer_pool_sizeだけ増やしたら?
21© 2017 Toshiba Memory Corporation
• fdataasyncでinnodb_log_file_size以外の設定を変えた場合に10~15%の性能
向上する
• O_DIRECTでは、差が無い
I/O関係の設定だけ変えたら?
22© 2017 Toshiba Memory Corporation
Case 1
Default
Case2
1GiB
Case3
1GiB-I/O
Case4
1GiB-I/O-Log
Case5
32GiB-I/O
Case6
32GiB-Log
Case7
32GiB-I/O-Log
innodb_buffer_pool_size 128MiB
(Default)
1GiB 1GiB 1GiB 32GiB 32GiB 32GiB
innodb_buffer_pool_instances 1
(Default)
1
(Default)
24 24 24 1
(Default)
24
innodb_read_threads 4
(Default)
4
(Default)
12 12 12 4
(Default)
12
innodb_read_threads 4
(Default)
4
(Default)
12 12 12 4
(Default)
12
read_buffer_size 128KiB
(Default)
128KiB
(Default)
1024KiB 1024KiB 1024KiB 128KiB
(Default)
1024KiB
Read_rnd_buffer_size 256KiB
(Default)
256KiB
(Default)
2048KiB 2048KiB 2048KiB 256KiB
(Default)
2048KiB
inno_db_io_capacity 2000
(Default)
2000
(Default)
100000 100000 100000 2000
(Default)
100000
innodb_flush_neighbor_pages area
(Default)
area
(Default)
None None None area
(Default)
None
innodb_log_file_size 5MiB
(Default)
5MiB
(Default)
5MiB
(Default)
512MiB 5MiB
(Default)
512MiB 512MiB
どれが効果があるの?
• 色々やってみました
23© 2017 Toshiba Memory Corporation
• Page Cacheを使用するfdataasync, O_DIRECTともに傾向は変わらず
– innodb_buffer_pool_sizeとinnodb_log_file_sizeを増やさないとTPC-C性能は向
上しない
• まずは、innodb_buffer_pool_sizeとinnodb_log_file_sizeから
– O_DIRECTの場合、次にinnodb_read_threads, innodb_write_threads,
innodb_io_capacityをチューニング
• どこまで上げられるかは、使用するSSD次第
MariaDB TPC-C性能
24© 2017 Toshiba Memory Corporation
• TPC-C性能を突き詰めていくためには、O_DIRECT!
– 特にVirtual Users数が増えた時の性能差が大きい(40%!)
• 障害時のデータ消失、Page CacheとDB内のMemory Poolのデータの2重Copyを避けるために
O_DIRECTを使用しているが、NVMe SSD性能を使い切るためにもO_DIRECT!
fdataasync VS O_DIRECT
25© 2017 Toshiba Memory Corporation
• TPC-Cでは、Write比率が高く、TPC-C性能を向上するためにはWrite性能が大事
• 特にPage Cacheを使用しないO_DIRECTでは、Read要求を削減するため、
innodb_memory_pool_sizeを増やす必要がある
TPC-CではWrite性能が大事
26© 2017 Toshiba Memory Corporation
• TPC-C性能とWrite量は比例しない。
– innodb_log_file_size,innodb_buffer_pool_sizeを変更して、不要な
Write要求を削減する必要がある。
• 不要なI/Oを削減後、innodb_max_iocapacity, innodb_read_threads,
innodb_write_threadsを変更しないと効果が少ない
Write性能が重要でも…
27© 2017 Toshiba Memory Corporation
• Page Sizeを16KiB(Default)から4KiB, 8KiBに変えると
– Virtual User数150以下では、10~13%の性能向上
– Virtual User数200以上では、性能に大きな差は無い
• 4KiB Pageと8KiB Pageで性能差はない
Page Sizeを変えたら?
28© 2017 Toshiba Memory Corporation
• はじめに
• NVMe SSDの実力
• Linux OSの影響
• MariaDB(innodb)性能チューニング
• まとめ
29© 2017 Toshiba Memory Corporation
• SSDの性能向上により、使用状況によっては、 Page Cache, File Systemが要因でSSDの性
能を使い切れない。
– MariaDBのTPC-C評価でもOS要因の性能限界が見え始めている。
– TPC-C性能を向上させるために、以下が有効
• Page Cacheを使用しないO_DIRECTの使用
• NVMe SSDの高速性を生かすためには、やはりMemoryとMariaDBのチューニングが必要
– まずは、innodb_memory_buffer_poolとinnodb_log_file_sizeから
• これだけでも5,400~11,000KTPM(90~180KTPS)!
– TPC-C性能を向上するためには、SSDのWrite性能が大事!
• Random Write性能とSequential Write性能どちらも大事
– I/O量とTPC-C性能は相関しない
• 無駄なI/O削減が重要
• 高速なSSDを使用することで、TPC-C性能は向上
– 高速なSSDを使用しても無駄なI/Oを発行していたら、TPC-C性能は向上しない
• 無駄なI/Oを削減するチューニング、SQL/テーブル設計が大事
– 高速なSSD性能を使い切れるか、皆様の腕の見せ所!
まとめ
30© 2017 Toshiba Memory Corporation

More Related Content

PDF
[db tech showcase Tokyo 2017] E14: 進化を続けるPostgreSQL ~Linuxの成功からみるPostgreSQLの将...
PDF
今さら聞けない HANAのハナシの基本のほ
PDF
[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏
PDF
[db tech showcase Tokyo 2016] B22: 超高速NoSQLデータベースと超高速SSDの融合 by Aerospike Inc....
PDF
DBTS2016 DBAのための最新テクノロジー
PDF
[db tech showcase Tokyo 2017] E24: 流行りに乗っていれば幸せになれますか?数あるデータベースの中から敢えて今Db2が選ば...
PDF
[db tech showcase Tokyo 2016] D32: SPARCサーバ + Pure Storage DB仮想化のすべらない話 〜 Exa...
PDF
[db tech showcase Tokyo 2017] A16: Using a Multi-Model Database to Improve Da...
[db tech showcase Tokyo 2017] E14: 進化を続けるPostgreSQL ~Linuxの成功からみるPostgreSQLの将...
今さら聞けない HANAのハナシの基本のほ
[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏
[db tech showcase Tokyo 2016] B22: 超高速NoSQLデータベースと超高速SSDの融合 by Aerospike Inc....
DBTS2016 DBAのための最新テクノロジー
[db tech showcase Tokyo 2017] E24: 流行りに乗っていれば幸せになれますか?数あるデータベースの中から敢えて今Db2が選ば...
[db tech showcase Tokyo 2016] D32: SPARCサーバ + Pure Storage DB仮想化のすべらない話 〜 Exa...
[db tech showcase Tokyo 2017] A16: Using a Multi-Model Database to Improve Da...

What's hot (20)

PPTX
[db tech showcase Tokyo 2017] B26: レデータの仮想化と自動化がもたらす開発効率アップとは?by 株式会社インサイトテクノ...
PDF
[db tech showcase Tokyo 2016] D15: データベース フラッシュソリューション徹底解説! 安価にデータベースを高速にする方法...
PDF
[db tech showcase Tokyo 2017] E35: 12台でやってみた!DWHソフトウェアアプライアンス Db2 Warehouse ~...
PDF
[db tech showcase Tokyo 2016] D24: データベース環境における検証結果から理解する失敗しないフラッシュ活用法 第三章 ~デ...
PDF
[db tech showcase Tokyo 2016] A12: フラッシュストレージのその先へ ~不揮発性メモリNVDIMMが拓くデータベースの世界...
PDF
[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...
PDF
[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...
PPTX
Dbts 分散olt pv2
PDF
[db tech showcase Tokyo 2016] C32: 世界一速いPostgreSQLを目指せ!インメモリカラムナの実現 by 富士通株式会...
PDF
[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...
PDF
[db tech showcase Tokyo 2017] E34: データベース・サービスを好きなところで動かそう Db2 Warehouse by 日...
PDF
[db tech showcase Sapporo 2015] A12:DBAが知っておくべき最新テクノロジー: フラッシュ, ストレージ, クラウド b...
PDF
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
PDF
[db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔
PDF
[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...
PDF
[db tech showcase Tokyo 2016] A13: 最新版VerticaのAnalytics機能を駆使して実現する簡単ログ分析 by日本...
PDF
[db tech showcase Sapporo 2015] B14:データベース環境における検証結果から理解する失敗しないフラッシュ活用法 第二章 b...
PDF
[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...
PDF
[db tech showcase Tokyo 2017] D35: 何を基準に選定すべきなのか!? ~ビッグデータ×IoT×AI時代のデータベースのアー...
PDF
[db tech showcase Tokyo 2015] D16:マイケルストーンブレーカー発の超高速データベースで実現する分析基盤の簡単構築・運用ステ...
[db tech showcase Tokyo 2017] B26: レデータの仮想化と自動化がもたらす開発効率アップとは?by 株式会社インサイトテクノ...
[db tech showcase Tokyo 2016] D15: データベース フラッシュソリューション徹底解説! 安価にデータベースを高速にする方法...
[db tech showcase Tokyo 2017] E35: 12台でやってみた!DWHソフトウェアアプライアンス Db2 Warehouse ~...
[db tech showcase Tokyo 2016] D24: データベース環境における検証結果から理解する失敗しないフラッシュ活用法 第三章 ~デ...
[db tech showcase Tokyo 2016] A12: フラッシュストレージのその先へ ~不揮発性メモリNVDIMMが拓くデータベースの世界...
[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...
[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...
Dbts 分散olt pv2
[db tech showcase Tokyo 2016] C32: 世界一速いPostgreSQLを目指せ!インメモリカラムナの実現 by 富士通株式会...
[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...
[db tech showcase Tokyo 2017] E34: データベース・サービスを好きなところで動かそう Db2 Warehouse by 日...
[db tech showcase Sapporo 2015] A12:DBAが知っておくべき最新テクノロジー: フラッシュ, ストレージ, クラウド b...
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
[db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔
[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...
[db tech showcase Tokyo 2016] A13: 最新版VerticaのAnalytics機能を駆使して実現する簡単ログ分析 by日本...
[db tech showcase Sapporo 2015] B14:データベース環境における検証結果から理解する失敗しないフラッシュ活用法 第二章 b...
[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...
[db tech showcase Tokyo 2017] D35: 何を基準に選定すべきなのか!? ~ビッグデータ×IoT×AI時代のデータベースのアー...
[db tech showcase Tokyo 2015] D16:マイケルストーンブレーカー発の超高速データベースで実現する分析基盤の簡単構築・運用ステ...
Ad

Similar to [db tech showcase Tokyo 2017] A27: ストレージ視点から見たMariaDB性能チューニング by 東芝メモリ株式会社 佐藤修一 (20)

PPTX
Wndows 10 Fall Creators Update Insider Previewから見たアップデート内容
PDF
既存システムへの新技術活用法 ~fluntd/MongoDB~
PDF
[db tech showcase OSS 2017] A22: NoSQL:誰のための、何のためのデータベース?その将来は?by Aerospike, ...
PDF
[db tech showcase Tokyo 2016] A35: NVMe徹底検証 by 株式会社インサイトテクノロジー 平間 大輔
PDF
【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた
PDF
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~
PDF
Snr005 レノボだから実現
PDF
VIOPS10: SSDの基本技術と最新動向
PDF
[Japan Tech summit 2017] CLD 007
PDF
B21 DBエンジニアのための最新HW講座 (Deep Insight About Database and Hardware) by Masaya Is...
PDF
[db tech showcase Tokyo 2014] B13: PCIe SSDを用いたMySQL 5.6と5.7 のパフォーマンス対決!~MySQ...
PPTX
Delphi / C++Builder 業務アプリケーション 刷新実践法: BDEを使った業務アプリを 移行ツールで最新化
PDF
Db2リブランディングと製品動向 201707
PDF
Windows Server 2019 の Hyper-Converged Infrastructure (HCI)
PDF
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
PDF
第19回「IBM Smarter Storage、ストレージに関するビジョンと展望」(2012/08/23 on しすなま!)
PDF
Interop 2017 in huawei booth
PDF
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
PPTX
2017 roadmap
PDF
Yahoo! JAPANのOracle構成-2017年版
Wndows 10 Fall Creators Update Insider Previewから見たアップデート内容
既存システムへの新技術活用法 ~fluntd/MongoDB~
[db tech showcase OSS 2017] A22: NoSQL:誰のための、何のためのデータベース?その将来は?by Aerospike, ...
[db tech showcase Tokyo 2016] A35: NVMe徹底検証 by 株式会社インサイトテクノロジー 平間 大輔
【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~
Snr005 レノボだから実現
VIOPS10: SSDの基本技術と最新動向
[Japan Tech summit 2017] CLD 007
B21 DBエンジニアのための最新HW講座 (Deep Insight About Database and Hardware) by Masaya Is...
[db tech showcase Tokyo 2014] B13: PCIe SSDを用いたMySQL 5.6と5.7 のパフォーマンス対決!~MySQ...
Delphi / C++Builder 業務アプリケーション 刷新実践法: BDEを使った業務アプリを 移行ツールで最新化
Db2リブランディングと製品動向 201707
Windows Server 2019 の Hyper-Converged Infrastructure (HCI)
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
第19回「IBM Smarter Storage、ストレージに関するビジョンと展望」(2012/08/23 on しすなま!)
Interop 2017 in huawei booth
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
2017 roadmap
Yahoo! JAPANのOracle構成-2017年版
Ad

More from Insight Technology, Inc. (20)

PDF
グラフデータベースは如何に自然言語を理解するか?
PDF
Docker and the Oracle Database
PDF
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
PDF
事例を通じて機械学習とは何かを説明する
PDF
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
PDF
MBAAで覚えるDBREの大事なおしごと
PDF
グラフデータベースは如何に自然言語を理解するか?
PDF
DBREから始めるデータベースプラットフォーム
PDF
SQL Server エンジニアのためのコンテナ入門
PDF
Lunch & Learn, AWS NoSQL Services
PDF
db tech showcase2019オープニングセッション @ 森田 俊哉
PDF
db tech showcase2019 オープニングセッション @ 石川 雅也
PDF
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
PPTX
難しいアプリケーション移行、手軽に試してみませんか?
PPTX
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
PPTX
そのデータベース、クラウドで使ってみませんか?
PPTX
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
PDF
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
PPTX
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
PPTX
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
グラフデータベースは如何に自然言語を理解するか?
Docker and the Oracle Database
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
事例を通じて機械学習とは何かを説明する
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
MBAAで覚えるDBREの大事なおしごと
グラフデータベースは如何に自然言語を理解するか?
DBREから始めるデータベースプラットフォーム
SQL Server エンジニアのためのコンテナ入門
Lunch & Learn, AWS NoSQL Services
db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
難しいアプリケーション移行、手軽に試してみませんか?
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
そのデータベース、クラウドで使ってみませんか?
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]

Recently uploaded (7)

PDF
Working as an OSS Developer at Ruby Association Activity Report 2025
PDF
ココロ分解帳|感情をやさしく分解し自分と他者を理解するためのモバイルノートアプリ
PDF
AIシステムのセキュリティ:脅威となりつつあるAIの現状と課題 [English] Security of AI Systems: The Current...
PDF
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
PPTX
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
PDF
翔泳社 「C++ ゼロからはじめるプログラミング」対応 C++学習教材(三谷純)
Working as an OSS Developer at Ruby Association Activity Report 2025
ココロ分解帳|感情をやさしく分解し自分と他者を理解するためのモバイルノートアプリ
AIシステムのセキュリティ:脅威となりつつあるAIの現状と課題 [English] Security of AI Systems: The Current...
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
翔泳社 「C++ ゼロからはじめるプログラミング」対応 C++学習教材(三谷純)

[db tech showcase Tokyo 2017] A27: ストレージ視点から見たMariaDB性能チューニング by 東芝メモリ株式会社 佐藤修一

  • 1. ストレージ視点から見た MariaDB性能チューニング db tech showcase 2017 Tokyo 2017年9月6日 16:30~17:20 東芝メモリ株式会社 SSD事業部 SSD応用技術部 SSD応用技術担当 主幹 佐藤 修一
  • 2. 2© 2017 Toshiba Memory Corporation • はじめに • NVMeTM SSDの実力 • Linux OSの影響 • MariaDB™ (innodb)性能チューニング • まとめ Agenda ・PCIeはPCI-SIG社の商標です。 ・NVMeはNVM Express, Inc.の商標です。 ・その他本文中に記載されている会社名および製品名は、それぞれ各社が商標または登録商標として使用している場合があります。
  • 3. 3© 2017 Toshiba Memory Corporation • はじめに • NVMe SSDの実力 • Linux OSの影響 • MariaDB(innodb)性能チューニング • まとめ
  • 4. 4© 2017 Toshiba Memory Corporation 幅広いSSDラインナップで、多様なアプリケーションに対応します! SSD製品の適用分野 ハイエンド PC ホームサーバ データセンタ 監視カメラカムコーダ 航空機内 AVシステム 組み込み用 ストレージ POSシステム タブレット タブレット PC エンタープライズ サーバ/ストレージ Toshiba SSDTMC NAND Flashメモリ搭載 電子楽器 映像編集機器 医療計測器
  • 5. 5© 2017 Toshiba Memory Corporation 東芝メモリSSDラインアップ
  • 6. 6© 2017 Toshiba Memory Corporation Enterprise向けSSDの性能 0 500 1000 1500 2000 2500 3000 3500 4000 0 100 200 300 円形の面積:SSD容量 MB/sシーケンシャルライト 0 500 1000 1500 2000 2500 3000 3500 4000 0 200 400 600 800 HK4 シーケンシャルリード 円形の面積:SSD容量 K IOPSランダムリードK IOPSランダムライト シーケンシャルライト性能 シーケンシャルリード性能 PX04S PX04S PX04P PX04P HK4 MB/s
  • 7. 7© 2017 Toshiba Memory Corporation • はじめに • NVMe SSDの実力 • Linux OSの影響 • MariaDB(innodb)性能チューニング • まとめ
  • 8. 8© 2017 Toshiba Memory Corporation • MySQL™をDefault Configurationのまま使用した場合のNVMe SSD のTPC™ TPC-C™性能は、NL HDD(8台 RAID1+0)の1.5~3倍の性能 Default ConfigurationでもNVMe SSDは早いけど・・・ Red Hat Enterprise Linux® 6.6, MySQL 5.6.28, HammerDB 2.1.18 Warehouse:3000 NVMe SSD(PX04PMB080) vs NL HDD(MG05ACA800E )8台 RAID1+0
  • 9. 9© 2017 Toshiba Memory Corporation • MySQLのDefault ConfigurationでNVMe SSDを使用しても、 ConfigurationをチューニングしたNL HDD(8台 RAID1+0)の性能に及ばない • NVMe SSDでもRDBのConfigurationチューニングは必要! Default ConfigurationでNVMe SSDを使っても・・・ Red Hat Enterprise Linux 6.6, MySQL 5.6.28, HammerDB 2.1.18 Warehouse:3000 NVMe SSD(PX04PMB080) vs NL HDD(MG05ACA800E )8台 RAID1+0
  • 10. 10© 2017 Toshiba Memory Corporation • やっぱりNVMe SSDは、速い! Max 12MTPM(200KTPS) • 注: – NL HDDでもMax 1900KTPM(約31KTPS) – 現行のNL HDDは、旧世代15Krpm HDD同等以上のTPC-C性能 MySQLの設定をチューニングしたら… Red Hat Enterprise Linux 6.6, MySQL 5.6.28, HammerDB 2.1.18 Warehouse:3000 NVMe SSD(PX04PMB080) vs NL HDD(MG05ACA800E )8台 RAID1+0
  • 11. 11© 2017 Toshiba Memory Corporation • はじめに • NVMe SSDの実力 • Linux OSの影響 • MariaDB(innodb)性能チューニング • まとめ
  • 12. 12© 2017 Toshiba Memory Corporation • Many Core CPU, RAID Controller同様にSSD内部でRead/Write要求を並列 処理することで性能を上げている。 • SSD性能を使い切るためには、同時に多数のRead/Write要求を発行する必要がある。 • PCIe ® Gen3 X4の帯域を使い切るEnterprise SSDでは、状況によっては Linux Kernel, File Systemがボトルネックとなって、SSDの性能を生かせない – Linux Kernel Page CacheのWrite Back – File Systemの排他制御 NVMe SSDが速くなって・・・
  • 13. 13© 2017 Toshiba Memory Corporation • 以下のPage Cacheの機能から、小サイズのSequential Accessでは、Page Cacheを使用した方がI/O性能 が高い – アプリケーションが4KiBでRead/Writeしてもストレージへのアクセスは、Read: Max 256KiB, Write: Max 512KiB(CentOS 7.3 NVMe SSDの場合)と大サイズでアクセス – 書き換えられたDirty Pageを4~8Thereadsで書き込み • 特にReadの先読み効果が大きく、Sequential Accessが多いアプリケーションは、Page Cacheを使用し た方がSSDの性能を生かせる Page Cache VS O_DIRECT(Sequential Read/Write)
  • 14. 14© 2017 Toshiba Memory Corporation • 小サイズのRandom Accessの場合、Page Cacheの優位性がなくなる – アプリケーションのアクセスサイズでストレージをアクセス – 先読みの効果が少ない • FIO同様にlibaioを使用するなどし、アプリケーションが同時Read/Write要求数を4以上にで きれば、O_DIRECTを使用した方がSSD性能を生かせる Page Cache VS O_DIRECT(Random Read/Write) 1
  • 15. 15© 2017 Toshiba Memory Corporation • TraditionalなFile System(ext4, xfs)では、1Fileに対するI/O性能にFile Systemの排他制 御が原因と思われる性能限界がある 同時にコマンドを発行しすぎても・・・ Job数xI/O Depthが64を超えるとRAW I/Oより性能が低下 Job4:16, Job8:8, Job16:4, Job32:2 I/O Depth:16以上で 性能低下 Fio RAW I/O, _DIRECT I/O Performance(ext4)
  • 16. 16© 2017 Toshiba Memory Corporation • 性能を突き詰めていくとPage Cahce, File Systemの影響を受ける – innodb_flush_method: dsatasync(Default) からO_DIRECT ⇒ 20~40%の向上 – innodb_file_per_table:OFF(Default)からON ⇒ 4~8%の向上とFile Systemの影 響は少ない。 TPC-C性能に対する影響は?
  • 17. 17© 2017 Toshiba Memory Corporation • はじめに • NVMe SSDの実力 • Linux OSの影響 • MariaDB(innodb)性能チューニング • まとめ
  • 18. 18© 2017 Toshiba Memory Corporation • 他にも試してみたので紹介させて頂きます – Innodb_buffer_pool_sizeだけ増やしたら? – I/O関係の設定だけ変更したら? – どの設定を変更するのが、一番効果があるの? MariaDB™(InnoDB)性能チューニング
  • 19. 19© 2017 Toshiba Memory Corporation Model Name, Version Server Supermicro 6028U-TNR4T+/3Y CPU Intel® Xeon® Processor E5-2640 v3 (8 cores/16 thread, 20MB cache, 2.6GHz (TB:3.4GHz)) x 2 Memory 64GB(2133MHz DDR4 SDRAM) OS CentOS™ 7.3.1611(kernel: 3.10.0-514.26.2.el7.x86_64) SSD PX04PMB080 MariaDB 5.5.52 HarmaerDB 2.23 評価環境 TPC-C - Warehouse: 3000 - Virtual user: 2, 4, 6, 8, 10, 20, 40, 60, 80, 100, 150, 200, 300, 400, 500 - Rump Time:30分, Run Time:15分
  • 20. 20© 2017 Toshiba Memory Corporation • 単にinnodb_buffer_pool_sizeだけ増やしても、TPC-C性能は向上 – Fdataaync:1.4~2.1倍 – O_DIRECT:1.3~2.4倍 • 1~2GiB以上に増やしてもTPC-C性能は向上しない innodb_buffer_pool_sizeだけ増やしたら?
  • 21. 21© 2017 Toshiba Memory Corporation • fdataasyncでinnodb_log_file_size以外の設定を変えた場合に10~15%の性能 向上する • O_DIRECTでは、差が無い I/O関係の設定だけ変えたら?
  • 22. 22© 2017 Toshiba Memory Corporation Case 1 Default Case2 1GiB Case3 1GiB-I/O Case4 1GiB-I/O-Log Case5 32GiB-I/O Case6 32GiB-Log Case7 32GiB-I/O-Log innodb_buffer_pool_size 128MiB (Default) 1GiB 1GiB 1GiB 32GiB 32GiB 32GiB innodb_buffer_pool_instances 1 (Default) 1 (Default) 24 24 24 1 (Default) 24 innodb_read_threads 4 (Default) 4 (Default) 12 12 12 4 (Default) 12 innodb_read_threads 4 (Default) 4 (Default) 12 12 12 4 (Default) 12 read_buffer_size 128KiB (Default) 128KiB (Default) 1024KiB 1024KiB 1024KiB 128KiB (Default) 1024KiB Read_rnd_buffer_size 256KiB (Default) 256KiB (Default) 2048KiB 2048KiB 2048KiB 256KiB (Default) 2048KiB inno_db_io_capacity 2000 (Default) 2000 (Default) 100000 100000 100000 2000 (Default) 100000 innodb_flush_neighbor_pages area (Default) area (Default) None None None area (Default) None innodb_log_file_size 5MiB (Default) 5MiB (Default) 5MiB (Default) 512MiB 5MiB (Default) 512MiB 512MiB どれが効果があるの? • 色々やってみました
  • 23. 23© 2017 Toshiba Memory Corporation • Page Cacheを使用するfdataasync, O_DIRECTともに傾向は変わらず – innodb_buffer_pool_sizeとinnodb_log_file_sizeを増やさないとTPC-C性能は向 上しない • まずは、innodb_buffer_pool_sizeとinnodb_log_file_sizeから – O_DIRECTの場合、次にinnodb_read_threads, innodb_write_threads, innodb_io_capacityをチューニング • どこまで上げられるかは、使用するSSD次第 MariaDB TPC-C性能
  • 24. 24© 2017 Toshiba Memory Corporation • TPC-C性能を突き詰めていくためには、O_DIRECT! – 特にVirtual Users数が増えた時の性能差が大きい(40%!) • 障害時のデータ消失、Page CacheとDB内のMemory Poolのデータの2重Copyを避けるために O_DIRECTを使用しているが、NVMe SSD性能を使い切るためにもO_DIRECT! fdataasync VS O_DIRECT
  • 25. 25© 2017 Toshiba Memory Corporation • TPC-Cでは、Write比率が高く、TPC-C性能を向上するためにはWrite性能が大事 • 特にPage Cacheを使用しないO_DIRECTでは、Read要求を削減するため、 innodb_memory_pool_sizeを増やす必要がある TPC-CではWrite性能が大事
  • 26. 26© 2017 Toshiba Memory Corporation • TPC-C性能とWrite量は比例しない。 – innodb_log_file_size,innodb_buffer_pool_sizeを変更して、不要な Write要求を削減する必要がある。 • 不要なI/Oを削減後、innodb_max_iocapacity, innodb_read_threads, innodb_write_threadsを変更しないと効果が少ない Write性能が重要でも…
  • 27. 27© 2017 Toshiba Memory Corporation • Page Sizeを16KiB(Default)から4KiB, 8KiBに変えると – Virtual User数150以下では、10~13%の性能向上 – Virtual User数200以上では、性能に大きな差は無い • 4KiB Pageと8KiB Pageで性能差はない Page Sizeを変えたら?
  • 28. 28© 2017 Toshiba Memory Corporation • はじめに • NVMe SSDの実力 • Linux OSの影響 • MariaDB(innodb)性能チューニング • まとめ
  • 29. 29© 2017 Toshiba Memory Corporation • SSDの性能向上により、使用状況によっては、 Page Cache, File Systemが要因でSSDの性 能を使い切れない。 – MariaDBのTPC-C評価でもOS要因の性能限界が見え始めている。 – TPC-C性能を向上させるために、以下が有効 • Page Cacheを使用しないO_DIRECTの使用 • NVMe SSDの高速性を生かすためには、やはりMemoryとMariaDBのチューニングが必要 – まずは、innodb_memory_buffer_poolとinnodb_log_file_sizeから • これだけでも5,400~11,000KTPM(90~180KTPS)! – TPC-C性能を向上するためには、SSDのWrite性能が大事! • Random Write性能とSequential Write性能どちらも大事 – I/O量とTPC-C性能は相関しない • 無駄なI/O削減が重要 • 高速なSSDを使用することで、TPC-C性能は向上 – 高速なSSDを使用しても無駄なI/Oを発行していたら、TPC-C性能は向上しない • 無駄なI/Oを削減するチューニング、SQL/テーブル設計が大事 – 高速なSSD性能を使い切れるか、皆様の腕の見せ所! まとめ
  • 30. 30© 2017 Toshiba Memory Corporation