View previous topic :: View next topic |
Author |
Message |
anigel Bodhisattva
Joined: 14 Apr 2003 Posts: 1894 Location: Un petit bled pas loin de Limoges ;-)
|
Posted: Wed Jan 04, 2006 11:12 am Post subject: [HOWTO] Accounting "basique" |
|
|
Bonjour,
Certains d'entre nous disposent de machines plus ou moins puissantes, et parfois on aimerait bien savoir exactement où part la puissance de la machine. Une solution simple est d'utiliser la commande "top", qui permet d'avoir une vue "temps-réel" de ce à quoi votre Linux est occupé. Mais ça reste insuffisant pour obtenir des renseignements probants sur la réelle utilisation de votre CPU. Au mieux, on obtient un polaroïd de votre système, à un instant donné.
Il existe un outil GNU pour pallier ce manque : acct. Je vous propose dans ce document très court, de vous aider à le mettre en place.
1. Configuration noyau et installation des outils.
Pour qu'acct puisse lire les informations sur l'occupation du noyau, il faut autoriser le "process accounting". Ca se fait très simplement, en activant les options idoines.
Code: | General setup --->
[*] BSD Process Accounting
[*] BSD Process Accounting version 3 file format |
Acct est un logiciel très léger, qui plus est disponible dans portage, son installation est donc aussi simple que rapide :
2. Création des scripts de démarrage et du fichier de configuration.
NB : au moment où vous lirez ces lignes, il est possible que les modifications présentées ici aient été intégrées directement à l'outil (cf bugreport). Auquel cas ce paragraphe devient superflu.
Acct est livré brut de décoffrage, sans aucun script de démarrage, ou même d'arrêt. Pas très pratique pour un logiciel sensé observer la charge machine pendant des semaines ou des mois. J'ai donc rédigé quelques scripts simples pour régler ce problème.
Commençons par le script de démarrage : /etc/init.d/acct
Code: | #!/sbin/runscript
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
opts="${opts} report"
depend() {
need localmount
}
start() {
if [ -z ${ACCT_LOG} ] ; then
ewarn "Unable to load configuration. Please check /etc/conf.d/acct."
return 1
fi
if ! [ -f ${ACCT_LOG} ] ; then
ewarn "${ACCT_LOG} does not exists. Trying to create it automatically..."
touch ${ACCT_LOG}
chmod 600 ${ACCT_LOG}
fi
ebegin "Starting accounting"
/usr/sbin/accton ${ACCT_LOG}
eend ${ret}
}
stop() {
ebegin "Stopping accton"
/usr/sbin/accton
eend $?
}
report() {
if ! service_started "${myservice}" ; then
ewarn ""
ewarn "Service is not started. Statistics may be obsolete !"
ewarn "If you really wish to get this information, please run :"
ewarn ""
ewarn " sa ${REPORT_OPTS} ${ACCT_LOG}"
ewarn ""
else sa ${REPORT_OPTS} ${ACCT_LOG}
fi
return $?
}
restart() {
svc_stop
svc_start
} |
Ensuite, le fichier de configuration, /etc/conf.d/acct
Code: | # ACCT_LOG specifies the accounting logging file.
# Remember to create it manually if it doesn't yet exist.
# Default : ACCT_LOG="/var/account/pacct"
ACCT_LOG="/var/account/pacct"
# REPORT_OPTS contains arguments for the "sa" command, used for console-reporting.
# Please run "sa --help" or "man sa" to get a description of available options.
REPORT_OPTS="--sort-real-time --list-all-names --percentages" |
Vous pourrez noter que j'ai affecté des valeurs par défaut à ces variables, afin de rendre plus lisibles les stats de sortie (si tant est qu'elles le soient vraiment).
3. Mise en service, et obtention des résultats.
Tout est en place, il faut maintenant lancer le service. Un simple /etc/init.d/acct start suffit. Si vous souhaitez que vos statistiques prennent vraiment un sens, il vaut mieux que ce service tourne en permanence : rc-update add acct default.
Par simple curiosité, vous pouvez dès à présent demander un rapport de charge : /etc/init.d/acct report. Notez qu'à ce stade, la liste ne doit pas être bien longue. En effet, vous venez juste de lancer le processus, et le rapport n'est pas encore vraiment probant. Pour être réellement exploitable, l'observation du système doit se faire sur plusieurs jours, afin d'avoir une vue plus globale de l'utilisation que vous faites de votre temps machine. Alors vous verrez les valeurs augmenter, et les stats s'affiner. Vous saurez ainsi ce qui occupe le plus votre machine. Ce genre d'information peut servir à plein de choses, que je vous laisse découvrir au fur et à mesure !
PS : Comme d'habitude, nhésitez pas à réagir, commenter, etc...
PPS : Pour des raisons que je ne développerai pas, je ne souhaite pas que ce document soit recopié ailleurs ; merci de votre compréhension.
PPPS : Pour les puristes : inutile de détailler la problématique de l'interprétation des résultats fournis par sa : ce n'est certes pas l'outil parfait, mais pour les besoins couverts par ce document, c'est parfaitement adapté.
PPPPS : Non, rien en fait .
Changelog :
04/01/2006 : ajout du paragraphe sur la config noyau (merci marvin rouge !)
09/01/2006 : modifications mineures du fichier de conf et du script de démarrage. _________________ Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres.
Last edited by anigel on Tue Jan 10, 2006 8:59 am; edited 6 times in total |
|
Back to top |
|
|
marvin rouge Veteran
Joined: 01 Aug 2004 Posts: 1422 Location: Villa Lumierrante, Zonelibre
|
Posted: Wed Jan 04, 2006 12:07 pm Post subject: |
|
|
Merci
Par contre, c'est bizarre, ici acct vient avec un script d'init (et c'est pas moi qui l'ai fait): Code: | cat /etc/init.d/acct
#!/sbin/runscript
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-process/acct/files/acct.rc6,v 1.2 2005/03/21 03:47:19 robbat2 Exp $
depend() {
need localmount
}
start() {
ebegin "Starting accounting"
touch /var/account/pacct
chmod 600 /var/account/pacct
/usr/sbin/accton /var/account/pacct
eend $?
}
stop() {
ebegin "Stopping accounting"
/usr/sbin/accton
eend $?
}
# vim:ts=4 sw=4:
|
Version de acct: sys-process/acct-6.3.5-r2
Mais pas de /etc/conf.d/acct ici.
Je pense que je vais reprendre tes scripts.
+
EDIT : bon, ça ne fonctionne pas, ni l'ancien script ni le tien, accton me répond: "fonction non implémentée" ... même si je le lance à la main. Tant pis. Code: | # /usr/sbin/accton /root/accounting.log
accton: Function not implemented |
|
|
Back to top |
|
|
anigel Bodhisattva
Joined: 14 Apr 2003 Posts: 1894 Location: Un petit bled pas loin de Limoges ;-)
|
Posted: Wed Jan 04, 2006 12:37 pm Post subject: |
|
|
J'utilise sys-process/acct-6.3.5-r1, pour être précis, sur un système en x86. _________________ Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres. |
|
Back to top |
|
|
marvin rouge Veteran
Joined: 01 Aug 2004 Posts: 1422 Location: Villa Lumierrante, Zonelibre
|
Posted: Wed Jan 04, 2006 1:08 pm Post subject: |
|
|
C'est de ma faute. Il faut BSD Process Accounting et BSD Process Accounting version 3 file format dans la config du kernel (sous General Setup). Recompilation.
+ |
|
Back to top |
|
|
anigel Bodhisattva
Joined: 14 Apr 2003 Posts: 1894 Location: Un petit bled pas loin de Limoges ;-)
|
Posted: Wed Jan 04, 2006 1:20 pm Post subject: |
|
|
effectivement, grossier oubli de ma part ! Je corrige ça de suite !
Merci à toi ! _________________ Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres. |
|
Back to top |
|
|
boozo Advocate
Joined: 01 Jul 2004 Posts: 3193
|
|
Back to top |
|
|
anigel Bodhisattva
Joined: 14 Apr 2003 Posts: 1894 Location: Un petit bled pas loin de Limoges ;-)
|
Posted: Wed Jan 04, 2006 7:23 pm Post subject: |
|
|
boozo wrote: | en tout cas... le premier report que j'ai fait, même non représentatif, est très intéressant... y'a un tas d'appli dont je ne soupçonnais même pas l'existence ...un man ! vite ! |
Oui, c'est parfois surprenant ! J'ai été surpris de constater que la machine centrale de mon réseau, pour ne citer qu'elle, glande toute la journée. Celle que je croyais la plus chargée ne tourne en fait qu'à 10% de ses capacités, en journée, et à 4 fois rien % la nuit... En revanche, un petit serveur que je croyais sous-utilisé est harcelé au niveau de se config web. Donc : soit cette dernière est mal foutue (ça demande à être vérifié), soit il est beaucoup plus sollicité que je ne l'aurais cru au premier abord...
Par contre, le fait que tu aies une sortie très détaillée peut aussi provenir des choix d'options par défaut que j'ai fait. N'hésites pas à adapter à ton cas personnel . _________________ Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres. |
|
Back to top |
|
|
Nirna n00b
Joined: 01 Dec 2005 Posts: 36 Location: France
|
Posted: Wed Jan 04, 2006 11:55 pm Post subject: |
|
|
Bonjour,
Très intéressant comme outil, notamment dans des environnements de prod où l'on adore ce type de stats
Juste une remarque (pour la 6.3.5-r1):
anigel wrote: |
/etc/conf.d/acct :
Code: | # ACCT_LOG specifies the accounting logging file.
# Remember to create it manually if it doesn't yet exist.
# Default : ACCT_LOG="/var/account/pacct"
ACCT_LOG="/root/accounting.log"
# REPORT_OPTS contains arguments for the "sa" command, used for console-reporting.
# Please run "sa --help" or "man sa" to get a description of available options.
REPORT_OPTS="--sort-real-time --list-all-names --percentage" |
|
La commande lastcomm permet d'afficher toutes les commandes utilisées (et donc tracées), en se basant sur le fichier d'accounting par défaut du système : /var/account/pacct.
Je ne sais pas comment il le trouve là, le fait de changer le fichier de log par accton ne change rien pour lastcomm.
Donc, pour se servir de lastcomm, soit il faut remettre le "bon" fichier de log dans /etc/conf.d/acct, soit utiliser lastcomm -f /root/accounting.log
Et toujours pour pinailler, l'option dans la doc est --percentages, mais --percentage marche aussi bien |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|