Linux如何统计进程的CPU利用率
0. 为什么写这篇博客 Linux的top或者ps都可以查看进程的cpu利用率,那为什么还需要了解这个细节呢。编写这篇文章呢有如下三个原因: * 希望在脚本中,能够以过”非阻塞”的方式获取进程cpu利用率* ps无法获得进程当前时刻的CPU利用率;top则需要至少1秒才能获
0. 为什么写这篇博客
Linux的top或者ps都可以查看进程的cpu利用率,那为什么还需要了解这个细节呢。编写这篇文章呢有如下三个原因:
* 希望在脚本中,能够以过”非阻塞”的方式获取进程cpu利用率 * ps无法获得进程当前时刻的CPU利用率;top则需要至少1秒才能获得进程当前的利用率 * * 好奇
1. 如何统计进程CPU利用率
1.0 概述
在Linux的/proc文件系统,可以看到自启动时候开始,所有CPU消耗的时间片;对于个进程,也可以看到进程消耗的时间片。这是一个累计值,可以"非阻塞"的输出。获得一定时间间隔的两次统计就可以计算出这段时间内的进程CPU利用率。
所以,是否存在一种简单的,非阻塞的方式获得进程的CPU利用率? 答案是:“没有”。这里给出来一个有趣的比喻:"这就像有人给你一张照片,要你回答照片中车子的速度一样"
1.1 /proc/stat 统计总CPU消耗
这个概念在计算中并不重要,但是了解一下还是有益的。在/proc/[pid/]stat中我们可以看到系统统计的CPU时间消耗,这里都统一使用1/USER_HZ为一个时间片(man proc),多数情况下USER_HZ都是取值100,所以这里的一个时间片就是10ms。可以通过系统调用sysconf(_SC_CLK_TCK)来获得准确USER_HZ的取值。
例如:
# cat /proc/stat|grep "cpu " cpu 77918485 720414 61184026 19052884316 12152363 1386 1476742 0 0
每一列对应的CPU消耗含义是(man proc):用户态(user)、低优先级用户态(nice)、系统(sys)、闲置、IOWAIT(内核2.5.41+)、中断(since 2.6.0+)、软终端(since 2.6.0+)、steal(虚拟环境中其他OS消耗2.6.11+)、guest(为访客OS运行虚拟CPU消耗2.6.24)
对应如下:
# cat /proc/stat|grep "cpu " |usr |nice |sys |idle |iowait |irq |softirq |steal |guest cpu |77918485 |720414 |61184026 |19052884316 |12152363 |1386 |1476742 |0 |0
所以,计算CPU总消耗可以使用如下shell命令:
cat /proc/stat|grep "cpu "|awk '{for(i=2;i <p>很多地方看到都只是统计前面四列或者五列,这是不完整的;不过,因为通常前四、五列是CPU的主要消耗,所以这样如此计算也通常是准确的。例如,上例中,前面五列的消耗是CPU消耗的99.99%。</p> <p>(tips:这里的时间片和CPU时钟中断的jiffy不是一个概念,一个是内核态的,一个用户态的)</p> <h4 id="进程消耗的CPU时间片">1.2 进程消耗的CPU时间片</h4> <p>在proc文件系统中,可以通过/proc/[pid]/stat获得进程消耗的时间片,输出的第14、15、16、17列分别对应进程用户态CPU消耗、内核态的消耗、用户态等待子进程的消耗、内核态等待子进程的消耗(man proc)。所以进程的CPU消耗可以使用如下命令:</p> <pre class="brush:php;toolbar:false">cat /proc/9583/stat|awk '{print "cpu_process_total_slice " $14+$15+$16+$17}' cpu_process_total_slice 1068099
tips:从这里可以看到,Linux并没有进程级别的iowait统计,如果想知道系统的iowait是哪个进程导致,则还需要一些其他的工具辅助。
1.3 "非阻塞"的计算进程CPU利用率
从这里也看到,是没有某个时刻CPU利用率的说法的,也就没法获得某个时刻的CPU利用率。这就像物理中的"速度"的概念,没有某一时刻速度的概念,速度一定是一个时间段之内的。那么要"非阻塞"计算某个进程CPU利用率,则需要取两次事件间隔进行计算,这两次事件间隔的操作可以是非阻塞的。计算办法如下:
* 时刻A,计算操作系统总CPU时间片消耗total_cpu_slice_A;计算进程总CPU时间片消耗;total_process_slice_A * 时刻B,计算操作系统总CPU时间片消耗total_cpu_slice_B;计算进程总CPU时间片消耗;total_process_slice_B
B时刻就可以"非阻塞"的计算这段时间进程的CPU利用率了:
100%*(total_process_slice_B-total_process_slice_A)/(total_cpu_slice_B-total_cpu_slice_A)
1.4 ps命令显示的CPU利用率是什么意思
man ps ...... CPU usage is currently expressed as the percentage of time spent running during the entire lifetime of a process. This is not ideal, and it does not conform to the standards that ps otherwise conforms to. CPU usage is unlikely to add up to exactly 100%. ......
可以看到,ps命令%CPU显示的是进程自启动时刻起,直至当前的总平均CPU利用率。
2 参考文档
* man proc / man ps
* Accurately Calculating CPU Utilization in Linux using /proc/stat@stackoverflow
* account_process_tick@Linux Kernel
* Troubleshooting High I/O Wait in Linux
* Top and ps not showing the same cpu result
博客的草稿箱里面虽然有好几篇稿子了,不过距离上一篇博客好像都有100天了,写完这一篇还是很欣慰,虽然内容不多。
原文地址:Linux如何统计进程的CPU利用率, 感谢原作者分享。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Cet article présente des applications et des sites Web de logiciels de devis d'actifs numériques gratuits qui peuvent fournir aux investisseurs des informations clés telles que les prix en temps réel, les graphiques de prix, le volume des transactions, les fluctuations, la profondeur du marché et les informations d'information pour aider les investisseurs à prendre des décisions éclairées. Par rapport aux logiciels payants, le logiciel gratuit présente les avantages sans frais, fonctionnalités riches et fonctionnement facile. L'article guide également les utilisateurs comment choisir le bon logiciel de marché et rappelle aux utilisateurs de faire attention aux sources de données, de précision des informations et d'éviter une dépendance excessive, ce qui aide finalement les investisseurs à mieux saisir les tendances du marché des actifs numériques. Vous voulez savoir comment utiliser efficacement les logiciels de marché libre? Lisez le texte intégral rapidement!

