highlight js

2013年7月18日木曜日

php-fpmからtd-agentに書込でソケット通信エラー

環境としては
フロント nginx/php-fpm からソケット通信でLocalのtd-agentに書込
td-agentは別インスタンスのLog Aggregatorのtd−agentに転送。
※追記 2013/08/05 上記はVer 1.1.13-0  においてです。Ver記載漏れm(_ _)m

※2013/09 追記。1.1.15-0 に Ver Upして下記エラー出なくなりました。素早い改修に多謝!

してるのだが、

300 / sec くらいでLocalのtd-agentに書込をしていたら下記のエラーが偶発的に発生。
Fluent\Logger\FluentLogger stream_socket_client(): unable to connect to unix:///var/run/td-agent/td-agent.sock (Resource temporarily unavailable)

とりあえず
php-fpmのpm.max_childrenを増やす
>改善されず

その後、ソケット通信の最大数を疑ったところ、@shoma から
net.core.somaxconn いじれとアドバイス受けて変更

          $ echo "net.core.somaxconn=4096" >> /etc/sysctl.conf; 
          $ sysctl -p; 

          $ sysctl -a | grep somaxconn

が、まだ改善されず。。


phpredisのgithubだが下記にstream_socket_clientの文言発見
でSyncookieをOffにするべきと提示されているので、対象のSyncookieをOffに
          $ echo 0 > /proc/sys/net/ipv4/tcp_syncookies 

でもまだエラー出る。。。


うーん。



@kzk_moverからのコメントを頂いたので、Ver 1.1.15での検証後、状況を追記します。

1 件のコメント:

  1. Treasure Data の太田と申します。td-agentのユーザー様で同じ問題が起こりましたので調査したところ、依存しているIOライブラリのcool.ioにて問題がありこちら修正を行いました。

    > https://github.com/tarcieri/cool.io/commit/336f129c08b7ea9ee0ec9860c32276f10456a621

    この変更を含むtd-agent v1.1.15がリリースされておりますので、アップグレードして再度試してみて頂けますでしょうか?

    > http://docs.treasure-data.com/articles/td-agent-changelog

    以上、よろしくお願い致します。

    返信削除