Intitulé du document : Comment améliorer les performances d'ordonnancement de Nagios ?
Localisation : http://www.opendoc.net/solutions/comment-ameliorer-performances-nagios
Auteur : Alexandre Bray
Contact : support@opendoc.net
Date de création : 2012/02/14
Date de modification : 2012/02/14
Vous souhaitez contribuer : Comment soutenir opendoc ?
Informations : Quelle est notre démarche ?
source :
Tags :
Etat de la documentation : 10% completed
Licence : Contrat Creative Commons
opendoc.net est mis à disposition selon les termes de la licence Creative Commons Paternité - Pas d'Utilisation Commerciale - Partage à l'Identique 3.0 non transcrit.

Comment améliorer les performances d'ordonnancement de Nagios ?

document en cours de rédaction

1 Environnement de test

1.1 Configuration

Afin de tester les performances du moteur d'ordonnancement de Nagios, nous avons utilisé des “check dummy” avec comme retour de commande 0 (OK), aussi bien pour la partie service que hôte. Nous avons choisi ce procédé afin que le plugin puisse fournir au plus vite l'information sans gêner l'ordonnancement. Le but de cet article est de déterminer les limites de nagios dans son utilisation normal et de proposer une solution pour améliorer les performances.

Même si l'option “broker” est activée dans la compilation, elle n'est pas utilisée. Nous utilisons aucune méthode de supervision distribué.

Afin de tester l'ordonnancement, nous allons ajouter par pallier de 100 machines, sachant que chaque machine comportera 10 services. Nous allons donc ajouter successivement 1000 services. L’intervalle de vérification, services et hôtes, est fixé à 5 minutes. Pour chaque ajout de machines, nous ne supprimons pas le cache afin de gagner du temps. Chaque test est réaliser sur une période d'une heure.

1.2 Matériel

1.2.1 OS : Linux Debian

alex@abray:~$ cat /etc/debian_version 
wheezy/sid

1.2.2CPU : intel core i5

alex@abray:~$ cat /proc/cpuinfo 
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 42
model name	: Intel(R) Core(TM) i5-2410M CPU @ 2.30GHz
stepping	: 7
cpu MHz		: 2301.000
cache size	: 3072 KB
physical id	: 0
siblings	: 4
core id		: 0
cpu cores	: 2
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 x2apic popcnt xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
bogomips	: 4589.41
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6
model		: 42
model name	: Intel(R) Core(TM) i5-2410M CPU @ 2.30GHz
stepping	: 7
cpu MHz		: 2301.000
cache size	: 3072 KB
physical id	: 0
siblings	: 4
core id		: 1
cpu cores	: 2
apicid		: 2
initial apicid	: 2
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 x2apic popcnt xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
bogomips	: 4589.36
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

processor	: 2
vendor_id	: GenuineIntel
cpu family	: 6
model		: 42
model name	: Intel(R) Core(TM) i5-2410M CPU @ 2.30GHz
stepping	: 7
cpu MHz		: 2301.000
cache size	: 3072 KB
physical id	: 0
siblings	: 4
core id		: 0
cpu cores	: 2
apicid		: 1
initial apicid	: 1
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 x2apic popcnt xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
bogomips	: 4589.36
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

processor	: 3
vendor_id	: GenuineIntel
cpu family	: 6
model		: 42
model name	: Intel(R) Core(TM) i5-2410M CPU @ 2.30GHz
stepping	: 7
cpu MHz		: 2301.000
cache size	: 3072 KB
physical id	: 0
siblings	: 4
core id		: 1
cpu cores	: 2
apicid		: 3
initial apicid	: 3
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 x2apic popcnt xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
bogomips	: 4589.36
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

1.2.3 Mémoire : 4 Go

alex@abray:~$ cat /proc/meminfo 
MemTotal:        3966880 kB
MemFree:         3087040 kB
Buffers:          140640 kB
Cached:           328628 kB
SwapCached:            0 kB
Active:           308248 kB
Inactive:         347304 kB
Active(anon):     186612 kB
Inactive(anon):    40048 kB
Active(file):     121636 kB
Inactive(file):   307256 kB
Unevictable:          16 kB
Mlocked:              16 kB
SwapTotal:        975868 kB
SwapFree:         975868 kB
Dirty:               808 kB
Writeback:             0 kB
AnonPages:        186304 kB
Mapped:            87688 kB
Shmem:             40376 kB
Slab:             170264 kB
SReclaimable:     146680 kB
SUnreclaim:        23584 kB
KernelStack:        2144 kB
PageTables:        14500 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     2959308 kB
Committed_AS:    1150052 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      361228 kB
VmallocChunk:   34359374036 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       59044 kB
DirectMap2M:     4046848 kB

2 Bench de l'ordonnancement de Nagios

2.1 Informations

root@abray:/opt/nagios-3.2.3# /opt/nagios-3.2.3/bin/nagios -v

Nagios Core 3.2.3
Copyright (c) 2009-2010 Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 10-03-2010
License: GPL

2.2 Paramètres de compilation

./configure --with-command-group=nagcmd --prefix=/opt/nagios-3.2.3 --enable-event-broker --enable-nanosleep

2.3 Nagios : sans optimisation

2.3.1 Tableau des performances nagios

Nb services \ Performances 1 mn 5 mn 15 mn 60 mn
1000 201100810081008
2000 418200820082008
3000 464282930093009
4000 560370840084008
5000 713456850085008
6000 1025571360086008
7000 1216673270097009
8000 1263781380098009
9000 1203880290089008
10000 135898451000810008
11000 2150104521100811008
12000 189497091200812008
13000 170294651300813008
14000 146883681400814008
15000 152583821500815008
16000 135781461600816008
17000 131472691700917009
18000 130773741800818008
19000 116665531900819008
20000 95265411936620008
21000 100659131847721008
22000 101156081745522008
23000 99657421671223008
24000 85750901555124008
25000 90349211490025008
26000 88247421480826008
27000 80345711439227008
28000 83444301401128008
29000 83345431311929008
30000 76542401293630008

2.3.2 Graphiques

 
 

2.4 Nagios : avec optimisation

Le première solution d'optimisation est d'utiliser l'option “use_large_installation_tweaks” qui va permettre d'augmenter considérablement le nombre de check entre 2 polling.

2.4.1 Tableau des performances nagios

Nb services \ Performances 1 mn 5 mn 15 mn 60 mn
1000 204100810081008
2000 416200820082008
3000 644300830083008
4000 513369540094009
5000 1046500850085008
6000 894565460086008
7000 1501700870087008
8000 1681800880088008
9000 1661873690089008
10000 2165100081000810008
11000 1643107111100811008
12000 2248117311200812008
13000 2495127661300813008
14000 2479136911400814008
15000 2986146911500815008
16000 2818156181600816008
17000 3211165501700817008
18000 3231175461800818008
19000 3680184971900919009
20000 3584194002000820008
21000 3839203322100821008
22000 4142211692200822008
23000 4209220152300823008
24000 4491230842400824008
25000 4707240132500825008
26000 4766251542600826008
27000 5012262852700827008
28000 4563272912800828008
29000 4706283372900829008
30000 4077293943000830008

2.4.2 Graphiques

3 Utilisation de Check_MK

solutions/comment-ameliorer-performances-nagios.txt · Dernière modification: 2013/07/14 17:19 (modification externe)
 
Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki