Réimpression d'un article de Ba Shi, le ginkgo
Réimprimé à partir de: https://blog.csdn.net/yjclsx/article/details/81508455
utilisation de la commande supérieure
La commande top est souvent utilisée pour surveiller l'état du système de Linux. C'est un outil d'analyse des performances couramment utilisé qui peut afficher l'occupation des ressources de chaque processus du système en temps réel.
Comment utiliser top top [-d number] | top [-bnp]
Explication des paramètres:
-d: nombre représente le nombre de secondes, qui représente l'intervalle auquel la page affichée par la commande top est mise à jour une fois. La valeur par défaut est de 5 secondes. -b: Exécute top par lots. -n: Utilisé conjointement avec -b pour indiquer que la sortie de la commande top doit être exécutée plusieurs fois. -p: Spécifiez un numéro de processus pid spécifique pour l'observation.
Sur la page affichée par la commande du haut, vous pouvez également saisir les touches suivantes pour exécuter les fonctions correspondantes (notez que la casse est sensible):
?: Afficher les commandes qui peuvent être saisies en haut P: afficher dans l'ordre des ressources d'utilisation du processeur M: afficher dans l'ordre des ressources d'utilisation de la mémoire N: afficher dans l'ordre des pids T: afficher dans l'ordre cumulatif du temps utilisé par le processus k: donner un pid Un signal. Peut être utilisé pour tuer le processus r: re-personnaliser une belle valeur pour un pid (ie priorité) q: exit top (vous pouvez aussi quitter top avec ctrl + c).
La signification des principaux paramètres de sortie
Voici une capture d'écran de l'utilisation de la commande top pour effectuer des tests de performances:
Figure un (ubuntu):
Figure deux (centos):
1. 5 premières lignes de statistiques
Ligne 1: top-05: 43: 27 jusqu'à 4:52, 2 utilisateurs, charge moyenne: 0,58, 0,41, 0,30 La
ligne 1 est les informations de la file d'attente de tâches, et ses paramètres sont les suivants:
contenu | sens |
---|---|
05:43:27 | Indique l'heure actuelle |
jusqu'à 4:52 | Le format du temps de fonctionnement du système est heure: minute |
2 utilisateurs | Nombre d'utilisateurs actuellement connectés |
moyenne de charge: 0,58, 0,41, 0,30 | Charge système, c'est-à-dire la longueur moyenne de la file d'attente des tâches. Les trois valeurs sont les valeurs moyennes d'il y a 1 minute, 5 minutes et 15 minutes jusqu'à présent. |
Charge moyenne: si ce nombre est divisé par le nombre de CPU logiques, lorsque le résultat est supérieur à 5, cela indique que le système est surchargé.
Ligne 2: Tâches: 159 au total, 1 en cours d'exécution, 158 en sommeil, 0 arrêté, 0 zombie
Ligne 3:% CPU (s): 37.0 us, 3.7 sy, 0.0 ni, 59.3 id, 0.0 wa, 0.0 hi, 0.0 si , 0.0 st Les
deuxième et troisième lignes sont les informations de processus et de CPU.
Lorsqu'il y a plusieurs CPU, ce contenu peut dépasser deux lignes. Les paramètres sont les suivants:
contenu | sens |
---|---|
159 au total | Nombre total de processus |
1 course | Nombre de processus en cours |
158 couchage | Nombre de processus de sommeil |
0 arrêté | Nombre de processus arrêtés |
0 zombie | Nombre de processus zombies |
37,0 nous | Pourcentage du processeur occupé par l'espace utilisateur |
3,7 sy | Pourcentage du processeur occupé par l'espace du noyau |
0,0 ni | Pourcentage de CPU occupé par des processus dont la priorité a été modifiée dans l'espace de processus utilisateur |
59.3 identifiant | Pourcentage de CPU inactif |
0,0 wa | Pourcentage de temps CPU en attente d'entrée et de sortie |
0,0 salut | Le pourcentage de CPU occupé par l'IRQ matériel |
0,0 si | Le pourcentage de CPU occupé par les interruptions logicielles |
0,0 st |
Ligne 4: KiB Mem: 1530752 au total, 1481968 utilisés, 48784 libres, 70988 tampons
Ligne 5: KiB Swap: 3905532 au total, 267544 utilisés, 3637988 libres.617312 en cache Mem Les
lignes 4 et 5 informations sur la mémoire et
ses paramètres sont les suivants:
contenu | sens |
---|---|
Mémoire KiB: 1530752 au total | Mémoire physique totale |
1481968 utilisé | Mémoire physique totale utilisée |
48784 gratuit | Quantité totale de mémoire libre |
70988 tampons (buff / cache) | Quantité de mémoire utilisée comme cache du noyau |
Swap KiB: 3905532 au total | Surface d'échange totale |
267544 d'occasion | Surface d'échange totale utilisée |
3637988 gratuit | Montant total de la zone de swap libre |
617312 Mem mis en cache | Le montant total de la zone de swap tamponnée. |
3156100 dispo Mem | Représente la quantité de mémoire physique disponible pour la prochaine allocation du processus |
La quantité totale de zone d'échange en mémoire tampon mentionnée ci-dessus, voici une explication. La soi-disant quantité totale de zone d'échange en mémoire tampon, c'est-à-dire que le contenu de la mémoire est transféré vers la zone d'échange, puis transféré dans la mémoire, mais la zone d'échange est utilisée S'il n'a pas été écrasé, la valeur correspond à la taille de la zone d'échange où le contenu existe déjà dans la mémoire. Lorsque la mémoire correspondante est à nouveau permutée, il n'est pas nécessaire d'écrire dans la zone d'échange.
Il existe une formule approximative pour calculer la quantité de mémoire disponible:
libre dans la quatrième ligne + tampons dans la quatrième ligne + mis en cache dans la cinquième ligne
2. Informations sur le processus
Nom de colonne | sens |
---|---|
PID | ID de processus |
PPID | ID de processus parent |
RUSER | Nom d'utilisateur réel |
UID | ID utilisateur du propriétaire du processus |
UTILISATEUR | Nom d'utilisateur du propriétaire du processus |
GROUPE | Le nom du groupe du propriétaire du processus |
ATS | Le nom du terminal qui a lancé le processus. Les processus qui ne sont pas lancés depuis le terminal sont affichés sous la forme? |
PR | priorité |
NI | belle valeur. Une valeur négative signifie une priorité élevée, une valeur positive signifie une priorité faible |
P | Le dernier processeur utilisé n'a de sens que dans un environnement multi-processeurs |
%CPU | Pourcentage de temps processeur entre la dernière mise à jour et le présent |
TEMPS | Le temps CPU total utilisé par le processus, en secondes |
TEMPS + | Le temps CPU total utilisé par le processus, en unités de 1/100 seconde |
% MEM | Le pourcentage de mémoire physique utilisé par le processus |
VIRT | La quantité totale de mémoire virtuelle utilisée par le processus, en ko. VIRT = SWAP + RES |
ÉCHANGER | La taille de la mémoire virtuelle utilisée par le processus à échanger, en ko |
RES | La taille de la mémoire physique utilisée par le processus qui n'a pas été permutée, en ko. RES = CODE + DONNÉES |
CODE | La taille de la mémoire physique occupée par le code exécutable, en ko |
LES DONNÉES | La taille de la mémoire physique occupée par des parties autres que le code exécutable (segment de données + pile), en ko |
SHR | Taille de la mémoire partagée, unité Ko |
nFLT | Défauts de page |
nDRT | Le nombre de pages qui ont été modifiées depuis la dernière écriture. |
S | Statut du processus. D = état de veille ininterrompu R = en cours d'exécution S = en veille T = suivi / arrêt Z = processus zombie |
COMMANDER | Nom de la commande / ligne de commande |
WCHAN | 若该进程在睡眠,则显示睡眠中的系统函数名 |
Flags | 任务标志 |
其他
默认进入top时,各进程是按照CPU的占用量来排序的。
1、在top基本视图中,按键盘数字“1”可以监控每个逻辑CPU的状况:
2、敲击键盘‘b’(打开关闭加亮效果)top视图变换如下:
PID为16283为当前top视图中唯一的运行态进程。也可以敲击键盘‘y’来打开或者关闭运行态进程的加亮效果。
3、敲击键盘‘x’(打开/关闭排序列的加亮效果),top视图变换如下:
可以看到现在是按"%CPU"进行排序的,可以按”shift+>”或者”shift+<”左右改变排序序列。
4、改变进程显示字段
在top基本视图中,敲击”f”进入另一个视图,在这里可以编辑基本视图中的显示字段:
用上下键选择选项,按下空格键可以决定是否在基本视图中显示这个选项。
top命令是一个非常强大的功能,但是它监控的最小单位是进程,如果想监控更小单位时,就需要用到ps或者netstate命令来满足我们的要求。
参考文献
1、https://blog.csdn.net/quiet_girl/article/details/50668126
2、http://www.zhimengzhe.com/linux/298422.html
额外的:
以下转载自:https://www.cnblogs.com/sparkbj/p/6148817.html
Linux下如何查看哪些进程占用的CPU内存资源最多
linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合:
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
linux下获取占用内存资源最多的10个进程,可以使用如下命令组合:
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
命令组合解析(针对CPU的,MEN也同样道理):
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
该命令组合实际上是下面两句命令:
ps aux|head -1
ps aux|grep -v PID|sort -rn -k +3|head
可以使用一下命令查使用内存最多的10个进程
查看占用cpu最高的进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
或者top (然后按下M,注意这里是大写)
查看占用内存最高的进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
或者top (然后按下P,注意这里是大写)
该命令组合实际上是下面两句命令:
ps aux|head -1
ps aux|grep -v PID|sort -rn -k +3|head
其中第一句主要是为了获取标题(USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND)。
接下来的grep -v PID是将ps aux命令得到的标题去掉,即grep不包含PID这三个字母组合的行,再将其中结果使用sort排序。
sort -rn -k +3该命令中的-rn的r表示是结果倒序排列,n为以数值大小排序,而-k +3则是针对第3列的内容进行排序,再使用head命令获取默认前10行数据。(其中的|表示管道操作)
补充:内容解释
PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称
、可以使用以下命令查使用内存最多的K个进程
方法1:
ps -aux | sort -k4nr | head -K
如果是10个进程,K=10,如果是最高的三个,K=3
说明:ps -aux中(a指代all——所有的进程,u指代userid——执行该进程的用户id,x指代显示所有程序,不以终端机来区分)
ps -aux的输出格式如下:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 19352 1308 ? Ss Jul29 0:00 /sbin/init root 2 0.0 0.0 0 0 ? S Jul29 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S Jul29 0:11 [migration/0]
sort -k4nr中(k代表从第几个位置开始,后面的数字4即是其开始位置,结束位置如果没有,则默认到最后;n指代numberic sort,根据其数值排序;r指代reverse,这里是指反向比较结果,输出时默认从小到大,反向后从大到小。)。本例中,可以看到%MEM在第4个位置,根据%MEM的数值进行由大到小的排序。
head -K(K指代行数,即输出前几位的结果)
|为管道符号,将查询出的结果导到下面的命令中进行下一步的操作。
方法2:top (然后按下M,注意大写)
二、可以使用下面命令查使用CPU最多的K个进程
方法1:
ps -aux | sort -k3nr | head -K
方法2:top (然后按下P,注意大写