名前
pgx_setrscctl --インスタンスに対するリソース制御の設定、削除、リストア
概要
pgx_setrscctl -a -i name -D directory --user=user [--cpu-shares=num] [--memory-limit-in-bytes=bytes] [--blkio-weight=num] [--cgroup-name=name] [--cluster-standbynode]
pgx_setrscctl -d -i name -D directory [--user=user] [--cluster-standbynode]
pgx_setrscctl -r -i name -D directory [--user=user]
説明
pgx_setrscctlは、インスタンスに対するリソース(CPU時間、メモリ、I/O)の制御を設定、削除、リストアします。インスタンスは停止させておく必要があります。このコマンドは、スーパーユーザー(root)のみが実行できます。
オプション
インスタンスに対してリソース制御を設定します。すでに設定済みのグループと同じ名前が指定された場合は、異常復帰します。
リソース制御を行うインスタンス間のI/Oアクセスの相対的比率を指定します。相対的比率は100から1000の範囲で指定します。デフォルトは1000です。たとえば、インスタンスAに100、インスタンスBに900を指定すると、インスタンスAが10%のI/O操作を使用し、インスタンスBが90%のI/O操作を使用します。なお、I/Oリソースの制御はIOスケジューラがCFQの場合のみ有効になります。IOスケジューラはCFQを使用してください。
リソース制御を行うcgroupのグループ名を指定します。アルファベットの大文字と小文字は区別します。グループ名の規約は、32バイト以内、かつ、先頭1バイトがASCIIアルファベット、かつ、先頭1バイト以外が、ASCIIアルファベット、ASCII数字または下線(“_”)です。デフォルトは“symfosvoi_インスタンス名”です。
リソース制御を行うcgroupのスライス名を指定します。アルファベットの大文字と小文字は区別します。グループ名の規約は、32バイト以内、かつ、先頭1バイトがASCIIアルファベット、かつ、先頭1バイト以外が、ASCIIアルファベット、ASCII数字または下線(“_”)です。スライス名は“system-symfosvoi-指定した名前”となります。デフォルトは“system-symfosvoi-インスタンス名”です。
クラスタ環境で待機系ノードに対してコマンドを実行する場合に指定します。
リソース制御を行うインスタンスが使用できるCPU時間の相対的配分を指定します。相対的配分は2以上の数値を指定します。デフォルトは1024です。たとえば、インスタンスAに250、インスタンスBに250、インスタンスCに500を指定すると、各インスタンスは1:1:2の割合でCPUを使用します。なお、CPUを使用する他のインスタンスが存在しない場合は、本オプションの指定に関わらず必要なだけCPUを使用します。
インスタンスからリソース制御の設定を削除します。
データベースのデータを格納するディレクトリの絶対パスを指定します。
インスタンス名を指定します。アルファベットの大文字と小文字は区別します。グループ名の規約は、16バイト以内、かつ、先頭1バイトがASCIIアルファベット、かつ、先頭1バイト以外が、ASCIIアルファベットまたはASCII数字です。
使用可能なメモリの最大値を指定します。最大値は1以上の数値を指定します。単位が指定されていない場合はバイト単位と解釈します。単位は、キロバイトはkまたはK、メガバイトはmまたはM、ギガバイトにはgまたはG、テラバイトにはtまたはTが指定できます。デフォルトは1Gです。
インスタンスに対するリソース制御の設定からcgroupをリストアします。
データベースサーバを起動または停止できるユーザーを指定します。リソース制御の設定を削除およびリストアする場合、initdbコマンドで作成したインスタンスに対して本コマンドを実行するときは必ず指定します。
診断
0: 正常終了
0以外: 異常終了
注釈
RHEL7の場合、unitファイル内には、pgx_dbinstanceで指定された値に基づいたリソース制御に必要な情報が設定されています。そのため、unitファイルの内容を編集しないでください。
このコマンドでリソース制御の設定または削除を実施した場合、必ずバックアップを取得してください。リソース制御の設定を削除後に、リカバリするとインスタンスの起動に失敗します。
例
Symfoware Serverのリソース制御を設定する例です。
# pgx_setrscctl -a -i inst1 -D /database/symfo/inst1/data --user=symfo --cpu-shares=2000 --memory-limit-in-bytes=15G --blkio-weight=500
Symfoware Serverのリソース制御を削除する例です。
# pgx_setrscctl -d -i inst1 -D /database/symfo/inst1/data
Symfoware Serverのリソース制御の設定をリストアする例です。
# pgx_setrscctl -r -i inst1 -D /database/symfo/inst1/data
クラスタ環境の待機系ノードで、Symfoware Serverのリソース制御を削除する例です。
# pgx_setrscctl -d -i inst1 -D /database/symfo/inst1/data --cluster-standbynode