Skip to content
New issue

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

reExecuteUnfinishedAction() blocks when there are a bunch of re-executing target events #2485

Open
cosmo0920 opened this issue Dec 26, 2016 · 4 comments

Comments

@cosmo0920
Copy link
Contributor

#2472 の将来の改善として。
ActionManagerのreExecuteUnfinishedAction()はアクションを未実行のイベントが大量にある時にブロックしてしまう。これを改善することはできないか。

@a24-yamaguchi
Copy link
Contributor

ブロックされる時間はDB 55,000件で15秒程度。
(この間、WebUIからログインできない)
計測環境はkvm(1Core,1GB,10GB)

MariaDB [hatohol]> select count(*) from action_logs where status != 3;
+----------+
| count(*) |
+----------+
|    55024 |
+----------+
1 row in set (0.01 sec)

@cosmo0920
Copy link
Contributor Author

cosmo0920 commented Dec 26, 2016

この事象は100万件単位のアクションが未実行のイベントがDBに残っていた場合に問題となります。
例えば、https://github.com/project-hatohol/testau-chocolat などを使用して100万件単位の未実行のアクションがある状態を作成して深刻かどうかを検証して頂けませんか?

@a24-yamaguchi
Copy link
Contributor

この事象は100万件単位のアクションが未実行のイベントがDBに残っていた場合に問題となります。

書き方が曖昧でしたが、本文の55,000件は引用したaction_logsのselect文の結果件数を
丸めて書いたものです。
手元のkvm環境で300万件のイベントログを蓄積する途中での記録です。
%%246

「大量にある時」が曖昧だったので、手元にある記録から抜き出して、実際にかかった秒数を掲載しています。
アクション未実行100万件を仮定するのであれば、おおよそ20倍して300秒の間は 次のような現象が
続くと考えられます。
・WebUIからログインできない
・監視データを収集しない

300秒間無応答は深刻だと思いますが、未実行のイベントが100万件まで蓄積されることは
無いのではないかと想定しています。

世の中で監視されている環境がどのくらいの頻度でイベント発生しているのか想定でしかわかりませんが、
1日でここまで貯まる可能性があると、監視対応している人が数十人体制でしょうし、1ヶ月かかったとした場合は
アクションの実行環境に問題がありそうです。
1ヶ月で100万件はどのくらいの頻度でイベントが発生しているかと考えると、
1,000,000件/30日/24時間/60分=23
おおよそ3秒に1件のイベントが発生する環境です。この頻度でも監視担当者は大変だと思います。
(これは私の想定で、そういう環境で使われている可能性もあります)

そういう方向から考えると、深刻ではないと判断しています。

@cosmo0920
Copy link
Contributor Author

cosmo0920 commented Dec 26, 2016

わかりました。そこまでアクションが未実行のイベントが多いのは現実的ではない、ということですね。ひとまず [Priority] Low のラベルを付けておきました。問題になるようなら [Priority] Low のラベルを外してバグ修正に取り掛かるようにしてください。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants