いくつかのシステム メトリックを収集して Graphite に出荷するための簡単な Python スクリプトを作成しました。また、デバッグ中にデバッグ目的でいくつかの印刷ステートメントをスクリプトに書き込み、ログに記録するためにそれらを保持することにしました。
スクリプトはいくつかの基本的な OS コマンドを実行し、結果をコンソールに出力し、それらをカーボン キャッシュに送信し、10 秒間スリープしてから最初からやり直します。
スクリプトをフォアグラウンドで実行すると、予想どおり、正しい出力が 10 秒ごとに stdout に出力されます。スクリプトを実行するpython ports.py >> /var/log/ports.log
と、ログ ファイルへのリダイレクトが /very/ 遅くなります。ファイルを追跡すると、一度に何分間も出力が表示されず、出力が「途切れ途切れ」になる場合があります。つまり、以下に示すように、出力が途切れる可能性があります。
foo:/var/log# tailf open_ports.log
stats.foo.open_ports.broadsoft1 1 1378477047.01
stats.foo.open_ports.broadsoft2 1 1378477047.01
stats.foo.open_ports.bash 15 1378477047.01
stats.foo.open_ports.flash 16 1378477047.01
stats.foo.open_ports.cash 16 1378477047.01
stats.foo.open_ports
私がこれを見ることを期待するとき:
stats.foo.open_ports.broadsoft1 1 1378477036.44
stats.foo.open_ports.broadsoft2 1 1378477036.44
stats.foo.open_ports.bash 14 1378477036.44
stats.foo.open_ports.flash 16 1378477036.44
stats.foo.open_ports.cash 16 1378477036.44
stats.foo.open_ports.NS2 13 1378477036.44
stats.foo.open_ports.NMS 16 1378477036.44
stats.foo.open_ports.Netsun1 13 1378477036.44
stats.foo.open_ports.Cacti 16 1378477036.44
Metrics sent.
なぜこれが起こるのですか?これを修正するにはどうすればよいですか? 私が知る限り、それは何にも影響を与えていませんが、なぜこれが行われるのか、この動作を修正するために何ができるのかを知りたい.