コレなんでですかね?? / out_forward って詰まると性能劣化する? https://t.co/9ttScfedMU #fluentd
2013-11-27 13:51:18@tagomoris うぅ、大事なところ調べていなかった。追記しました。穴があったら入りたい。。。 #さっきまでずっとtopしてたのに。。。
2013-11-27 14:21:10@sonots これ1スレッドですよね? 1回のtryが終わる前にそれ以上の行数がバッファに書き込まれる状況だと加速度的に状況が悪くなるのは普通のことなのでスレッド増やしてみては
2013-11-27 14:24:51@tagomoris やってみました(追記しました)。3分半の sent 間隔が1分に縮まりました。が、詰まりがなくなる、とまではいきませんでした。
2013-11-27 15:08:19@sonots キューで処理する以上、瞬間処理性能以上にデータが来ちゃったら詰まりはじめたときに性能が劣化していくのは仕組み上当然だと思います。あといじるなら buffer_chunk_limit と上げれば見掛け上の性能はたぶん出ますけど、どこかでは詰まりますよ。
2013-11-27 15:10:12@repeatedly 最近うちであったqueue size limit exceeds問題と関係している可能性 RT @sonots: コレなんでですかね? / out_forward って詰まると性能劣化する? https://t.co/B9YqcFmG8k #fluentd
2013-11-27 15:10:51@repeatedly あー、なるほど。単にBufferedOutputのスレッドが追いついてなかっただけですか
2013-11-27 15:14:14@sonots @repeatedly fluent-agent-lite の場合は入力(tail -fとの間のパイプ)がblockして処理可能以上のデータが入ってくることはないですね
2013-11-27 15:16:17@tagomoris ふむー。まとめて(さっきのだと1分毎)にドバッと流さずに毎秒流すようにしたいんですが、パラメータ調整ぐらいではちょっと無理そうですね。。。
2013-11-27 15:17:05@sonots buffer_chunk_limit を 1M とかにして buffer_chunk_limit をものすごく上げる + スレッド数を増やす
2013-11-27 15:18:34@tagomoris @repeatedly 補足:fluent-agent-lite のほうでは 58万行 /sec 処理できていて、それ以上のデータは順調に遅れて届いていました。ただ、詰まるような動きはなかったです。
2013-11-27 15:18:45#fluentd のネットワーク転送性能のチューンはたいへん難しい。スループットを上げたいなら buffer_chunk_limit を上げるべきだが限界時の安定性を上げるなら chunk_limit は小さくして queue_limit を上げるべき。
2013-11-27 15:19:45バッファにも収まらないほどにスループットが処理限界を超えたら、遅れるのがいいんですかね…?それともピーク時のログは捨てられても、遅れない方が良い?
2013-11-27 15:20:37@tagomoris buffer_chunk_limit 1m で buffer_queue_limit を上げる。ですか?今、buffer_chunk_limit をでかくして buffer_queue_limit を小さくやっていたので逆アプローチですね。やってみます。
2013-11-27 15:20:58@frsyuki せっかくログの中に書かれている時刻を利用できるんだから多少の遅れは許容されるはずなので、遅れたほうがよい、という考えかたはできると思います
2013-11-27 15:22:15