ここでは、MySQLコンソール上でスマートパラメータチューニングを実現する方法についてご説明します。 背景
「ディープラーニング」という言葉は一般の人々にも知られるようになってきました。現在では関連技術も比較的成熟し、Tencent Cloudデータベースチームも、ディープラーニング方式を利用してデータベースの運用効率を向上させたいと考えています。まず考えたのはデータベースのパラメータチューニングです。業務システムは千差万別であり、SQLの最適化のように細粒度で指向性の高いチューニングを行うことができません。これはデータベース管理者にとって頭の痛い問題であり、多くの場合は経験によって相対的に優秀なパラメータテンプレートを構築しなければなりません。データベースのパラメータチューニング能力は、プロフェッショナルなデータベース管理者だけが持つスキルでもあります。
2019~2021年にかけて、Tencent Cloudデータベースチームは《Automatic Database Tuning using Deep Reinforcement Learning》、《An Oline Cloud Database Hybrid Tuning System for Personalized Requirements》という2編の論文を相次いで発表し、国際特許を申請しました。現在は論文をベースにして、理論を基に利用可能なシステムを開発し、実際のシーンの中でデータベースパラメータを調整することでデータベースのパフォーマンスを向上させています。
データベースパラメータチューニングサービスが必要な理由:
パラメータが非常に多い:例えばMySQLの場合、数百もの設定項目があり、チューニングの難易度が高いです。
人的コストが高い:専任のDBAを必要とし、プロの経験に頼らざるを得ないため、マンアワーコストが高くなります。
ツールの汎用性:既存のツールは機能が限定され、時間がかかる割に目立った効果がありません。
クラウドでの新ニーズ:一部のユーザーは専任の運用保守チームを持っておらず、パラメータチューニングを行うことが困難です。
前提条件
ステータスが実行中であるMySQLインスタンスがあること。
使用制限
ユースケースに応じたスマートチューニングには1か月あたりの回数制限があり、各インスタンスにつき毎月3回チューニングを行うことができます。チューニング回数は毎月1日にリセットされます。
AIインテリジェント分析には1か月あたりの回数制限があり、各インスタンスにつき毎月1回チューニングを行うことができます。チューニング回数は毎月1日にリセットされます(AIインテリジェント分析は未公開です。どうぞご期待ください)。
スマートパラメータチューニング機能を使用するには、インスタンスのCPUが4コア以上である必要があります。
スマートパラメータチューニングのタスクリストには直近15回分のパラメータチューニング結果のみ保存されます。
インスタンスの削除/返却またはインスタンスが期限切れとなった時点で、スマートパラメータチューニングのタスクが実行中だった場合、そのタスクは自動的に中止され、削除されます。
1つのインスタンスにつき、同時実行できるチューニングタスクは1つのみであり、複数のチューニングタスクを開始することはできません。
スマートパラメータチューニング機能は現時点では北京、上海、広州リージョンのみサポートしています。今後は順次拡大する予定です。
操作手順
MySQLインスタンスを購入済みの場合
1. MySQLコンソールにログインし、上方でリージョンを選択し、インスタンスリストでインスタンスIDまたは操作列の管理をクリックして、インスタンス管理ページに進みます。 2. インスタンス管理ページでデータベース管理 >パラメータ設定 > スマートパラメータチューニングを選択します。
3. スマートパラメータチューニングのポップアップウィンドウで、ユースケースに応じたスマートチューニングまたはAIインテリジェント分析のどちらかのパラメータチューニング方式を選択し、設定した後、分析開始をクリックします。
ユースケースに応じたスマートチューニング方式を選択した場合、その後の手順は次のようになります。
ユースケースに応じたスマートチューニング:選択したユースケースに基づいてインテリジェント分析を行うことで、効率と指向性が向上します。
ユースケース選択のプルダウンキーをクリックして業務ユースケースを選択します。3種類のユースケース(取引系ユースケース、OLTPパフォーマンステスト、ストレステスト)から選択できます。
対応するユースケースを選択した後、システムがより正確な分析を行えるよう、そのユースケースにおける業務割合をカスタマイズすることができます。設定完了後に分析開始をクリックします。
取引系ユースケース(TPCC)
カスタマイズ内容:注文業務(高)、支払業務(高)、注文照会(低)、物流業務(低)、倉庫保管業務(低)
データ読み取り方式:全キャッシュ(デフォルト)、ディスク読み取り/書き込み
同時実行性:低、中、高(デフォルト)
OLTPパフォーマンステスト(Sysbench)
カスタマイズ内容:読み取り業務の割合(高),書き込み業務の割合(デフォルトでは無し)
データ読み取り方式:全キャッシュ(デフォルト)、ディスク読み取り/書き込み
同時実行性:低、中、高(デフォルト)
ストレステスト(myslap)
同時実行性:低、中、高(デフォルト)
選択したユースケースがAIインテリジェント分析方式の場合(この機能は未公開です。どうぞご期待ください)、その後の操作手順は次のようになります。
AIインテリジェント分析:データベースの運用メトリクスに対し詳細な分析を行うことで、データベースの業務タイプを確定し、さらにディープラーニングアルゴリズムによって、確定したユースケースの下での各パラメータのパフォーマンス分析を行い、パラメータ設定の提案を行います。
AIインテリジェント分析を選択し、分析開始をクリックします。
ご注意:
AIインテリジェント分析機能は現在ブラッシュアップ中のため、未公開です。どうぞご期待ください。
AIインテリジェント分析はディープラーニングアルゴリズムおよびビッグデータ分析機能を使用するため、分析に時間がかかります。業務に余裕のある時間帯に行うことをお勧めします。
4. 分析開始後、パラメータチューニングタスクは実行中となります。パラメータ設定ページでスマートパラメータチューニング > タスクの確認を選択し、タスクの詳細状況を把握することができます。
5. パラメータチューニングタスクの終了後、スマートパラメータチューニング > タスクの確認で、操作列の結果の確認をクリックします。
6. パラメータチューニングによる提案を確認した後、インスタンスに適用するをクリックします。
7. ポップアップしたダイアログボックスでパラメータの変更を確認し、実行方式を選択し、再起動ルールを読んでチェックを入れ、OKをクリックします。
実行方式:
今すぐ実行:OKを押すと、すぐにインスタンスに適用されます。
メンテナンス時間内:メンテナンス時間内にこの変更をインスタンスに適用します。メンテナンス時間はインスタンス詳細ページで変更できます。
MySQLインスタンスの新規購入の場合
MySQLインスタンスの購入時に、パラメータテンプレートを選択後、パラメータ適応を有効にするかどうかを選択します。パラメータ適応を使用すると、システムはお客様がパラメータテンプレートを選択した後にさらに選択した業務ユースケースに基づいて二次調整を行います。業務ユースケースには、取引系ユースケース、OLTPパフォーマンステスト、ストレステストの3種類があります。
対応する修正結果はパラメータ設定 > スマートパラメータチューニング > タスクの確認で確認できます。