SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

最新イベントはこちら!

Enterprise IT Women's Forum

2025年1月31日(金)17:00~20:30 ホテル雅叙園東京にて開催

Security Online Day 2025 春の陣(開催予定)

2025年3月18日(火)オンライン開催

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

EnterpriseZine(エンタープライズジン)

EnterpriseZine編集部が最旬ITトピックの深層に迫る。ここでしか読めない、エンタープライズITの最新トピックをお届けします。

『EnterpriseZine Press』

2024年秋号(EnterpriseZine Press 2024 Autumn)特集「生成AI時代に考える“真のDX人材育成”──『スキル策定』『実践』2つの観点で紐解く」

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1652772241096-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1652772241096-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1652772241096-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1652772241096-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1652772241096-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
MySQLチューニング虎の巻

MySQL InnoDBストレージエンジンのチューニング(後編)

005


前回は、InnoDBのチューニングをするために知っておくべきInnoDBの特徴と基本的な構造についてごく簡単に紹介した。それらを踏まえた上で、今回はInnoDBをどのようにチューニングするかについて解説しよう。新しい用語も出てくるが、それらについては本稿において説明しているので安心して欲しい。まだ前回のエントリを読んでいないというひとは、まずそちらに目を通して頂きたい。

チューニングの基礎

 それでは、具体的にInnoDBでどこをチューニングするべきかを見ていこう。

バッファプール

 最も基本となるのがバッファサイズの調整だ。ワーキングセットが全てバッファに収まらない限り、バッファプールは大きければ大きいほど良い。その分ディスクアクセスが減るからだ。バッファサイズが小さいと、キャッシュミス時にディスクからReadするのに時間がかかり、I/Oがボトルネックになってしまう。予算のある限りメモリを目いっぱい搭載し、バッファプールに割り当てよう。InnoDBのバッファプールは、innodb_buffer_pool_sizeオプションで設定する。利用可能なメモリは、他の処理に必要な分を除いたすべてをInnoDBのバッファプールに割り当てよう。

 innodb_buffer_pool=32G

 ここで一つ注意がある。innodb_buffer_pool_sizeはバッファプールそのもののサイズを指定するオプションだが、InnoDBはバッファプールのサイズに比例してメモリを消費するオブジェクトが存在する。そのため、innodb_buffer_pool_sizeよりも5~10%ほど多くメモリを消費するということを覚えておこう。

ログの調整

 InnoDBでは、全ての変更はバッファプール上で行われ、後から遅れてバッファプールの内容がテーブルスペースへ書き込まれる。そして、永続性を保証するためにログに更新した内容を記録するようになっている。ログへの更新はシーケンシャルな書き込みになるためテーブルスペースへの書き込みに比べると高速だからだ。

 すると、必然的に「ログファイルおよびバッファプール上には存在するが、テーブルスペースには存在しない」というデータが生じることになる。そのようなデータを含んだページは「ダーティページ」と呼ばれる。当然、MySQLサーバーやOSがクラッシュすると、再起動後にはバッファプール内のデータは全て失われる。ここが重要なポイントなのだが、ダーティページのデータを復元するにはログにデータが存在している必要がある。そのため、どれだけのダーティページが存在できるかは、ログファイルのサイズにかかっている。ダーティページが増えすぎ、ログファイルの空き容量がなくなると、さらに更新を続けるためにはまずダーティページをテーブルスペースへフラッシュする必要がある。そうしなければ新たに更新によってダーティページを生成することができないからだ。

 どの道最終的にダーティページはテーブルスペースへ書きこまれなければならないので、ダーティページをたくさん保持出来ることはそれほどメリットがないと感じられるかも知れない。だが、ダーティページのサイズが大きいということは、次の2つの意味でメリットがある。

  • 一気にたくさんのデータが更新された場合、その更新によるディスクI/Oの負荷を先延ばしに(平滑化)できる
  • ダーティページがフラッシュされる前に再び更新される確率が上昇し、それにより必要なフラッシュの回数が減る

 従ってログファイルが大きい方が更新性能が高くなるというわけだ。ログファイルのサイズは、innodb_log_file_sizeおよびinnodb_log_files_in_groupで指定する。前者はログファイルひとつのサイズ、後者はログファイルの個数である。MySQL 5.5ではログファイルのサイズは合計で最大4GBまでという制限がある。だが、開発版ではMySQL 5.6.3から512GBまでログファイルを拡張することが可能になっている。大きなバッファプールを割り当てるなら、その分ログファイルも大きなものを割り当てよう。

 意外と見逃しがちなのがログバッファ。まだコミットされていないトランザクションは、最大限ログバッファ内にキャッシュしておくのが望ましい。従って、必要となるログバッファのサイズはワーキングセットサイズではなく、更新の量とディスクの速度によって変化する。アプリからの更新が多いようなら増やしてみて、効果を測定しよう。ログバッファのサイズはinnodb_log_buffer_sizeで指定する。

