![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
J'avais l'idée depuis un certain temps de présenter cet outil que j'utilise depuis longtemps (10 ans au moins). J'ai enfin eu le courage de rédiger un petit document sur l'utilisation de Gnuplot dans un environemment AIX (bien que Gnuplot s'utilse sous m'importe quel Unix et sur Windows).
Je suis heureux de faire partager mon expérience, afin de réaliser des graphismes systèmes à l'aide de gnuplot.
Gnuplot est un outil utilisé pour générer des graphiques. Il est utilisé typiquement pour afficher des données collectées à interval régulier, mais il ne se limite pas à cela. Tout type de graphes (piechart, bargraph, diagrammes, courbes) peut être affiché. Il peut aussi bien être utilisé en mode batch ou en mode commande et les résultats peuvent être affichés dans une fenêtre graphique, dans un navigateur internet ou envoyé dans un fichier image ou postcript.
Cette page montre comment j'utilise à l'aide de quelques exemples simple les données collectées. Gnuplot est extrèmement riche. Ces exemples permettent de générer des graphes simples et de prendre connaissance des commandes essentielles de Gnuplot.
Gnuplot est capable de convertir des données en tableau en un fichier image. Les formats courrants sont png, pdf, jpeg et gif. Il peut aussi afficher le résultat dans un terminal X, une page web ou un utilitaire d'affichage.
Une interface de commandes permet d'interagir avec Gnuplot, ce qui permet de spécifier comment l'interface doit être formatée et présentée.
On peut ainsi dimensionner le graphe, changer les couleurs utilisées, l'échelle, les légendes, choisir le nom de l'image de sortie.
La commande plot génère ensuite l'image.
Il est aussi possible de générer une image 3D avec la commande splot.
Les commandes peuvent être lancées de manière interractives en ligne de commandes, mais il vaut mieux créer un fichier shell, ce qui permettra de réutiliser celui-ci. C'est d'autant plus pratique que ce fichier peut être pipé dans Gnuplot pour générer l'image.
Il est évident que la collecte des données va très souvent demander une mise en forme des données pour Gnuplot à l'aide de sed , awk et autre commandes shell de manipulation de fichiers texte.
Je dois aussi faire remarquer que si je présente l'utilisation de Gnuplot dans un environnement AIX, Gnuplot peut s'utiliser aussi bien sous linux que sous windows. Vous pouvez d'ailleurs télécharger Gnuplot sous windows. Consultez pour cela la page officiel de Gnuplot.
La première chose à faire est d'aller sur le site AIX Open Source Packages récupérer les rpms nécessaires à l'utilisation de Gnuplot, ou de se procurer un cd AIX TOOLBOX.
Les fichiers rpm à installer sont:
expat-2.0.1-2.aix5.1.ppc.rpm fontconfig-2.8.0-1.aix5.1.ppc.rpm freetype2-2.3.11-1.aix5.1.ppc.rpm gd-2.0.35-4.aix5.1.ppc.rpm gettext-0.17-1.aix5.1.ppc.rpm glib2-2.22.3-1.aix5.1.ppc.rpm gnuplot-4.2.6-1.aix5.1.ppc.rpm libjpeg-7-1.aix5.1.ppc.rpm libpng-1.2.40-1.aix5.1.ppc.rpm libXpm-3.5.8-1.aix6.1.ppc.rpm zlib-1.2.3-6.aix5.1.ppc.rpm
Installez (option -i) ou réinstallez(option -U) les paquets et terminez par Gnuplot:
# rpm -ivh expat-2.0.1-2.aix5.1.ppc.rpm # rpm -Uvh expat-2.0.1-2.aix5.1.ppc.rpm # rpm -ivh gnuplot-4.2.4-1.aix5.1.ppc.rpm
rappel: pour vérifier les paquets installés rpm -qa.
En fin d'installation effectuez un test:
# Gnuplot
Le fichier collecté est obtenu par
sar > sar.dat
Je l'ai ensuite modifié pour obtenir un fichier à ce format:
01:00:00 7 3 6 85 02:00:00 15 5 7 73 03:00:00 38 15 11 36 04:00:00 22 6 7 65 05:00:00 18 5 7 69 06:00:00 5 2 4 88 07:00:00 6 4 6 83 08:00:00 19 6 5 70 08:05:00 40 9 6 45 08:10:00 35 8 7 50 08:15:00 27 6 6 60 08:20:00 9 3 5 83 08:25:00 41 8 6 45 ...
fichier de commande:
set terminal png truecolor set output "sarimage.png" set autoscale set xdata time set timefmt "%H:%M:%S" set style data lines plot "d:/opt/gnuplot/sar.dat" using 1:2 title "%user", '' using 1:3 title "%sys"
On obtient l'image suivante qui montre les piques de consommation utilisateurs en journée:
Cette fois ci, c'est nmon qui va nous servir de collecteur de données. Loin d'être limité, nmon retourne une collection de valeurs concernant le système, et je vous invite à consulter en autre les liens sur le sujet:
grep MEMUSE batman_090711_0000.nmon |pg |cut -d',' -f 3 > cpu.dat
Le fichier de configuration gnuplot est:
set terminal png truecolor set output "sarimage.png" set autoscale set xdata time set timefmt "%H:%M:%S" set style data lines set xrange ["08:00:00" to "15:00:00"] plot "d:/opt/gnuplot/cpu.dat" using 1:2 title "memoire occupée"
On notera que l'on a fixé la plage horaire et
On obtient alors le graphe: