SlideShare uma empresa Scribd logo
1 de 35
MySQL Tunnerを用いたパフ
ォーマンスチューニングの紹
介とハンズオン
2015/06/30 白石 雅義
あじぇんだ
• 自己紹介
• MySQLtunnerとは?
• 誰向けのツール?
• 使い方
• ハンズオン(Drupal @ Gridly + MySQL)
• 使用上の注意
• あとがき
自己紹介
BN:monolith
twitter : m_46
(外部アプリ連携やイベント参加用で使う程度)
facebook : 『白石 雅義 』 フレンド申請は大歓迎
生業にしている領域
サーバ + インフラ + ネットワーク + データベース
PostgreSQL + MySQL + SQLserver + α
OSSな活動
・MyNA
・kof
・Drupal User Group
・g.d.o / japan → 月イチのDrupalCafe
・jpug Postgreユーザー会
ぼちぼち新しい領域を,,,
(PythonとかCとかサーバ寄りの言語とか面白そう)
MySQLtunnerとは?
→Major Hayden氏が公開しているperl製の
診断ツールで、今のデータベースの利用状
況と統計情報を収集して my.cnfのパラメー
タ値を提案してくれるツール
誰向けのツール?
my.cnfのパラメータをどうチューニングして
良いか分かんない、本当にこの設定って活き
るの?…とか色々本には書いてあるけど、一
体どれが正しい?良いの?わからんー!って
人向けの導入のためのツールかな、と。
ライセンス:
「改善を共有することを大切にする」を前
提とする ’ GPLv3 ’ で提供
動作環境:
動作環境(氏の公開情報より)
MySQL 3.23, 4.0, 4.1, 5.0, 5.1 (full support) ←動作確認済み
MySQL 5.4 (not fully tested, partially supported)
MySQL 5.5 (partial support) ←動作確認済み
MySQL 5.6 (partial support) ←動作確認済み
MySQL 6.0 (partial support)
MariaDB 10.x (partial support)
Perl 5.6 or later (with perl-doc package)
氏の言葉(原文)
It is extremely important for you to fully understand each change
you make to a MySQL database server. If you don't understand
portions of the script's output, or if you don't understand the
recommendations,you should consult a knowledgeable DBA or
system administrator that you trust.Always test your changes on
staging environments, and always keep in mind that improvements
in one area can negatively affect MySQL in other areas.
氏の言葉(和文) やや意訳
あなたがMySQLデータベースサーバーとその変更について
完全に理解することが極めて重要です。スクリプトの出力の
一部を理解出来ていなかったり、推奨事項を理解出来ない場
合は、あなたが信頼する知識豊富なDBAまたはシステム管理
者に相談しましょう。ステージング環境で変更のインパクト
について入念にテストし、一つの領域の変更が他の領域に影
響を与える可能性がある事に注意してください。
ここで注意!!
「MySQL-tunnerが言ったからこのパラメー
タにした」ではえらい目に合いました
(失敗談は後ほど)
評価してくれる項目 その1
・Storage Engine Statistics
MySQLで使っているしているStorage Engineの統計情報
テーブルのフラグメンテーション(断片化)の情報
・Security Recommendations
現在のMySQLのセキュリティ設定に対する警告情報
評価してくれる項目 その2
・Performance Metrics
現在のパフォーマンスを表す指標情報
・Recommendations
前述の情報からのこのツールからの提案
導入方法と使い方
# cd ./{current directory}
# wget http://mysqltuner.pl/ -O
# chmod +x ./mysqltuner.pl
# ./mysqltuner.pl
githubにも公開されています。
以上!!
>> MySQLTuner 1.4.0 - Major Hayden <major@mhtx.net>
>> Bug reports, feature requests, and downloads at http://mysqltuner.com/
>> Run with '--help' for additional options and output filtering
Please enter your MySQL administrative login: root
Please enter your MySQL administrative password:
[OK] Currently running supported MySQL version 5.6.25
[OK] Operating on 64-bit architecture
-------- Storage Engine Statistics -------------------------------------------
[--] Status: Warning: Using a password on the command line interface can be insecure.
+ARCHIVE +BLACKHOLE +CSV -FEDERATED +InnoDB +MRG_MYISAM
Warning: Using a password on the command line interface can be insecure.
Warning: Using a password on the command line interface can be insecure.
[--] Data in MyISAM tables: 62K (Tables: 32)
[--] Data in InnoDB tables: 60M (Tables: 280)
[--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 52)
[!!] Total fragmented tables: 10
-------- Security Recommendations -------------------------------------------
Warning: Using a password on the command line interface can be insecure.
[OK] All database users have passwords assigned
Warning: Using a password on the command line interface can be insecure.
-------- Performance Metrics -------------------------------------------------
[--] Up for: 2d 11h 35m 4s (252K q [1.175 qps], 5K conn, TX: 387M, RX: 97M)
[--] Reads / Writes: 59% / 41%
[--] Total buffers: 164.0M global + 1.1M per thread (151 max threads)
[OK] Maximum possible memory usage: 325.6M (17% of installed RAM)
[OK] Slow queries: 0% (0/252 connections: 1% (3/151)
[OK] Key buffer size / total MyISAM indexes: 8.0M/244.0K
[OK] Key buffer hit rate: 99.9% (793 cached / 1 reads)
[OK] Query cache efficiency: 72.5% (145K cached / 200K selects)
[!!] Query cache pru ,,,,,
はんずおん!
よっしゃ!MySQL Tunner
が言った通り設定したやで!
彡(^)(^)......
どーん!
!?
MySQLがクラッシュし
起動しなくなる事案発生
150610 21:59:06 mysqld_safe Number of processes running now: 0
150610 21:59:06 mysqld_safe mysqld restarted
150610 21:59:23 [Warning] '--default-character-set' is deprecated and will be removed in a future release.
Please use '--character-set-server' instead.
150610 21:59:24 InnoDB: Initializing buffer pool, size = 386.0M
150610 21:59:24 InnoDB: Error: cannot allocate 404766720 bytes of
InnoDB: memory with malloc! Total allocated memory
InnoDB: by InnoDB 7994352 bytes. Operating system errno: 12
InnoDB: Check if you should increase the swap file or
InnoDB: ulimits of your operating system.
注:このサーバのメモリは2GBです
InnoDB: ulimits of your operating system.
InnoDB: On FreeBSD check you have compiled the OS with
InnoDB: a big enough maximum process size.
InnoDB: Note that in most 32-bit computers the process
InnoDB: memory space is limited to 2 GB or 4 GB.
InnoDB: We keep retrying the allocation for 60 seconds...
150610 22:00:28InnoDB: Fatal error: cannot allocate the memory for the buffer pool
150610 22:00:28 [ERROR] Plugin 'InnoDB' init function returned error.
150610 22:00:29 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
150610 22:01:47 [Note] Event Scheduler: Loaded 0 events
150610 22:01:47 [Note] /usr/libexec/mysqld: ready for connections.
oh...
何故?
2GBのVPSにMySQLを載せて稼働させているサーバに対
してこのツールで設定した通りのパラメータを適用して
稼働させた後、過負荷や障害によってMySQLがクラッシ
ュ。その後、サービスが再起動しようと試みたが、
MySQL Tunnerがレコメンドしてくれたパラメータ値を
my.cnfに落とし込んだ事で、OSのメモリ領域の大部分を
ぶん取ってしまっていた。それでもMySQLは健気にサー
ビスはリスタートしようとしたが、OSがメモリが無いよ
!と返してきた。結果、MySQLは停止状態で止まってし
まい稼働不能な状態に陥ってしまった。
使用上の注意
MySQLのcnfファイルによるチューニングは、
DiskにFlushするボトムネックを解消する為に、
メモリ領域を確保してデータをキャッシングす
る事で応答を高速化させる為のものと考えてお
く方が良い。ただしOSのリソースのほとんどを
確保してしまう事は危険!
MySQL Tunnerに頼りすぎてmy.cnfで確保する領
域を多くとり過ぎるのは気をつけましょう!
現状の統計情報から少し高めの設
定値を教えてくれるツールとして
認識し、レコメンドしてくれた値
を過信しない様にしましょう。
で?
運用してから適切なパラメ
ータを探り当てていくアプ
ローチを心がけましょう
搭載メモリ:2GBの場合(効果には個人差があります)
key_buffer = 128M
max_allowed_packet = 8M
thread_stack = 128K
thread_cache_size = 8
join_buffer_size = 1M
myisam_sort_buffer_size = 10M
myisam-recover = BACKUP
max_connections = 30
table_cache = 6144
tmp_table_size = 128M
max_heap_table_size = 128M
query_cache_limit = 10M
query_cache_size = 32M
default-storage-engine=InnoDB
innodb_data_file_path = ibdata1:1G
# テーブル毎のファイル作成
innodb_file_per_table
# 確保し過ぎ注意
innodb_buffer_pool_size = 256M
# ログファイルサイズ
innodb_log_file_size = 16M
# innodb内のデータ保持領域
innodb_additional_mem_pool_size = 20M
# InnoDB更新ログを記録するメモリ上の領域
innodb_log_buffer_size = 8M
# ファイルに書き出すタイミング
innodb_flush_log_at_trx_commit = 1
# InnoDBのトランザクションロールバック
タイムアウト時間
innodb_lock_wait_timeout = 50
とかとか...
ご清聴
ありがとう
ございました

Mais conteúdo relacionado

Mais procurados

tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
 
Handlersocket 20140218
Handlersocket 20140218Handlersocket 20140218
Handlersocket 20140218
akirahiguchi
 
Handlersocket etc. 20110906
Handlersocket etc. 20110906Handlersocket etc. 20110906
Handlersocket etc. 20110906
akirahiguchi
 

Mais procurados (20)

RHEL on Azure、初めの一歩
RHEL on Azure、初めの一歩RHEL on Azure、初めの一歩
RHEL on Azure、初めの一歩
 
MySQLチューニング
MySQLチューニングMySQLチューニング
MySQLチューニング
 
「Windows Azureで HPC 」 for JAZUG 2013年9月
「Windows Azureで HPC 」 for JAZUG 2013年9月「Windows Azureで HPC 」 for JAZUG 2013年9月
「Windows Azureで HPC 」 for JAZUG 2013年9月
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
 
SQL+GPU+SSD=∞ (Japanese)
SQL+GPU+SSD=∞ (Japanese)SQL+GPU+SSD=∞ (Japanese)
SQL+GPU+SSD=∞ (Japanese)
 
MySQLメインの人がPostgreSQLのベンチマークをしてみた話
MySQLメインの人がPostgreSQLのベンチマークをしてみた話MySQLメインの人がPostgreSQLのベンチマークをしてみた話
MySQLメインの人がPostgreSQLのベンチマークをしてみた話
 
Meetup 2104 my_homenutanixce_mizuta
Meetup 2104 my_homenutanixce_mizutaMeetup 2104 my_homenutanixce_mizuta
Meetup 2104 my_homenutanixce_mizuta
 
Jpug study-pq 20170121
Jpug study-pq 20170121Jpug study-pq 20170121
Jpug study-pq 20170121
 
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫
 
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
 
わたしを支える技術
わたしを支える技術わたしを支える技術
わたしを支える技術
 
20171212_GTCJapan_InceptionSummt_HeteroDB
20171212_GTCJapan_InceptionSummt_HeteroDB20171212_GTCJapan_InceptionSummt_HeteroDB
20171212_GTCJapan_InceptionSummt_HeteroDB
 
[Cyber HPC Symposium 2019] Microsoft Azureによる、クラウド時代のハイパフォーマンスコンピューティング High...
[Cyber HPC Symposium 2019]  Microsoft Azureによる、クラウド時代のハイパフォーマンスコンピューティング High...[Cyber HPC Symposium 2019]  Microsoft Azureによる、クラウド時代のハイパフォーマンスコンピューティング High...
[Cyber HPC Symposium 2019] Microsoft Azureによる、クラウド時代のハイパフォーマンスコンピューティング High...
 
Handlersocket 20140218
Handlersocket 20140218Handlersocket 20140218
Handlersocket 20140218
 
PostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツールPostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツール
 
Handlersocket etc. 20110906
Handlersocket etc. 20110906Handlersocket etc. 20110906
Handlersocket etc. 20110906
 
An Intelligent Storage?
An Intelligent Storage?An Intelligent Storage?
An Intelligent Storage?
 
[Azure Antenna] クラウドで HPC ~ HPC on Azure ~
[Azure Antenna] クラウドで HPC ~ HPC on Azure ~[Azure Antenna] クラウドで HPC ~ HPC on Azure ~
[Azure Antenna] クラウドで HPC ~ HPC on Azure ~
 
もしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったらもしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったら
 
Sfstudy#2チーム5
Sfstudy#2チーム5Sfstudy#2チーム5
Sfstudy#2チーム5
 

Semelhante a 20150630_MySQL勉強会

Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
Yasuhiro Arai
 
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境
yut148atgmaildotcom
 
Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用
Yukio Kumazawa
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
Naotaka Jay HOTTA
 
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)
Yoshinori Matsunobu
 