ログのフラッシュ方式

 トランザクションのコミット時にその内容はログファイルに書き込まれる。その際、デフォルトではディスクに確実に書き込まれるよう、fsyncによりディスクへの同期が行われる。ログの内容がディスクに残っていれば、マシンが突然クラッシュした場合などでもデータが消失することはない。ログへの書き込みはシーケンシャルなのでランダムアクセスと比較すると高速ではあるが、それでもディスクへの同期はとても時間のかかる処理だ。もし同期をしないで済むのなら、InnoDBの更新速度は飛躍的に向上する。

 例えば、レプリケーションのスレーブや準同期レプリケーションのマスターであれば、万が一クラッシュした場合でも他のサーバーからデータの復旧が可能であるため準同期レプリケーションを用いたHA化手法については、以前ブログで紹介したので興味があればそちらを見て頂きたい。参考:漢(オトコ)のコンピュータ道: 最強のMySQL HA化手法 - Semi-Synchronous Replication

 ディスクへの同期をOFFにするには、innodb_flush_log_at_trx_commitをデフォルトの1から変更しよう。

次のページ
ダブルライトバッファ

' ); }

この記事は参考になりましたか?

  • Facebook
  • X
  • Pocket
  • note
MySQLチューニング虎の巻連載記事一覧

もっと読む

この記事の著者

奥野 幹也 (オクノ ミキヤ)

日本オラクル株式会社
MySQL Global Business Unitテクニカルアナリスト

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/3829 2015/08/25 08:13

Job Board

AD

' ); document.write(''); } $(window).on('load', function() { // 中身が無い広告でslotOnloadを通らない場合がある var show_ad = 0; dfp_job_board.map(function(ad_id) { var ad = $('#'+ad_id[0]).find('iframe').last(); var contents = ad.contents(); if (contents.find('body').length === 0 || !contents.find('body').html()) { $('#' + ad_id[0]).remove(); //$('#' + ad_id[0]).attr('class', 'noad'); } else { show_ad++; } }); if (show_ad == 0) { $('.ad-job-board-wrap-sp').hide(); } }); } else { $('.ad-job-board-wrap-sp').hide(); }

おすすめ

