Obtenez de l'uc pour cent de l'utilisation de php
Je veux montrer pour cent l'utilisation du PROCESSEUR dans PHP. N'est pas important si obtenir les valeurs par cron en shell > sortie vers un fichier > analyser en PHP ou d'obtenir directement la valeur en php. J'ai essayer plusieurs solutions trouvées sur internet mais rien n'a été utile. Avec une charge moyenne, je ne peux pas afficher de 0 à 100% graphique et les fonctions que j'ai trouvé pour le pourcentage de sortie me donner de mauvaises valeurs ou seulement de la valeur pour les premières de base. Il serait bien d'obtenir le nombre de pourcentage d'utilisation pour tous les cœurs. Est-il une solution pour cela?
EDIT:
Je fais solution temporaire, il fonctionne bien, mais il n'est pas la meilleure façon.
tâche cron chaque minute exécuter un script php qui commande exec grep pour info cpu de "haut" et l'enregistrer dans un fichier, sur la fin du script, attendre 3 secondes et boucle de 20 fois (de façon à obtenir la mise à jour toutes les 3 secondes)
script php:
<?php
for($i=0; $i<=20; $i++) {
//cpu load
exec("top -b -n 1 | grep 'Cpu(s):' > /some/file.cpu");
//ram usage
exec("top -b -n 1 | grep 'Mem:' > /some/file.ram");
//wait 3sec
sleep(3);
}
?>
et maintenant, à partir de ces fichiers, je peux analyser des informations.
Nouvelle question est de savoir comment faire de démon de script pour exécuter cette commande toutes les 3 secondes. Je pense que la solution avec le script php et cron est seulement une solution temporaire et n'est pas la meilleure façon. démon va être beaucoup mieux.
Double Possible? stackoverflow.com/questions/4705759/...
pas double emploi, je peux utiliser exec et phpsysinfo pas résoudre mon problème
OriginalL'auteur stix | 2012-10-29
Vous devez vous connecter pour publier un commentaire.
après recherche sur les forums et essayer de nombreuses méthodes, meilleure est la précision de cette:
maintenant les stats sont en dollars cpu['utilisateur'], $cpu['nice'], $cpu['sys'], $cpu [inactif]
OriginalL'auteur stix
Je ne suis pas sûr à 100% sur ce que vous demandez, mais si je ne me trompe pas, cette réponse pourrait vous aider:
Le code fourni a été une réponse de Les Démons De L'Enfant pour une question similaire:
https://stackoverflow.com/a/9846219/904242
dépend du nombre de Processeurs du système. Si les 2 CPUs ou 2 Cores CPU - % e 200.
OriginalL'auteur qrokodial
Utiliser ceci:
preg_match_all('/^processor/m', file_get_contents('/proc/cpuinfo'), $matches); $core_nums = count($matches[0]);
OriginalL'auteur diyism
vous pouvez utiliser "top -n 1" pour obtenir des taux d'utilisation du cpu. cette commande exécute le dessus une seule fois, puis donne de sortie. je pense que vous pouvez faire de l'analyse de la partie sur votre propre.
OriginalL'auteur alpera
La réponse par Diyism ainsi que la suggestion sur http://php.net/manual/en/function.sys-getloadavg.php ne semble pas fonctionner sur CentOS 6.5 VPS. Nous avons dû changer
physical id
àprocessor
. Ensuite, il retourne un noyau que l'ID 0, de sorte que le calcul des besoins +1 cœurs. Aussi, vous devez multiplier par 100 pour obtenir un rang centile. Enfin, qui doit être arrondi pour une jolie pour cent. Voici donc une autre pensée qui peut fonctionner que si vous exécutez dans tout ça:Donc, si la charge avg [0] est de 0,50 € sur les 2 core de la machine, ce serait d'afficher une charge CPU de 25%
OriginalL'auteur dhaupin