Linuxでプロセスとスレッドを表示する方法
Linuxでスレッド数を表示する3つの方法
プロセスの表示
1.topコマンド
トップコマンドシステムのリソース状況の表示
load averageは、過去の期間にCPUを独占しようとしたプロセスがどれだけあるかを示します。
zombieプロセス:異常ではありません。1つのプロセスは作成から終了まで最後の時間にゾンビだらけです。親プロセスが取るのを待つものはゾンビです。どのプログラムにもゾンビ状態があり、メモリリソースを少し消費しています。表象だけで恐れる必要はありません。プログラムに問題があれば、大量のゾンビを解決する簡単で効果的な方法は再開することです。killは何の効果もないstopモードです。sleepプロセスとは異なり、sleepは積極的にcpuを放棄し、stopは受動的にcpuを放棄します。例は単一ステップで追跡し、stop(一時停止)のプロセスは自分で運転状態に戻ることはできません。
cpu states:
nice:譲渡パーセントirq:割込み処理占有
idle:スペース占有率iowait:入出力待機(外部ストレージにボトルネックがある場合は、ハードディスク(SCSI)をアップグレードする必要があります)
Mem:メモリ状況
設計思想:リソースを節約するのは無駄で、メモリを追加するとfree値が変わらず、buff値が大きくなります。物理メモリが足りないと判断し、交換パーティションの使用状態を確認します。
インタラクティブコマンド:
[Space]今すぐ表示を更新
[h]ヘルプ画面の表示
[k]あるプロセスを殺す。プロセスIDと送信する信号の入力を求められます。一般的な終了プロセスは15信号を使用することができる。正常に終了できない場合は、信号9を使用してプロセスを強制的に終了します。デフォルトは信号15です。このコマンドは、セーフモードでマスクされます。
[n]表示されるプロセス数を変更します。数量の入力を求められます。
[u]ユーザ別にソートする。
[M]メモリ使用量別に並べ替えます。
[o][O]表示項目の順序を変更する。
[P]CPU使用率サイズに応じて並べ替えます。
[T]時間/積算時間に基づいて並べ替えを行う.
[Ctrl+L]画面を消去して書き換えます。
[q]プログラムを終了する。
[r]プロセスの優先度を再スケジュールします。変更する必要があるプロセスPIDと、設定する必要があるプロセス優先度の値を入力するようユーザに要求する。正の値を入力すると優先度が低下し、逆にプロセスの優先度が高くなります。デフォルトは10です。
[S]積算モードに切り替えます。
[s]2回のリフレッシュ間の遅延時間を変更する。システムは、s単位で新しい時間を入力するようユーザーに要求します。小数があれば、m sに換算します。0値を入力すると、システムは更新され続け、デフォルトは5 sです。設定時間が小さすぎると、表示を見極めることができず、システム負荷も大幅に増加する可能性があります。
略語:
PID各プロセスのID
USERプロセス所有者のユーザー名
PRI各プロセスの優先度
NI優先度ごとの値
SIZEプロセスのコードサイズにデータサイズとスタックスペースサイズの合計を加えたもので、単位はKB RSSプロセスが占有する物理メモリの合計数であり、単位はKBである
SHAREプロセスで使用される共有メモリの数
STATプロセスの状態。ここで、Sは休眠状態を表す。Dは中断できない休眠状態を表す。Rは運転状態を表す。Zは硬直状態を表す。Tは停止または追跡状態を表す
%CPUプロセスが最後のリフレッシュ以降に使用したCPU時間と合計時間の割合
%MEMプロセスで使用される物理メモリの合計メモリに対する割合
TIMEプロセスの起動からの総CPU時間
CPU CPU ID
COMMANDプロセスのコマンド名
2.psコマンド
ps現在のユーザーのアクティブなプロセスを表示します。パラメータを加えると、-aなどのより多くの情報を表示できます。すべてのユーザーのプロセスを表示します。
ps ax:tty値は「?」デーモンプロセスであり、deamon無端末と呼ばれ、多くのシステムサービスはこのプロセスであり、カーネル状態プロセスは見えない。
ps axf:プロセスツリーを見て、木の形で現実のプロセスリストを叩いて、initは1番のプロセスで、システムのすべてのプロセスはすべてそれが派生して、殺すことができません
ps axm:スレッドがリストされます。linuxではプロセスとスレッドが統一されており、軽量レベルのプロセスの2つの方法です。
ps axu:プロセスの詳細ステータスが表示されます。
vsz:このプロセスは全部でどれだけの物理メモリを消費しているかを示します。
rss:常駐メモリのリクエスト数スレッドの表示
実はlinuxはスレッドがなくて、すべてプロセスで真似したのです
1. ps -ef f
プロセスとスレッドをツリーで表示します。例えば、proftpが現在どのくらいのプロセス/スレッドを持っているかを見つけたいのですが、
$ ps -ef f | grep proftpd
nobody 23117 1 0 Dec23 ? S 0:00 proftpd: (accepting connections)
jack 23121 23117 0 Dec23 ? S 7:57 \_ proftpd: jack - ftpsrv: IDLE
jack 28944 23117 0 Dec23 ? S 4:56 \_ proftpd: jack - ftpsrv: IDLE
これによりproftpdというプロセスの下に2つのスレッドが掛けられていることがわかります。
Linuxの下には本物のスレッドがないようで、プロセスでシミュレートされていて、1つは補助スレッドなので、本物のプログラムが開いているスレッドは1つしかないはずです。