Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[HOWTO] Accounting "basique"
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
anigel
Bodhisattva
Bodhisattva


Joined: 14 Apr 2003
Posts: 1880
Location: Un petit bled pas loin de Limoges ;-)

PostPosted: Wed Jan 04, 2006 11:12 am    Post subject: [HOWTO] Accounting "basique" Reply with quote

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 :

Code:
emerge acct


    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
View user's profile Send private message
marvin rouge
Veteran
Veteran


Joined: 01 Aug 2004
Posts: 1422
Location: Villa Lumierrante, Zonelibre

PostPosted: Wed Jan 04, 2006 12:07 pm    Post subject: Reply with quote

Merci :wink:

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
View user's profile Send private message
anigel
Bodhisattva
Bodhisattva


Joined: 14 Apr 2003
Posts: 1880
Location: Un petit bled pas loin de Limoges ;-)

PostPosted: Wed Jan 04, 2006 12:37 pm    Post subject: Reply with quote

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
View user's profile Send private message
marvin rouge
Veteran
Veteran


Joined: 01 Aug 2004
Posts: 1422
Location: Villa Lumierrante, Zonelibre

PostPosted: Wed Jan 04, 2006 1:08 pm    Post subject: Reply with quote

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
View user's profile Send private message
anigel
Bodhisattva
Bodhisattva


Joined: 14 Apr 2003
Posts: 1880
Location: Un petit bled pas loin de Limoges ;-)

PostPosted: Wed Jan 04, 2006 1:20 pm    Post subject: Reply with quote

:oops: 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
View user's profile Send private message
boozo
Advocate
Advocate


Joined: 01 Jul 2004
Posts: 3136

PostPosted: Wed Jan 04, 2006 5:09 pm    Post subject: Reply with quote

marche très bien merci Ani 8) pas de commentaires techniques tout marche impec :wink:

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 8O ...un man ! vite ! :lol:
_________________
" Un psychotique, c'est quelqu'un qui croit dur comme fer que 2 et 2 font 5, et qui en est pleinement satisfait.
Un névrosé, c'est quelqu'un qui sait pertinemment que 2 et 2 font 4, et ça le rend malade ! "


Last edited by boozo on Wed Jan 04, 2006 7:54 pm; edited 1 time in total
Back to top
View user's profile Send private message
anigel
Bodhisattva
Bodhisattva


Joined: 14 Apr 2003
Posts: 1880
Location: Un petit bled pas loin de Limoges ;-)

PostPosted: Wed Jan 04, 2006 7:23 pm    Post subject: Reply with quote

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 8O ...un man ! vite ! :lol:


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
View user's profile Send private message
Nirna
n00b
n00b


Joined: 01 Dec 2005
Posts: 36
Location: France

PostPosted: Wed Jan 04, 2006 11:55 pm    Post subject: Reply with quote

Bonjour,
Très intéressant comme outil, notamment dans des environnements de prod où l'on adore ce type de stats :wink:

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 8)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
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