分MySQLで大切なパラメータの1つとして,innodb_buffer_pool_sizeというバッファプールのサイズを決めるパラメータがあります。デフォルトは128MBで,この値を変更することで大きくパフォーマンスが良くなる可能性があります。MySQL8.0ではinnodb_dedicated_serverをONに設定することで,起動時に環境のメモリに応じて値を設定する仕組みが導入されました。今回は,innodb_dedicated_serverをONにするとinnodb_buffer_pool_sizeの容量がどれくらい設定されるのかを確認し,オンラインでinnodb_buffer_pool_sizeの変更を実施してみたいと思います。innodb_dedicated_serverinnodb_dedicated_serverは,MySQL8.0.3で追加されたシステム変数です。この設定をONにすることで,以下の4つのシステム変数を自動で設定します。innodb_buffer_pool_sizeinnodb_log_file_sizeinnodb_log_files_in_groupinnodb_flush_methodinnodb_dedicated_serverをONにすると,サーバーのリソースに応じて上記のパラメータが変動します。ONにするにはmy.cnfにinnodb_dedicated_server=1を設定するか,起動のオプションに--innodb_dedicated_server=1をつけて実行します。試しに,メモリ1GBのサーバーに対してinnodb_dedicated_serverをONにして,実行してみます。sec)各種値が設定されています。続いてinnodb_buffer_pool_size等の各種設定をmy.cnfに設定した状態で起動してみます。explicitly.起動時に上記のようなワーニングが出力されました。innodb_dedicated_serverをONにしても,my.cnfで設定した値が優先して設定されます。sec)innodb_dedicated_serverをONにした場合,メモリが1GB未満の場合は128MB,1~4GBの場合はメモリの50%,4GB以上の場合はメモリの75%がinnodb_buffer_pool_sizeに割り当てられます。メモリの75%試しにメモリが128GBのサーバーで実施してみます。sec)innodb_buffer_pool_sizeに約100GB割り当てられました。このように,innodb_dedicated_serverは自動でinnodb_buffer_pool_sizeの割り当てを実施します。innodb_dedicated_serverはあくまでもMySQL専用として動かすことを前提としているため,多くのリソースをMySQLに占有されます。他のアプリケーションなども動いているような環境で設定することはおすすめしません。Serverをご覧ください。innodb_buffer_pool_sizeの変更MySQL5.6とそれ以前までは,innodb_buffer_pool_sizeを変更する場合にMySQLの再起動が必要でしたが,MySQL5.7からオンラインでバッファプールサイズを変更することが可能になりました。最初に設定したinnodb_buffer_pool_sizeが小さいと感じたり,逆にデータ容量に対してinnodb_buffer_pool_sizeを割り当て過ぎたと感じた場合はオンラインで変更することも可能です。オンラインでinnodb_buffer_pool_sizeを変更するinnodb_buffer_pool_sizeに設定する値はinnodb_buffer_pool_instances×innodb_buffer_pool_chunk_size(デフォルト128MB)単位で設定します。innodb_buffer_pool_instancesはサーバーのメモリが1GB以上の場合はデフォルトで8,1GB未満の場合は1になります。innodb_buffer_pool_sizeを利用します。実施中はInnoDB_buffer_pool_resize_statusで進行状況を確認することができます。1024などの乗算が使えます。innnodb_buffer_pool_sizeとinnodb_buffer_pool_instances,innodb_buffer_pool_chunk_sizeの設定値によって,各種値が適切に調整されることがあります。Sizeをご確認ください。innodb_buffer_pool_sizeをオンラインで変更するときの注意innodb_buffer_pool_sizeをオンラインで変更しようとする時に,長めのトランザクション処理や高いスループットのトランザクションを実行していると,innodb_buffer_pool_sizeの変更が待機になるおそれがあります。実行する際はバッチ処理や負荷がかかるような時間帯は避けて実施することをおすすめします。Internalsに記述されています。こちらもあわせてご確認ください。まとめ今回はinnodb_dedicated_serverでのinnodb_buffer_pool_sizeの設定とオンラインでの変更について紹介しました。innodb_buffer_pool_sizeの設定に迷ったときはぜひ検討してみてください。メモリ著者プロフィール深町日出海(ふかまちひでみ)GMOメディア株式会社のデータベースエンジニア。OracleとMySQLを担当。得意なプログラム言語はJava。MySQLの好きなところはTABLEやINDEXの識別子に64byteまで使えるところ。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。