Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/06/2007, 15h59   #1
Membre à l'essai
 
Avatar de Matmal11
 
Inscription : juillet 2006
Messages : 111
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : juillet 2006
Messages : 111
Points : 21
Points : 21
Par défaut Tester performances système

Bonjour,

Je dispose d'un PC avec pour système d'exploitation SUSE 9.0.
J'ai réalisé une application utilisant des scripts shell, des scripts PERL, et la création d'une BD avec PostgreSQL (creation, accès pour remplissage, accès pour exports).

Je voudrais tester les performances de cette application, pour savoir quelles sont les opérations qui me prennent le plus de temps et commencer une phase d'optimisation (je sais déjà qu'il va falloir que j'améliore certaines choses).

Etant novice en système (ma spécialité étant plus le dévelloppement d'applications), je voudrais savoir si vous connaissez des outils permetant de visualiser les utilisations mémoires, charge CPU et tout ce que je ne connais pas qui a un rapport avec les performances du système lors du lancement de mon application.

J'ai trouvé des petits scripts permetant de voir certaines performances, mais c'était très global et non adapté à mon application.

Si vous pouviez m'aiguillez un peu...

Merci d'avance
Mat
Matmal11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 21h29   #2
Membre actif
 
Avatar de Blo0d4x3
 
Inscription : octobre 2003
Messages : 456
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 456
Points : 152
Points : 152
Envoyer un message via AIM à Blo0d4x3 Envoyer un message via MSN à Blo0d4x3
Tu peux utiliser les commandes top et vmstat pour voir les consommations cpu et mémoires en temps réel.

qui t'affichera les consommation à l'instant T.
Sinon il y a aussi sar, qui est pas mal et te permet d'avoir un suivit des charges de ta machine.

Voila il y en a certainement d'autre aussi. Mais ca peut déjà d'aider un peu :-).
Blo0d4x3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 22h06   #3
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 776
Points : 7 776
ce que tu peux faire c'est regarder pour le processus postgres par exemple son numero et /proc/lenumero/
il y a pleins de fichiers l'espace memoire de l'appli la liste des fichiers ouvert par l'application la charge cpu la ligne de commande generee etc...etc...

un exemple sur suse :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
TEST_FRP31:~/Desktop # ps -ef | grep pickup
postfix   3489  5180  0 20:52 ?        00:00:00 pickup -l -t fifo -u
TEST_FRP31:~/Desktop # cd /proc/3489
TEST_FRP31:/proc/3489 # ls
.   attr  cmdline  environ  fd        maps  mounts   oom_score  seccomp  statm   task
..  auxv  cwd      exe      loginuid  mem   oom_adj  root       stat     status  wchan
TEST_FRP31:/proc/3489 # ls -l fd/
total 8
dr-x------  2 root    root     0 Jun 18 22:02 .
dr-xr-xr-x  5 postfix postfix  0 Jun 18 21:30 ..
lrwx------  1 root    root    64 Jun 18 22:02 0 -> /dev/null
lrwx------  1 root    root    64 Jun 18 22:02 1 -> /dev/null
lrwx------  1 root    root    64 Jun 18 22:02 2 -> /dev/null
lr-x------  1 root    root    64 Jun 18 22:02 3 -> pipe:[12172]
l-wx------  1 root    root    64 Jun 18 22:02 4 -> pipe:[12172]
lrwx------  1 root    root    64 Jun 18 22:02 5 -> socket:[87169]
lrwx------  1 root    root    64 Jun 18 22:02 6 -> /var/spool/postfix/public/pickup
lrwx------  1 root    root    64 Jun 18 22:02 7 -> socket:[741683]
TEST_FRP31:/proc/3489 #  cat status
Name:   pickup
State:  S (sleeping)
SleepAVG:       95%
Tgid:   3489
Pid:    3489
PPid:   5180
TracerPid:      0
Uid:    51      51      51      51
Gid:    51      51      51      51
FDSize: 256
Groups: 51
VmSize:     5108 kB
VmLck:         0 kB
VmRSS:      1556 kB
VmData:      200 kB
VmStk:        88 kB
VmExe:         8 kB
VmLib:      4536 kB
VmPTE:        16 kB
Threads:        1
SigQ:   0/4095
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000001001000
SigCgt: 0000000180002000
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
TEST_FRP31:/proc/3489 #
par exemple la c'est a l'instant T ce processus utilises 200Kb de datas, il est dormant 95% du temps, il gere 4Mo de memoire en tout pour lui meme, il utilises le socket 87169, etc...etc...

