<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Apr 18, 2016 at 8:33 AM, Trond Endrestøl <span dir="ltr"><<a href="mailto:Trond.Endrestol@ximalas.info" target="_blank">Trond.Endrestol@ximalas.info</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":wq" class="a3s aXjCH">Is there a way for the Erlang RTS to detect high CPU utilisation and<br>
act accordingly? Could such events be handled by OTP supervisors?</div></blockquote></div><br></div><div class="gmail_extra">One thing is detecting high CPU, which the os_mon application will do, and then raise an alarm if it is consistenly high. The other thing is doing something about it.<br><br></div><div class="gmail_extra">Some systems are operating nominally when their CPU load hits 100%, whereas this is a grave outlier in others. One system which can be used is uwiger/jobs, which allow you to plug into the high-CPU scenario and apply dampening to your queueing systems. Coupled with some kind of queue priority, it can be used to avoid processing excess amounts of data.<br><br></div><div class="gmail_extra">In general, the rule of the border applies: detect overload early and reject service at the border of the system boundary. Once a job is accepted, process it to the end.<br></div><div class="gmail_extra"><br clear="all"><br>-- <br><div class="gmail_signature">J.</div>
</div></div>