アクセスランキング

  1. 1
    “第3の波”といわれる「エージェントAI」動向を探る──Salesforce/NTTデータ/UiPath
  2. 2
    【特集】日本オラクル三澤社長/日本マイクロソフト津坂社長が2024年を振り返る 2025年の抱負とは NEW
  3. 3
    広島からデジタル変革に挑む!ひろぎんHD、NECらが示す地域DXに向けた“産・官・学・金”共創の道筋 NEW
  4. 4
    NICTのサイバーセキュリティ研究所長が語る、不足が深刻な「セキュリティ人材」育成の有効策とは?
  5. 5
    縦割り組織が抱える「サイロ化」を解消へ──後回しにしてきたマスターデータ管理で“足場を固める”
  1. 6
    サントリーが実践したMLOps 機械学習モデルの「組織横断的な運用」を実現するポイントとは?
  2. 7
    マイクロソフト「Ignite 2024」発表の最新事例:AIエージェント化するCopilotの進化とは?
  3. 8
    ソニーグループの生成AI活用が本格化──内製「Enterprise LLM」とベクトルDBによる独自の環境構築
  4. 9
    マイクロソフト「Ignite 2024」──AIエージェントを実現するCopilot&AI Stackとは
  5. 10
    【年末特集】JTB、日清食品HD、横浜市、損保ジャパンのCIO/CISOに2025年の目標を尋ねる

アクセスランキング

  1. 1
    “第3の波”といわれる「エージェントAI」動向を探る──Salesforce/NTTデータ/UiPath
  2. 2
    【特集】日本オラクル三澤社長/日本マイクロソフト津坂社長が2024年を振り返る 2025年の抱負とは NEW
  3. 3
    広島からデジタル変革に挑む!ひろぎんHD、NECらが示す地域DXに向けた“産・官・学・金”共創の道筋 NEW
  4. 4
    NICTのサイバーセキュリティ研究所長が語る、不足が深刻な「セキュリティ人材」育成の有効策とは?
  5. 5
    縦割り組織が抱える「サイロ化」を解消へ──後回しにしてきたマスターデータ管理で“足場を固める”
  6. 6
    サントリーが実践したMLOps 機械学習モデルの「組織横断的な運用」を実現するポイントとは?
  7. 7
    マイクロソフト「Ignite 2024」発表の最新事例:AIエージェント化するCopilotの進化とは?
  8. 8
    ソニーグループの生成AI活用が本格化──内製「Enterprise LLM」とベクトルDBによる独自の環境構築
  9. 9
    マイクロソフト「Ignite 2024」──AIエージェントを実現するCopilot&AI Stackとは
  10. 10
    【年末特集】JTB、日清食品HD、横浜市、損保ジャパンのCIO/CISOに2025年の目標を尋ねる
  1. 1
    NICTのサイバーセキュリティ研究所長が語る、不足が深刻な「セキュリティ人材」育成の有効策とは?
  2. 2
    大規模システム障害を経たみずほ“IT運用改革”の今 7万パターンの障害対応は生成AIで自動化できるか
  3. 3
    生成AIのハルシネーション克服へ RAG構築における「データ構造化」の4つのポイントとは?
  4. 4
    ヤマハ発動機のサイバーセキュリティは「アクセル」でありたい──グローバル・取引先とともに進める
  5. 5
    会員1億人超「dポイント」の安定稼働を支える大規模インフラ共通基盤:ドコモ情シスが挑む3大DXに迫る
  6. 6
    「アイデンティティ管理」と共にキャリアを積んだ、Okta リージョナルCSO板倉氏に聞く
  7. 7
    「ソブリンクラウド」がクラウド業界の局面を変える──エンジニアのスキルセットも変化、人材育成が障壁に
  8. 8
    「能動的サイバー防御で日本は“蚊帳の外”」名和利男氏、新井悠氏、辻伸弘氏が示す官民連携への道筋
  9. 9
    アクティビスト対応は経営変革のトリガー ── DNP とJ.フロントリテイリングが語るCFO組織の役割とは
  10. 10
    三菱UFJ銀行が“生成AI”活用にアクセル、グループ企業への展開も視野にいれた新プロジェクトの狙いは

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

メールバックナンバー