apres faut faire de l'analyse automatisee et de la mise en forme mais c'est le meilleur moyen de connaitre le status d'une machine

si tu te contente de la racine de /proc tu as une vue globale au lieu d'une vue d'un seul processus.
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 17h00   #4
Membre à l'essai
 
Avatar de Matmal11
 
Inscription : juillet 2006
Messages : 111
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : juillet 2006
Messages : 111
Points : 21
Points : 21
Merci pour ces rensignements, mais je cherche quelquechose un peu différent.

J'ai dévelloppé une application qui effectue énormément d'opérations (appels de scripts, création BD, lecture de fichiers binaire, génération de fichiers ASCII, remplissage BD, opérations sur la BD [update, export]). Nous appellerons cela une "GENERATION".

Je génère des fichiers de log, dont 1 qui me sert à analyser les performances en fin de génération. Je lis ce fichier et génère un fichier html avec un tableau résumant les perf de chaque script (dans l'idée).

Pour le moment, je fais un TIME à chaque appel et j'obtiens les temps d'éxécution de chaque script.

J'aimerai obtenir la charge CPU moyenne, et les utilisations mémoires au cours de ces étapes et les écrire dans mon fichier de log au fur et à mesure.

Ayant peu de connaissance ce genre de travail (évaluation des performances), j'aimerai savoir si vous connaissez des commandes me permettant d'écrire dans mon fichier de log les performances basiques du système.

Merci d'avance

Mat
Matmal11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 18h13   #5
Expert Confirmé Sénior
 
Inscription : janvier 2007
Messages : 8 743
Détails du profil
Informations personnelles :
Âge : 54

Informations forums :
Inscription : janvier 2007
Messages : 8 743
Points : 9 980
Points : 9 980
tu veux réécrire top, en gros....

Alors une seule solution.. Tu vas chercher le code source dans le kernel...
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java

Je ne réponds pas aux MP techniques
souviron34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 18h33   #6
Expert Confirmé
 
Avatar de Katyucha
 
Inscription : mars 2004
Messages : 3 109
Détails du profil
Informations personnelles :
Âge : 31
Localisation : Allemagne

Informations forums :
Inscription : mars 2004
Messages : 3 109
Points : 3 313
Points : 3 313
http://www.ibm.com/developerworks/ai...u-analyze_aix/

Fonctionne aussi sous Linux ! Y a rien de mieux je trouve
__________________
Ancien Rédacteur Linux && Unix / Nouveau retraité de DVP
The UNIX way of sex:
gunzip;strip;touch;finger;mount;fsck;more;yes;umount;sleep

Je ne réponds ni aux messages privées, ni aux messages plein de fautes...
Katyucha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 20h38   #7
Expert Confirmé Sénior
 
Inscription : janvier 2007
Messages : 8 743
Détails du profil
Informations personnelles :
Âge : 54

Informations forums :
Inscription : janvier 2007
Messages : 8 743
Points : 9 980
Points : 9 980
peut-être, oui, mais ça ne correspond pas à ce qui était demandé (en fait c'est un top plus perfectionné).

le PO ne veut pas un OUTIL (obligé de faire une commande, puis d'exploiter la sortie), mais une série de FONCTIONS (enfin, si j'ai bien compris ) à être appelées depuis le programme central, et produire à partir de là les données pour TEL programme..

Il est bien évident que si c'est l'outil, que ce soit avec ce que tu donnes ou top, il suffit de faire "outil | grep nom_du_processus_desire >> sortie_texte" et on aura tout ce qui faut...
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java

Je ne réponds pas aux MP techniques
souviron34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h05.


 
 
 
 
Partenaires

Hébergement Web