]> granicus.if.org Git - ejabberd/commit
Rewrite ejabberd system monitor
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>
Sun, 17 Dec 2017 15:52:37 +0000 (18:52 +0300)
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>
Sun, 17 Dec 2017 15:52:37 +0000 (18:52 +0300)
commit515f8b22c0b81675207626aad11eeba0cee2c48c
treebbcc40668d217b74e28f7fd55718021b5d17011d
parent4352cb9fed0d603fff669e8266925158526e45f0
Rewrite ejabberd system monitor

Previous version was inefficient: it had a lot of false positives
along with a lot of false negatives, making its usage pointless.
The new verion is based on memsup(3erl) application: the OOM watchdog is
only started when total OS memory consumption is more than 80%.
A watchdog periodically inspects all running processes and collects
statistics about overloaded ones (those queueing a lot of messages).
If the OOM killer is enabled (`oom_killer: true`), all overloaded
processes would be killed. By default, OOM killer is enabled.
When memory consumption is back to normal, the OOM watchdog is stopped.
src/ejabberd_app.erl
src/ejabberd_sup.erl
src/ejabberd_system_monitor.erl