0

私たちの製品環境ではプロセスの削減が大きく、メッセージは減少していないことがわかりました。

参考までに、減少は 10831243888178 で、5 分後には 10838818431635 になります。message_queue_len は 1012 であり、削減に応じて 1014 になります。

messages戻ってきたのは5分で消費されるはずだったのですprocess_info(Pid)が、そうではありませんでした。プロセスがいくつかのメッセージによってブロックされたと言えますか?

1 回のリダクションは 1 回の関数呼び出しと見なすことができると Web から読みましたが、完全には理解できません。誰かが「削減」について詳しく教えていただければ幸いです。

4

1 に答える 1

3

リダクションは、プロセスによって行われた作業を測定する方法です。

スケジュールされたすべてのプロセスには、先取りする前に、つまり他のプロセスを実行させる必要がある前に、費やされる多くの削減が与えられます。関数を呼び出すと 1 リダクションが消費されますが、それは正しいように見えますが、それらを消費するのはそれだけではなく、この関数呼び出し内でも多くのリダクションが消えます。

あなたが与えた数字は、プロセスによって費やされた削減の累積であるようです。大きな数自体は、実際には何の意味もありません。ただし、大幅な増加は、プロセスが何らかのハードワークを行っていることを意味します。この主力製品がメッセージ キューを消費していない場合は、非常に長い間、または終わりのない計算でスタックしている可能性が高くなります。

process_info(Pid, current_function)またはを使用して、さらに検査を試みることができprocess_info(Pid, current_stacktrace)ます。

于 2013-08-17T16:04:18.227 に答える