アクセスランキング

  1. 1
    “第3の波”といわれる「エージェントAI」動向を探る──Salesforce/NTTデータ/UiPath
  2. 2
    【特集】日本オラクル三澤社長/日本マイクロソフト津坂社長が2024年を振り返る 2025年の抱負とは NEW
  3. 3
    広島からデジタル変革に挑む!ひろぎんHD、NECらが示す地域DXに向けた“産・官・学・金”共創の道筋 NEW
  4. 4
    NICTのサイバーセキュリティ研究所長が語る、不足が深刻な「セキュリティ人材」育成の有効策とは?
  5. 5
    縦割り組織が抱える「サイロ化」を解消へ──後回しにしてきたマスターデータ管理で“足場を固める”
  1. 6
    サントリーが実践したMLOps 機械学習モデルの「組織横断的な運用」を実現するポイントとは?
  2. 7
    マイクロソフト「Ignite 2024」発表の最新事例:AIエージェント化するCopilotの進化とは?
  3. 8
    ソニーグループの生成AI活用が本格化──内製「Enterprise LLM」とベクトルDBによる独自の環境構築
  4. 9
    マイクロソフト「Ignite 2024」──AIエージェントを実現するCopilot&AI Stackとは
  5. 10
    【年末特集】JTB、日清食品HD、横浜市、損保ジャパンのCIO/CISOに2025年の目標を尋ねる

アクセスランキング

  1. 1
    “第3の波”といわれる「エージェントAI」動向を探る──Salesforce/NTTデータ/UiPath
  2. 2
    【特集】日本オラクル三澤社長/日本マイクロソフト津坂社長が2024年を振り返る 2025年の抱負とは NEW
  3. 3
    広島からデジタル変革に挑む!ひろぎんHD、NECらが示す地域DXに向けた“産・官・学・金”共創の道筋 NEW
  4. 4
    NICTのサイバーセキュリティ研究所長が語る、不足が深刻な「セキュリティ人材」育成の有効策とは?
  5. 5
    縦割り組織が抱える「サイロ化」を解消へ──後回しにしてきたマスターデータ管理で“足場を固める”
  6. 6
    サントリーが実践したMLOps 機械学習モデルの「組織横断的な運用」を実現するポイントとは?
  7. 7
    マイクロソフト「Ignite 2024」発表の最新事例:AIエージェント化するCopilotの進化とは?
  8. 8
    ソニーグループの生成AI活用が本格化──内製「Enterprise LLM」とベクトルDBによる独自の環境構築
  9. 9
    マイクロソフト「Ignite 2024」──AIエージェントを実現するCopilot&AI Stackとは
  10. 10
    【年末特集】JTB、日清食品HD、横浜市、損保ジャパンのCIO/CISOに2025年の目標を尋ねる
  1. 1
    NICTのサイバーセキュリティ研究所長が語る、不足が深刻な「セキュリティ人材」育成の有効策とは?
  2. 2
    大規模システム障害を経たみずほ“IT運用改革”の今 7万パターンの障害対応は生成AIで自動化できるか
  3. 3
    生成AIのハルシネーション克服へ RAG構築における「データ構造化」の4つのポイントとは?
  4. 4
    ヤマハ発動機のサイバーセキュリティは「アクセル」でありたい──グローバル・取引先とともに進める
  5. 5
    会員1億人超「dポイント」の安定稼働を支える大規模インフラ共通基盤:ドコモ情シスが挑む3大DXに迫る
  6. 6
    「アイデンティティ管理」と共にキャリアを積んだ、Okta リージョナルCSO板倉氏に聞く
  7. 7
    「ソブリンクラウド」がクラウド業界の局面を変える──エンジニアのスキルセットも変化、人材育成が障壁に
  8. 8
    「能動的サイバー防御で日本は“蚊帳の外”」名和利男氏、新井悠氏、辻伸弘氏が示す官民連携への道筋
  9. 9
    アクティビスト対応は経営変革のトリガー ── DNP とJ.フロントリテイリングが語るCFO組織の役割とは
  10. 10
    三菱UFJ銀行が“生成AI”活用にアクセル、グループ企業への展開も視野にいれた新プロジェクトの狙いは