2016-10-03 6 views
0

長時間実行されるメモリ集約型tarベースバックアップスクリプトの中断を防ぐにはどうすればよいですか?長期実行バックアップジョブが終了するのを防ぐ方法

tar --create --verbose --preserve-permissions --gzip --file "{backup_fn}" {excludes}/2> /var/log/backup.log 

それは外付けUSBドライブへの書き込み:

は、私は毎日のようにコマンドを実行するcronジョブを持っています。通常、生成されるファイルは100GBですが、Ubuntu 16にアップグレードした後、ログファイルはプロセスの約25%が殺されたことを示しています。おそらく大量のメモリを消費したり、 。

カーネルにこのプロセスを強制終了しないように指示するか、またはそれを調整して、非常に多くのリソースを消費しないようにします。

+0

ログの関連部分を表示するには、Qを編集する必要があります。理由やその他のデータなしで「タールプロセスが殺された」と表示された場合は、壁にアイデアを投げつけ、何がスティックであるかを見ることを除いて、助けの方法はありません。 http://askubuntu.comを投稿する方が良いかもしれませんが、バージョンを変更することが原因と思われます。がんばろう。 – shellter

+0

もっと簡単なアプローチ... logrotateのような外部ツールを使って、あなたのためにlog rotation- *圧縮ジョブを実行し、それぞれの圧縮ファイルをコピーしてください.... https://support.rackspace.com/how- to/understanding-logrotate-utility/ – Hackerman

+0

@shellter、ログには文字通り「Kill​​ed」と表示されますが、これはあまりにも多くのメモリを消費するプロセスにしか見られませんでした。私は他のディストリビューション/リリースでそれを見ましたが、これは私のバックアップスクリプトがこのようにして初めて殺されたことです。 – Cerin

答えて

2

メモリがあまりにも多く消費されたために犠牲になった場合は、swappinessの値を/proc/sys/vm/swappinessに増やしてみてください。 swappinessを増やすことで、このシナリオから離れることができます。チューニングoom_kill_allocating_taskを試すこともできます。デフォルトは0です。これは、ルージュのメモリホギングタスクを見つけようとします。その番号を1に変更すると、oom_killerは呼び出し元のタスクを強制終了します。

上記のいずれにも該当しない場合は、oom_score_adj/proc/$pid/oom_score_adjに設定してみてください。 oom_score_adjは、-1000から1000までの値の範囲を受け入れます。殺される可能性の低い値をoom_killerで下げてください。この値を-1000に設定すると、殺しが無効になります。しかし、正確に何をしているのかを知るべきです。

これはあなたにいくつかのアイデアを提供します。

関連する問題