Obtenir utilisation CPU et RAM [PHP] - PHP - Programmation
Marsh Posté le 12-02-2004 à 14:56:57
Bon, je devrais pouvoir ressortir des trucs de la commande "top -n 1" normalement, mais seule soucis, je ne sais pas me serveur de la commande passthru, qui est apparemment sensé me ressortir le résultat...
De même avec exec() qui normalement place les lignes de résultat dans un tableau, là, le tableau est désepérément vide... une solution?
Marsh Posté le 12-02-2004 à 15:06:24
Aller zou, dernière nouvelle: si je fais un exec('ls -n', $test);
Mon tableau $test est bien rempli comme il faut, je dois avoir un soucis avec le "top -n 1" je pense...
N'empêche que si certains savent comment faire sans utiliser de "exec" ou autre, je suis preneur.
Marsh Posté le 12-02-2004 à 15:24:58
Et je me réponds à moi-même: il faut mettre "top -b -n 1" pour que ça fonctionne.
... Y n'empêche que ma question posée à l'origine tiens toujours: la possibilité de le faire directement avec une fonction PHP?
Marsh Posté le 12-02-2004 à 15:26:47
ReplyMarsh Posté le 12-02-2004 à 16:06:58
Merde, tout content de voir un petit drapeau bleu, je me précipite dessus... et... rien.
D'après les recherches que j'ai fait bien c'est plutôt mal barré, je suis donc parti sur l'utilisation de "top", mais ce qui est con c'est que cette commande met environ 1-2s pour se lancer et du coup, l'affichage de la page en est d'autant retardé.
Moi qui pensais afficher ça lorsque j'arrivais sur l'interface d'admin de mon site, ben je vais plutôt faire une page à part je pense.
Donc là, j'en suis à la génération d'un png qui montre une jauge verte qui se remplie de rouge en fonction de l'utilisation CPU, avec écrit en surimpression le pourcentage exact d'utilisation CPU.
Je fais maintenant la même chose avec l'utilisation de la RAM et du swap, j'ai déjà fait le DD. Donc si avoir le script tout cuit t'intéresse, ben je le posterai ici quand je l'aurai terminé.
Marsh Posté le 12-02-2004 à 17:37:22
Aller zou, si y'en a que ça intéresse, voici donc.
On peut certainement faire plus simple, mais je ne connais GD que depuis quelques jours...
<? |
Marsh Posté le 12-02-2004 à 17:50:25
Salut,
au lieu d'utiliser top, tu peux peut etre recupérer tes infos via ps, qui affiche un instantané des infos processeurs (plus rapide que top) ou mpstat. Pour la RAM, le mieux doit être de lister le fichier /proc/meminfo....
Je crois qu'il y a un autre process (bas niveau) qui envoie les infos systèmes à mpstat, ps et top, mais je ne me rappelle plus son nom...
Marsh Posté le 12-02-2004 à 18:00:23
je vais essayer ps et autre voir ce que ça donne alors oui, merci.
Pour proc/meminfo j'y ai déjà regardé, mais le prob est que le fichier fait 0 octet... tout comme cpuinfo.
Je sais pas si c'est normal et que le fichier se "remplit" lorsqu'on va le lire???
Marsh Posté le 12-02-2004 à 18:05:28
justement, si tu peux lire ces données (cf droit de lecture), /proc/... est mieux et moins exigeant pour le serveur
Marsh Posté le 12-02-2004 à 18:10:32
En fait, étant donné que les fichiers ont une taille à 0 octet, je ne me suis pas posé la question de les lire.
Marsh Posté le 12-02-2004 à 18:13:22
Furaxx a écrit : En fait, étant donné que les fichiers ont une taille à 0 octet, je ne me suis pas posé la question de les lire. |
bah sur Linux, je viens de verifié, mon fichier fais bien 0 k
mais si je fais :
|
pareil pour les autres
Marsh Posté le 12-02-2004 à 19:26:11
/proc est un systeme de fichier virtuel, l'ensemble du dossier /proc fait 0 octet. In ne s'agit en fait pas de fichiers réguliers mais d'une interface d'accès au périphériques systèmes et normalement tout le monde peut y accéder en lecture...
Marsh Posté le 12-02-2004 à 19:47:44
Ok, ben je vais reprendre ça avec les "proc", merci pour l'info.
Je mettrai le code ici ensuite si d'autres comme moi se posent la même question, il auront un truc tout fait.
Marsh Posté le 12-02-2004 à 14:14:57
Question simple (et peut-être conne, je ne sais pas encore ):
Est-il possible en PHP d'obtenir l'utilisation RAM sur le serveur ainsi que la charge CPU, un peu à la manière de disk_free_space() pour le DD?
Je suis sur un serveur dédié et je peux utiliser exec(); s'il le faut.
merci!