ただし、DBMSの起動時に初期最適化を行うと非常に便利です。 この投稿では、mysqltunerおよびpgtuneユーティリティを使用してMySQLおよびPostgreSQLを自動的に最適化する方法について説明します。
MySQL
mysqlの最適化には、シンプルで使いやすいmysqltunerユーティリティがあります。
githubで無料で使用できます 。つまり、 こちらから入手できます 。 または、1つのコマンドでロードします。
wget https://raw.github.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl
使い方は簡単です。mysqlを使用してmysqltuner.plをサーバーにアップロードし、ファイルの起動権限を設定します(または、perl mysqltuner.plを実行します)。
推奨事項を構成に入れ、mysql-serverを再起動します。 または、プロジェクトがすでに実行されており、再起動が望ましくない場合は、mysqlコンソールで「オンザフライ」を使用します。
mysqlの構成のヒントに加えて、mysqlがしばらく使用されている場合、ユーティリティはテーブルのインデックスと断片化に関する情報も表示します。
インデックスはしばしば忘れられ、システムリソースの消費が大幅に増加します。
インデックスの配置は、データベースの構造を設計した人に任せるのが最適ですが、自分で行うこともできます。
最適化するには、mysqlコンソールからOPTIMIZE TABLEを実行しますが、phpMyAdminのようなインターフェースを介してすべてのテーブルに対して一度に行う方が便利です。
プロジェクトのプロセスをさらに最適化するために、すでに状況を調査し、必要なパラメーターを増やしています。
有用な情報は、 この記事で私の同僚によって説明されています 。
パフォーマンスを向上させるには、Perconaサーバーを使用して標準のMySQLサーバーを置き換えると便利です。
パフォーマンスグラフからメリットを判断できます 。
HabréのPercona Serverに関する記事はすでに多数ありますが、将来、このアセンブリの使用経験を共有します。
PostgreSQL
PostgreSQLの設定を調整するために、 pgtuneと呼ばれる便利なユーティリティもあります。
mysqltunerとは異なり、このユーティリティは推奨事項を提供しませんが、PostgreSQLを実行しているシステムに最適なパラメーターを使用して構成ファイルpostgresql.confをすぐに作成します。
使用パターンは次のとおりです。
pgtune -i $PGDATA/postgresql.conf -o $PGDATA/postgresql.conf.pgtune
ここで、$ PGDATAはpostgresql.confサーバー設定があるディレクトリへのパスです。 出力はpostgresql.conf.pgtuneファイルであり、このファイルにはユーティリティによって選択されたパラメーターが設定されます。 ユーティリティは、ブロックの後にファイルの最後にこれらのパラメーターを書き込みます
#------------------------------------------------------------------------------ # pgtune wizard run on YYYY-MM-DD # Based on XXXXXXX KB RAM in the server #------------------------------------------------------------------------------
追加のパラメーターを使用して、自動的に決定されたサーバーの特性に基づいてではなく、独自の裁量でパラメーター値を設定できます。
-Mまたは--memory-PostgreSQLに割り当てられるメモリリソースに基づいて、サーバー上の合計RAMサイズ。
-Tまたは--type-データベースのタイプを指定します:DW、OLTP、Web、Mixed、Desktop。
-cまたは--connections-データベースへの可能な最大接続数。 値が指定されていない場合、データベースのタイプに基づいて決定されます。
-Dまたは--debug-PostgreSQLでデバッグモードを有効にします
-Sまたは--settings-構成ファイルがあるディレクトリにインストールします。
ユーティリティの終了後、必要に応じて生成されたpostgresql.conf.pgtuneファイルを編集し(たとえば、非標準ポートの設定やロギングの構成)、postgresql.conf構成ファイルを置き換えて、PostgreSQLサーバーを再起動します。
質問/コメント/追加があれば嬉しいです!