We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
file descriptor の最大値を指定している環境で yrmcdsを動かして, その yrmcds に対してベンチマークを取っていたときに, accept: Too many open files が止まらなくなりました. ベンチマーク用のプログラムを止めても出続けました.
accept: Too many open files
そのとき CPU 1個ぶんが 100%になっていたのと、 strace をかけたときに accept4() が連続して出力されたことから, この 箇所 で無限ループしているのではないかと思いました。
Design Notes によれば, reactor が socket closeを担うそうなので, reactor で on_readable() を呼び出し, その内部でループしてしまうと, reactorによる file descriptorの解放ができないので, on_readable() 内部のループから抜け出せないのではないかと推測しました(正しいかどうかまでは確認していません).
The text was updated successfully, but these errors were encountered:
ありがとうございます。はい、ご指摘の挙動になると思います。 よろしければ再現可能なベンチマークプログラムをいただけないでしょうか。
Sorry, something went wrong.
お待たせして申し訳ありません.
ベンチマークプログラムは twemperf(mcperf) になります. こちらでテストしたときの情報は gist に置いておきました.
次のパターンで accept: Too many open files が出続けています.
We solved this by settings higher limits. Is that actually something that should be solved by yrmcds itself?
yrmcds
Fixed by #91 and #95.
No branches or pull requests
file descriptor の最大値を指定している環境で yrmcdsを動かして, その yrmcds に対してベンチマークを取っていたときに,
accept: Too many open files
が止まらなくなりました.ベンチマーク用のプログラムを止めても出続けました.
そのとき CPU 1個ぶんが 100%になっていたのと、 strace をかけたときに accept4() が連続して出力されたことから, この 箇所 で無限ループしているのではないかと思いました。
Design Notes によれば, reactor が socket closeを担うそうなので, reactor で on_readable() を呼び出し, その内部でループしてしまうと, reactorによる file descriptorの解放ができないので, on_readable() 内部のループから抜け出せないのではないかと推測しました(正しいかどうかまでは確認していません).
The text was updated successfully, but these errors were encountered: