T2/T3インスタンスにおいて、New Relic InfrastructureのCPU使用率を抑える

シェアする

Voiced by Amazon Polly

AWSにおいて、T2/T3インスタンスはCPU使用率を厳密に管理する必要があります。
ベースライン以上のCPU使用率となっている場合、CPUクレジットの消費量が獲得量を上回り、結果として使用できるCPUが極端に制限されてしまいます(%stealが高くなる)。
Lightsailインスタンスも、内部的にはT2インスタンスであるため同様の注意が必要です。CPUクレジットを使い切ると使用できるCPUの割合がベースラインレベルまで制限されてしまいます。

広告



New Relic InfrastrucureでCPU使用率を抑える

New Relic Infrastructureは、デフォルトでホストのメトリックと同時に設定値をInventoryに送信しています。しかし、特にSELinuxの設定値の取得においてはCPU負荷がそれなりにかかります。
CPU使用量を平常時はできるだけ0に近い状態で抑える必要があるT2/T3インスタンスにおいては、致命的です。

現象の確認

topおよびpsコマンドを使用し、semoduleが極端に高いCPU使用率を示している場合はこの事象の対象です。

対処

参考ページ:https://discuss.newrelic.com/t/newrelic-infra-agent-is-launching-semodule-l-over-and-over-again-killing-the-box/50619
/etc/newrelic-infra.ymlファイルに、次の項目を追記します。デフォルトでライセンスキーのみが書かれていますが、その次の行に記載します。
selinux_enable_semodule: false

コロン(:)の後の空白は必須です。また、この行の前に空白やタブを入れると正常動作しなくなるため、入れないでください。

設定後は、newrelic-infraサービスを再起動してください。

この設定を行うと、SELinuxに関するデータがInventoryに送信されなくなります。結果として、semoduleによるCPU使用量を低減することが可能です。

追記


この設定を行ったt2.nano相当のインスタンスにて、CPU使用率を約11%→1.1%まで低減させることができました。