4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Linuxのコマンドやスクリプトをリソース制限付きで実行する方法

Last updated at Posted at 2015-04-13

先日、自分が書いたスクリプトがサーバのCPU使用率を使いすぎてしまいちょっと困った事態になったのでその対応方法を記録しておきます。

ちなみにどういった事件が起きたかというと、

アプリログからエラーを収集するスクリプトを作成した。
jenkinsにて定期実行した。
アプリのエラーが数千万件発生しておりエラー収集スクリプトが通常であれば数秒で終わるはずが数時間たっても終了しない。
後続のjobが追い討ちをかけてCPUの使用率を上げてしまった。

という事件です。(本番環境ではなくテスト環境だったのが唯一の救い…)

(方法1)timeoutを使って制限

起動プロセスが設定時間内に終わらなかった場合、
timeoutを使えば子プロセス含めプロセスをkillできるらしいです。

timeout [OPTION] NUMBER[SUFFIX] COMMAND [ARG]...

(方法2) ulimitを使って制限

timeoutは実行時間で制限をかけることはできますが、
CPU実行時間だったり使用メモリ量だったりを考慮して、細かく制限をかけたい場合はulimitを使うと良いです。

ulimit [-acdflmnpstuvHS] [N]
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?