Je sais que je peux utiliser Activity Monitor (ainsi qu'une série d'applications tierces) pour surveiller l'utilisation de la RAM et de la CPU sur mon Mac. Cependant, je souhaite capturer un journal sur une quantité de temps afin que je puisse comparer l'utilisation entre les processus sans avoir à prendre des prises d'écran, etc. Quelque chose de console comme ceci:
Process A (5:22 - 5:32) 5:22:01: 2.2% CPU, 5 Threads, 111.1MB Real Mem 5:22:03: 2.1% CPU, 4 Threads, 90.4MB Real Mem ...
Comment puis-je accomplir cela?
Cela pourrait ne pas frapper la marque, mais essayez ceci:
sar -o ~/output.sar 10 10
Cela rassemble 10 séries de métriques à des intervalles de 10 secondes. Vous pouvez ensuite extraire des informations utiles à partir du fichier de sortie (même s'il est toujours en cours d'exécution), par exemple, vous obtiendrez l'activité du disque pour l'intervalle que vous avez échantillonné:
sar -d -f ~/output.sar
Faites un man sar
pour découvrir quelles autres options il existe.
Modifier:
sar
ne fait pas de mémoire afin que cela vous apporte la mémoire gratuite sur votre système à dix secondes d'intervalle:
vm_stat 10 | awk 'NR>2 {gsub("K","000");print ($1+$4)/256000}'
Vous pouvez le rediriger vers un fichier.
Si vous avez besoin de plus d'informations, demandez s'il vous plaît.
Vous pouvez enregistrer l'utilisation de la CPU et de la mémoire des processus, mais pas du nombre de threads, avec le programme Python Syrupy .
Syrupy est un script Python qui prend régulièrement des instantanés de la mémoire et de la charge de la CPU d'un ou plusieurs processus en cours, de manière à créer dynamiquement un profil de leur utilisation des ressources système.
Syrupy fonctionne par l'un des deux modes. Dans le premier mode (par défaut), il surveille l'utilisation de la ressource d'un processus résultant de l'exécution d'une commande spécifiée par l'utilisateur (qui peut être une combinaison arbitrairement complexe de programmes et d'arguments pouvant être invoqués à partir d'un terminal shell). Dans le deuxième mode, Syrupy surveille l'utilisation de ressources de processus externes exécutant des critères répondant aux critères spécifiés par l'utilisateur: un identifiant PID (identificateur de processus) ou une chaîne de commande correspondant à un modèle d'expression régulier.
Dans les deux cas, la surveillance de l'utilisation des ressources système est basée sur des appels répétés vers la commande système
ps
.
Pour votre cas d'utilisation, l'enregistrement de chaque processus en cours d'exécution, je pense que cette commande fonctionnerait:
syrupy.py --poll-command='.*'
Vous pouvez utiliser top
données top
et pipe dans awk
ou grep
pour lire les informations spécifiques dont vous avez besoin.
Vérifiez le ici; http://ss64.com/osx/top.html
top
est en fait l'outil sous-jacent sur lequel Activity Monitor est développé.