Ad Widget

Collapse

Trigger when a process consumes too much cpu time

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • PieterB
    Junior Member
    Zabbix Certified Specialist
    • Jul 2010
    • 25

    #1

    Trigger when a process consumes too much cpu time

    I want a new trigger for (linux) processes consuming more then 99% for a sustained time. Is this possible?

    I know this can be done for a specific process (?) but what if one process suddenly starts eating up all CPU time?

    Or: can I define a trigger when 1 CPU Core is under full load? This because the standard trigger won't issue a warning for a single-threaded application taking all CPU time of one cpu/core.
  • jerrylenk
    Member
    Zabbix Certified Specialist
    • May 2010
    • 62

    #2
    With item keys 'system.cpu.load' and 'sytem.cpu.util', you can either monitor all CPUs or specify one as 1st parameter.
    You could create one item for each of your cpu cores, instead of one for all, as in the Template_Linux.

    You could then create a Trigger for each of them, that would alarm you if there is high load on any one cpu core; or more elegant: create a Trigger expression like:
    {myhost:system.cpu.util[0,...].last()}>X | {myhost:system.cpu.util[1,...].last()}>X | {myhost:... etc.
    that gets all of them in one trigger, triggering when one or more of them exceed X.
    If there are many cpu cores, it will make the configuration-of-triggers-page look very ugly though.

    If you want it to trigger only after, say, 30 s of high load, you specify .avg(30) instead of .last(0), which gives you an average of the last 30 s,
    or possibly .min(30), the lowest sample in the past 30 s, which is to say all samples were above the limit.

    Comment

    Working...