Guide de connexion de la sécurité Coinbase: comment éviter les sites de phishing et les escroqueries? Le phishing et les escroqueries deviennent de plus en plus rampants, et il est crucial d'accéder solidement au portail de connexion officiel de Coinbase. Cet article fournit des guides pratiques pour aider les utilisateurs à trouver et à utiliser en toute sécurité le dernier portail de connexion officiel de Coinbase pour protéger la sécurité des actifs numériques. Nous couvrirons comment identifier les sites de phishing et comment se connecter en toute sécurité via des sites Web officiels, des applications mobiles ou des plateformes tierces de confiance, et fournir des suggestions pour améliorer la sécurité des comptes, comme l'utilisation d'un mot de passe fort et permettant une vérification à deux facteurs. Pour éviter les pertes d'actifs dues à une connexion incorrecte, assurez-vous de lire attentivement cet article!

FinalBosu est un projet NFT axé sur la communauté construit sur la chaîne abstraite qui combine des illustrations incroyables de style anime avec un gameplay dynamique pour plonger les joueurs dans un univers riche et en constante évolution. La devise de FinalBosu est "surmonter toutes les difficultés" et vise à chercher à ouvrir son propre créneau dans l'écosystème de jeu Web3 et de NFT en permettant aux détenteurs de façonner l'avenir de leurs personnages, de leurs scénarios et de leurs directions de marque. Le projet a obtenu un grand attrait, avec sa collection d'origine à un prix de base de 1,9 ETH - un témoignage d'une forte demande du marché et d'un soutien solide de sa communauté croissante. Maintenant, avec finalbo