Semelhante a 20150630_MySQL勉強会 (20)

続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
 
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
 
Cld002 windows server_2016_で作るシンプ
Cld002 windows server_2016_で作るシンプCld002 windows server_2016_で作るシンプ
Cld002 windows server_2016_で作るシンプ
 
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
 
POWER8サーバでMariaDBベンチマーク
POWER8サーバでMariaDBベンチマークPOWER8サーバでMariaDBベンチマーク
POWER8サーバでMariaDBベンチマーク
 
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれNGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
 
ioMemoryとAtomic Writeによるデータベース高速化
ioMemoryとAtomic Writeによるデータベース高速化ioMemoryとAtomic Writeによるデータベース高速化
ioMemoryとAtomic Writeによるデータベース高速化
 
LINEのMySQL運用について
LINEのMySQL運用についてLINEのMySQL運用について
LINEのMySQL運用について
 
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境
 
インフラ野郎AzureチームProX
インフラ野郎AzureチームProXインフラ野郎AzureチームProX
インフラ野郎AzureチームProX
 
Windows Server 2019 の Hyper-Converged Infrastructure (HCI)
Windows Server 2019 の Hyper-Converged Infrastructure (HCI) Windows Server 2019 の Hyper-Converged Infrastructure (HCI)
Windows Server 2019 の Hyper-Converged Infrastructure (HCI)
 
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
 
Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
 
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)
 
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
 
NetBSD on Google Compute Engine
NetBSD on Google Compute EngineNetBSD on Google Compute Engine
NetBSD on Google Compute Engine
 
CLUB DB2 第137回:基礎から再入門!DB2モニタリング入門
CLUB DB2 第137回:基礎から再入門!DB2モニタリング入門CLUB DB2 第137回:基礎から再入門!DB2モニタリング入門
CLUB DB2 第137回:基礎から再入門!DB2モニタリング入門
 

20150630_MySQL勉強会