CentOS7でBitcoindやMonacoindがディスクI/Oやメモリ、CPUを食いつぶさないようにするための設定 その1

CentOS7でBitcoindやMonacoindを起動すると、ディスクI/Oやメモリ、CPUを根こそぎ食われてサーバーが激重になる場合があります。このページでは、そのような事態を防ぐための設定について解説します。

もくじ

  • 使用するもの・前提条件
  • ディスクI/Oを食いつぶさないようにするための設定
  • メモリを食いつぶさないようにするための設定
  • CPUを食いつぶさないようにするための設定(別記事)

使用するもの・前提条件

このページでは、Cgroupsを使用してディスクI/O及びメモリ、CPU使用率の制御を行います。Cgroupsを利用したリソース制御のやり方はこちらでも解説していますが、このページで解説している操作を行う前に予め以下のコマンドで必要なものをインストールし、設定を済ませましょう。

また、Monacoind/Bitcoindを稼働させるユーザーが存在していることを前提とします(リソース制御をユーザー単位で行うため)。Monacoind/Bitcoind以外のソフトを稼働させるユーザー・管理用ユーザーとMonacoind/Bitcoindを稼働させるユーザーは別々にしてください。なお、以降の解説ではMonacoind/Bitcoindを稼働させるユーザーのユーザー名をhogeとします。

ディスクI/Oを食いつぶさないようにするための設定

まずはディスクI/Oの設定を行い、Monacoind/Bitcoindがストレージのデータを読み書きする速度を制限します。こちらを参考にMonacoind/Bitcoindのデータが存在する論理ボリュームのデバイス番号(メジャー番号、マイナー番号)を把握した上で、以下のコマンドで設定ファイルを編集します。

読み取り・書き込み速度の上限値は、各自の環境に合わせて適切な値をセットしましょう。あまり厳しくするといつまで経ってもブロックチェーンの同期が終わらなくなる可能性もあるので、そのへんも考慮して設定してください。…蛇足だとは思いますが、「blkio.throttle.read_bps_device」にセットするのが読み取り速度の上限値で、「blkio.throttle.write_bps_device」にセットするのが書き込み速度の上限値です。

/etc/cgconfig.confを編集したら、/etc/cgrules.confも編集します。

両ファイルの編集が完了したら、以下のコマンドで設定を反映させましょう。

メモリを食いつぶさないようにするための設定

ストレージへのアクセス速度規制も必要ですが、特にBitcoindはメモリ喰いなのでメモリ使用量についても上限値を設定する必要があります。再びroot権限で/etc/cgconfig.confを開いて設定を追記します。

「memory.limit_in_bytes」では、物理メモリ使用量の上限値を設定します。特に単位を付けずに書くとバイト単位で解釈されますが、末尾にK/M/Gと書くとそれぞれキロバイト、メガバイト、ギガバイトとして解釈されます。上の例では512メガバイトを上限値にしています。
「memory.memsw.limit_in_bytes」では、物理メモリとスワップの使用量合計の上限を設定します。書式は「memory.limit_in_bytes」と同様です。スワップ領域に手を付けたくない場合は「memory.limit_in_bytes」と同じ値をセットすればOKです。

/etc/cgconfig.confを編集したら、/etc/cgrules.confも編集します。2つ以上のサブシステムを利用する場合はカンマで区切って追記します。

両ファイルの編集が完了したら、以下のコマンドで設定を反映させましょう。

このブログを応援する・寄付する

当ブログでは暗号通貨による寄付を募っております。

モナゲボタン モナゲボタン

Bitcoin:

Monacoin:

Litecoin: