Closed ghost closed 9 years ago
検証時 in_secure_forward を動かしていたfluentd(td-agent)の設定ファイル全体をいただけませんか? もちろん shared_key などは伏せていただいてで構いません。
送信側、受信側の /etc/td-agent/td-agent.conf は次のようになっています。
<source> type unix path /var/run/td-agent/td-agent.sock </source>
<source> type forward </source>
<match data._> type secure_forward shared_key _ shared-key ** self_hostname ${hostname} keepalive 10s retry_wait 60s flush_interval 60s buffer_type file buffer_path /data/td-agent/buffer/dev buffer_queue_limit 1280
<server> host \ host1-ip-address port 24285 </server> <server> host \ host2-ip-address port 24285 </server> </match>
<source> type unix path /var/run/td-agent/td-agent.sock </source>
<source> type forward </source>
<source> type secure_forward port 24285 shared_key \ shared-key ** cert_auto_generate yes self_hostname ${hostname} allow_anonymous_source yes </source>
<match data.*.f001> type file flush_interval 60s buffer_chunk_limit 32m path /data/svr/dev/dat/f001/p01/new/rec time_format %Y-%m-%d %H:%M:%S </match>
<match data.*.f002> type file flush_interval 60s buffer_chunk_limit 32m path /data/svr/dev/dat/f002/p01/new/rec time_format %Y-%m-%d %H:%M:%S </match>
解決のヒントになるかどうかはわかりませんが、念のため報告させて頂きます。
最初の書込み (11/1) 後に 11/3 に同じような試験を行いました。 添付したグラフがそれになりますが、スワップが無くなったことが確認 (11/3 12:30) でき その後、18:00 ごろに定期送信を行うことをやめました。
これにより CPU のグラフは値が低くなっていますが、メモリのグラフにある残スワップ量は 減り続けています。
[CPU]
[MEMORY]
緑色のエリアが実メモリ容量ですか? 普段実メモリは空きゼロで運用しているということでしょうか。
CPUのグラフも、数字が75〜100くらいになっているように見えますが、グラフに書かれている "Load Avelage" という説明は正しいですか?
グラフはサーバ機に設置した mrtg から採取したもので、ご質問頂いた通り 緑色のエリアが実メモリになります。
グラフにあるサーバは試験用のものであるため運用環境とは異なりますが、 実際の運用環境サーバでもメモリは減り続けていきます。
残メモリがなくなったときの影響がわからなかったので、運用サーバでは日次で fluentd を再起動することにより、残メモリ量を回復するようにしています。
CPU グラフも mrtg のものになります。
グラフにある "Load Average" も私が編集したものではなく、ツールが出力しているものに なりますが、top コマンドで出力される Load Average の数値と同等であるため、 /proc/loadavg と一致していると考えて頂いて良いと思います。
念のため、現在の top コマンドの表示状態を以下に転記させて頂きました。
top - 16:43:41 up 7 days, 20 min, 1 user, load average: 0.00, 0.02, 0.00 Tasks: 153 total, 1 running, 152 sleeping, 0 stopped, 0 zombie Cpu(s): 0.3%us, 0.7%sy, 0.0%ni, 99.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1736176k total, 1707076k used, 29100k free, 5700k buffers Swap: 6291432k total, 1858128k used, 4433304k free, 60532k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 25780 td-agent 20 0 5872m 1.4g 2380 S 0.7 84.9 59:12.97 ruby 13241 appadmin 20 0 15024 1360 1008 R 0.3 0.1 0:00.05 top 1 root 20 0 19228 268 132 S 0.0 0.0 0:01.10 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 4 root 20 0 0 0 0 S 0.0 0.0 0:03.73 ksoftirqd/0 5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 6 root RT 0 0 0 0 S 0.0 0.0 0:09.73 watchdog/0
恐らくと思われる原因を発見したので別途issueを立てました。 #11 また送信側の keepalive を短くすれば状況は軽減されると思います。
keepalive 10s
retry_wait 60s
flush_interval 60s
flush interval 60s なのに keepalive 10s というのは無意味な設定だと思われます(1回送信される前に5回、全く使われずにexpireするSSL sessionがあることになる)。もっと長い時間に設定してはいかがでしょうか。
keepalive についてご案内を頂きありがとうございます。 設定を変更してみます。
commit ef55aa4d2867d94b4a7599032f730968bc143cc2 にて修正しました。 @cbh34680g master の HEAD に上げてありますが、これを試すことはできますか?
v 0.2.3 により連続稼動試験を行っています。
受信側サーバを監視しているとデータ送信量の増加に従い、メモリ&スワップの使用量が増加します。 その後 残スワップがなくなると以下のようなメッセージが OS のログに出力され、同時に td-agent の プロセスが再起動します。
このとき、/var/log/td-agent/td-agent.log には以下のようなログが出力されています。
同じ試験を "type forward" により行った場合 (11/01 16:00 ~) はスワップ使用量の変化はありません。
これらの現象についてお気づきの点がないかご確認ください。
尚、検証時のログなどの記録も採取しておりますが、github では画像以外の形式を添付できない ようですので、必要に応じメールなどで提供させて頂きます。