Linuxシステムのトップコマンドの詳細な紹介

ギンコのバ・シによる記事を転載

転載元:https //blog.csdn.net/yjclsx/article/details/81508455  

トップコマンドの使用法

topコマンドは、Linuxのシステムステータスを監視するためによく使用されます。これは、システム内の各プロセスのリソース占有をリアルタイムで表示できる、一般的に使用されるパフォーマンス分析ツールです。

トップトップ[-d番号] |トップ[-bnp]の使い方

パラメータの説明:

-d:numberは秒数を表し、topコマンドで表示されるページが1回更新される間隔を表します。デフォルトは5秒です。-b:topをバッチで実行します。-n:-bと組み合わせて使用​​し、topコマンドの出力を複数回実行する必要があることを示します。-p:監視用の特定のpidプロセス番号を指定します。

topコマンドで表示されるページで、次のキーを入力して、対応する機能を実行することもできます(大文字と小文字が区別されることに注意してください)。

?:一番上に入力できるコマンドを表示しますP:CPU使用量リソースの順に表示しますM:メモリ使用量リソースの順に表示しますN:pidの順に表示しますT:プロセスで使用した時間の累積順に表示しますk:pidを与えます信号。プロセスを強制終了するために使用できますr:pidの適切な値を再カスタマイズします(つまり、優先度)q:topを終了します(ctrl + cを使用してtopを終了することもできます)。

上位の出力パラメータの意味

以下は、topコマンドを使用してパフォーマンステストを実行するスクリーンショットです。

図1(ubuntu):

図2(セント):

1.統計の上位5行

行1:上-05:43:27アップ4:52、2ユーザー、負荷平均:0.58、0.41、0.30 
行1はタスクキュー情報であり、そのパラメーターは次のとおりです。

コンテンツ 意味
05:43:27 現在の時刻を示します
4:52まで システムの実行時間の形式は時間:分です
2ユーザー 現在ログインしているユーザーの数
負荷平均:0.58、0.41、0.30 システム負荷、つまりタスクキューの平均の長さ。3つの値は、1分、5分、15分前から現在までの平均値です。

負荷平均:この数を論理CPUの数で割ると、結果が5を超える場合、システムが過負荷になっていることを示します。 

2行目:タスク:合計159、実行中1、スリープ中158、停止0、ゾンビ0 
行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 
2行目と3行目は、プロセスとCPUの情報です。CPU 
が複数ある場合、これらの内容は2行を超える場合があります。パラメータは次のとおりです。

コンテンツ 意味
合計159 プロセスの総数
1ランニング 実行中のプロセスの数
158眠っている 睡眠プロセスの数
0停止 停止したプロセスの数
0ゾンビ ゾンビプロセスの数
37.0 us ユーザースペースが占めるCPUの割合
3.7 sy カーネルスペースが占めるCPUの割合
0.0 ni ユーザープロセススペースで優先度が変更されたプロセスが占めるCPUの割合
59.3 id アイドルCPUパーセンテージ
0.0 wa 入力と出力を待機しているCPU時間の割合
0.0こんにちは 占有されているCPUのハード割り込み(ハードウェアIRQ)の割合
0.0 si ソフトウェア割り込みによって占有されているCPUの割合
0.0 st  


4行目:KiB Mem:合計1530752、1481968使用、48784空き、70988バッファー 
5行目:KiBスワップ:合計3905532、267544使用、3637988空き617312キャッシュされたMem4 
行目と5行目のメモリ情報と 
そのパラメーターは次のとおりです。

コンテンツ 意味
KiB Mem:合計1537052 総物理メモリ
1481968使用 使用された物理メモリの合計
48784無料 空きメモリの合計量
70988バッファ(バフ/キャッシュ) カーネルキャッシュとして使用されるメモリの量
KiBスワップ:合計3905532 総交換面積
267544使用 使用された交換エリアの合計
3637988無料 フリースワップエリアの合計
617312キャッシュされたMem バッファリングされたスワップ領域の合計量。
3156100アベイルズメモリ プロセスの次の割り当てに使用できる物理メモリの量を表します

上記のバッファリングされたスワップ領域の合計量、ここに説明があります。いわゆるバッファリングされたスワップ領域の合計量、つまりメモリの内容がスワップ領域にスワップアウトされてからメモリにスワップされますが、スワップ領域が使用されます上書きされていない場合、値は、コンテンツがメモリにすでに存在するスワップ領域のサイズです。対応するメモリが再度スワップアウトされると、スワップ領域に書き込む必要はありません。 

使用可能なメモリの量を計算するための概算式があります: 
4行目で空き+4行目でバッファ+5行目でキャッシュ

2.プロセス情報

列名 意味
PID プロセスID
PPID 親プロセスID
RUSER 実際のユーザー名
UID プロセス所有者のユーザーID
ユーザー プロセス所有者のユーザー名
グループ プロセス所有者のグループ名
TTY プロセスを開始した端末の名前。端末から開始されていないプロセスは?として表示されます。
PR 優先
NI いい値。負の値は優先度が高いことを意味し、正の値は優先度が低いことを意味します
P 最後に使用されたCPUは、マルチCPU環境でのみ意味があります
%CPU 最後の更新から現在までのCPU時間の割合
時間 プロセスで使用された合計CPU時間(秒単位)
TIME + プロセスで使用された合計CPU時間(1/100秒単位)
%MEM プロセスによって使用される物理メモリの割合
VIRT プロセスによって使用される仮想メモリの合計量(kb)。VIRT = SWAP + RES
スワップ スワップアウトされるプロセスによって使用される仮想メモリのサイズ(kb)
RES スワップアウトされていないプロセスによって使用される物理メモリのサイズ(kb単位)。RES = CODE + DATA
コード 実行可能コードが占める物理メモリのサイズ(kb)
データ 実行可能コード(データセグメント+スタック)以外の部分が占める物理メモリのサイズ(kb)
SHR 共有メモリサイズ、単位kb
nFLT ページの障害
nDRT 前回の書き込み以降に変更されたページ数。
S プロセスステータス。D =中断できないスリープ状態R =実行中S =スリープ中T =追跡/停止Z =ゾンビプロセス
コマンド コマンド名/コマンドライン
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,注意大写

おすすめ

転載: blog.csdn.net/ClearLoveQ/article/details/109239726