No announcement yet.

Tuning: Scheduling optimization

  • Filter
  • Time
  • Show
Clear All
new posts

  • Tuning: Scheduling optimization


    It has already been said here and there but as I found this to be usefull, here is my take on tuning CPU performance in nagios so you can run a maximum of checks in the minimum of time with a minimum load on the CPU hence approching what could be considered acceptable "real time" in monitoring.

    the trick is to lower the value of the max_concurrent_checks parameter so that nagios tends to spread all the checks the most even way possible. for this to be effective you have also to set the inter_check_delay_method to "smart".

    what value should be assigned to "max_concurrent_checks" depends on the numbers of services running and on the frequency of the checks, which can be summarized in this formula:

    :arrow: max_concurrent_checks = number_of_services / frequence_of_the_checks in seconds

    (set this to 1 or 2 if the result is less or equal to 1, or else, round it up to the nearest superior integer)

    for exemple:

    180 services running every minutes:

    180/60 = 3 concurrent checks at max

    this tremendously reduces the load due to checks.
    for exemple on a desktop Celeron 2.6 Ghz with 512 Mo of RAM, a station with this tuning runs 180 checks a minute (including 70 rrd updates) with a max load average of 0.25 (5 min.)

    with this record and in theory, one could quadruple his checks on this machine, and even 5 fold more by expanding the check window to 5 minutes:

    180 * 4 * 5 = 3600 checks every 5 minutes.

    hope this helps