Cet article fournit un guide complet sur le logiciel gratuit du marché des actifs numériques pour vous aider à saisir l'impulsion du marché sans frais. Dans le trading d'actifs numériques, les données de marché en temps opportun et précises sont cruciales, mais les logiciels payants coûteux ont découragé de nombreux novices. Heureusement, de nombreuses applications et sites Web gratuits fournissent un suivi des prix en temps réel, une revue historique des données, une surveillance du volume des transactions et d'autres fonctions pour vous aider à comprendre la dynamique du marché et à prendre des décisions éclairées. L'article présentera les types, les techniques de sélection et les précautions de logiciels de marché libre en détail, vous permettant d'investir en toute sécurité et efficacement dans le marché des actifs numériques extrêmement risqués.

Cet article fournit les dernières informations sur le portail de connexion du site officiel de Huobi Exchange et souligne l'importance d'obtenir le dernier portail, car les liens obsolètes peuvent entraîner des risques d'inaccessibilité ou de sécurité. L'article souligne que les moyens d'obtenir la dernière entrée comprennent: les annonces officielles du site Web, le service client officiel Huobi et les plateformes tierces de confiance. En outre, l'article rappelle également aux utilisateurs de prêter attention à la vérification des noms de domaine, à la vérification des certificats de sécurité, à l'activation de la vérification à deux facteurs et à la diffusion d'informations frauduleuses lors de la visite de l'échange Huobi pour garantir la sécurité du compte et la sécurité des fonds. Ce n'est qu'en sélectionnant un canal formel pour vous connecter à Huobi Exchange que vous pouvez effectuer des transactions d'actifs numériques en toute sécurité.

Cet article détaille comment enregistrer un compte sur le site officiel de OUYI OKX Exchange et démarrer le trading des crypto-monnaies. En tant que premier échange mondial de crypto-monnaie, OUYI fournit un large éventail de variétés de trading, de plusieurs méthodes de négociation et de solides garanties de sécurité, et soutient le retrait pratique d'une variété de fiat et de crypto-monnaies. L'article couvre les méthodes de recherche de l'entrée d'enregistrement officielle du site Web officiel d'OUYI, les étapes d'inscription détaillées (y compris l'enregistrement par e-mail / mobile, le remplissage d'informations, la vérification du code de vérification, etc.), ainsi que les précautions après l'enregistrement (certification KYC, paramètres de sécurité, etc.), et répond aux questions communes pour aider les utilisateurs novices.

Analogue: Solution d'interopérabilité Blockchain Layer0 pour obtenir une interaction transparente de l'écosystème multi-chaîne. Son objectif principal est de résoudre le problème de fragmentation de l'écosystème multi-chaîne et de permettre à différentes blockchains de collaborer de manière transparente grâce au cadre de messagerie générale décentralisée (GMP). Analog a également adopté de manière innovante le mécanisme de consensus du pot (preuve temporelle) pour générer des données d'événements vérifiables sur la chaîne de temps, aidant les développeurs à créer une nouvelle génération d'applications basées sur des événements. Token anlog: le noyau de l'écosystème Anlog est anal

Bitcoin: Digital Or ou Stock Trading Dérivés? Une analyse approfondie de la nature de son investissement. Cet article discutera en profondeur des aspects de la définition, de la nature, du mécanisme d'émission, etc., et dévoilera le mystère de l'investissement du bitcoin. Bitcoin and Stocks: La différence essentielle entre Bitcoin et les actions est: investir dans Bitcoin n'est pas la même chose que d'investir dans des actions. Bitcoin est une monnaie numérique décentralisée qui appartient à la catégorie des actifs numériques ou des actifs virtuels. Ce concept a été proposé par Satoshi Nakamoto en 2009. Contrairement aux devises traditionnelles,
