このエントリーをはてなブックマークに追加


psコマンドでスレッドを確認する方法

psコマンドをmanで確認するとスレッド情報を取得する場合、以下のオプションがあります。
本資料は、psコマンドを利用してスレッド情報を取得する方法を記します。

PS(1)                         Linux User’s Manual                        PS(1)
名前
ps - 現在実行されているプロセスのスナップショットを表示する
書式
ps [options]
<snip>
スレッド表示
H               スレッドをプロセスのように表示する。
-L              可能ならば LWP と NLWP カラムをつけてスレッドを表示する。
-T              可能ならば SPID カラムをつけてスレッドを表示する。
m               プロセスの後にスレッドを表示する。
-m              プロセスの後にスレッドを表示する。

関連記事

-Lオプションを使用した場合(可能ならば LWP と NLWP カラムをつけてスレッドを表示する。)

NLWPが表示されています。
automount, firefox, mysqldがスレッドで動作していることが各員できます。
なお、NLWP (スレッド数), LWP (スレッド ID) をあらわしています。

[sakura@centos ~]$ ps aux -L
USER       PID   LWP %CPU NLWP %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1     1  0.0    1  0.0  10364   688 ?        Ss   11:19   0:01 init [5]                                              
<snip>
root      3620  3620  0.0    1  0.0  10248   708 ?        S    11:21   0:00 hald-addon-storage: polling /dev/sr0
root      3661  3661  0.0    5  0.0  54428  1484 ?        Ssl  11:21   0:00 automount
root      3661  3662  0.0    5  0.0  54428  1484 ?        Ssl  11:21   0:00 automount
root      3661  3663  0.0    5  0.0  54428  1484 ?        Ssl  11:21   0:00 automount
root      3661  3666  0.0    5  0.0  54428  1484 ?        Ssl  11:21   0:00 automount
root      3661  3669  0.0    5  0.0  54428  1484 ?        Ssl  11:21   0:00 automount
<snip>
root      4506  4506  0.0    1  0.0  63884  1208 pts/1    S    11:50   0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --log-error=/va
mysql     4556  4556  0.1   10  0.6 178352 25348 pts/1    Sl   11:50   0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysq
mysql     4556  4558  0.0   10  0.6 178352 25348 pts/1    Sl   11:50   0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysq
mysql     4556  4559  0.0   10  0.6 178352 25348 pts/1    Sl   11:50   0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysq
mysql     4556  4560  0.0   10  0.6 178352 25348 pts/1    Sl   11:50   0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysq
mysql     4556  4561  0.0   10  0.6 178352 25348 pts/1    Sl   11:50   0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysq
mysql     4556  4562  0.0   10  0.6 178352 25348 pts/1    Sl   11:50   0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysq
mysql     4556  4563  0.0   10  0.6 178352 25348 pts/1    Sl   11:50   0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysq
mysql     4556  4564  0.0   10  0.6 178352 25348 pts/1    Sl   11:50   0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysq
mysql     4556  4565  0.0   10  0.6 178352 25348 pts/1    Sl   11:50   0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysq
mysql     4556  4566  0.0   10  0.6 178352 25348 pts/1    Sl   11:50   0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysq
505       4581  4581  6.0   16  4.3 762552 174848 ?       Sl   11:50   0:02 /usr/lib64/firefox/firefox
505       4581  4604  0.0   16  4.3 762552 174848 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4605  0.1   16  4.3 762552 174848 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4606  0.0   16  4.3 762552 174848 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4607  0.0   16  4.3 762552 174848 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4608  0.0   16  4.3 762552 174848 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4609  0.0   16  4.3 762552 174848 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4610  0.0   16  4.3 762552 174848 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4612  0.0   16  4.3 762552 174848 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4642  0.0   16  4.3 762552 174848 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4643  0.0   16  4.3 762552 174848 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4645  0.0   16  4.3 762552 174848 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4646  0.0   16  4.3 762552 174848 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4647  0.0   16  4.3 762552 174848 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4650  3.8   16  4.3 762552 174848 ?       Dl   11:50   0:01 /usr/lib64/firefox/firefox
505       4581  4681  0.0   16  4.3 762552 174848 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4690  4690  0.0    1  0.0  65640  1004 pts/1    R+   11:51   0:00 ps aux -L

Hオプションを利用した場合(スレッドをプロセスのように表示する。)

Hオプションを利用した場合は、以下のように表示されます。
firefoxが全て同じPIDになっているのが確認できます。

[sakura@centos ~]$ ps uxH
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
<snip>
505       4581  0.3  3.6 729800 144068 ?       Sl   11:50   0:02 /usr/lib64/firefox/firefox
505       4581  0.0  3.6 729800 144068 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  0.0  3.6 729800 144068 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  0.0  3.6 729800 144068 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  0.0  3.6 729800 144068 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  0.0  3.6 729800 144068 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  0.0  3.6 729800 144068 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  0.0  3.6 729800 144068 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  0.0  3.6 729800 144068 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  0.0  3.6 729800 144068 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  0.0  3.6 729800 144068 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  0.0  3.6 729800 144068 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  0.0  3.6 729800 144068 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  0.0  3.6 729800 144068 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  1.6  3.6 729800 144068 ?       Sl   11:50   0:09 /usr/lib64/firefox/firefox
505       4581  0.0  3.6 729800 144068 ?       Sl   11:51   0:00 /usr/lib64/firefox/firefox
505       4692  0.7  0.9 496064 39028 ?        S    11:51   0:04 gedit
505       4705  0.0  0.0  66240  1660 pts/3    Ss   11:53   0:00 bash
505       4824  0.0  0.0  65640  1000 pts/3    R+   12:00   0:00 ps uxH

m(-m)オプションを使用した場合(プロセスの後にスレッドを表示する。)

mオプションを利用場合の出力結果です。
firefoxのみ抜粋しています。

[sakura@centos ~]$ ps ux -m
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
<snip>
505       4581  1.4  3.6 729800 144068 ?       -    11:50   0:11 /usr/lib64/firefox/firefox
505          -  0.2    -      -     - -        Sl   11:50   0:02 -
505          -  0.0    -      -     - -        Sl   11:50   0:00 -
505          -  0.0    -      -     - -        Sl   11:50   0:00 -
505          -  0.0    -      -     - -        Sl   11:50   0:00 -
505          -  0.0    -      -     - -        Sl   11:50   0:00 -
505          -  0.0    -      -     - -        Sl   11:50   0:00 -
505          -  0.0    -      -     - -        Sl   11:50   0:00 -
505          -  0.0    -      -     - -        Sl   11:50   0:00 -
505          -  0.0    -      -     - -        Sl   11:50   0:00 -
505          -  0.0    -      -     - -        Sl   11:50   0:00 -
505          -  0.0    -      -     - -        Sl   11:50   0:00 -
505          -  0.0    -      -     - -        Sl   11:50   0:00 -
505          -  0.0    -      -     - -        Sl   11:50   0:00 -
505          -  0.0    -      -     - -        Sl   11:50   0:00 -
505          -  1.1    -      -     - -        Sl   11:50   0:09 -
505          -  0.0    -      -     - -        Sl   11:52   0:00 -
<snip>

-Tオプションを使用した場合(可能ならば SPID カラムをつけてスレッドを表示する。)

オプション-Tを使用した場合の出力です。
上記と同様にfirefoxのみ抜粋しています。

[sakura@centos ~]$ ps ux -T
USER       PID  SPID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
<snip>
505       4581  4581  0.2  3.6 729800 144080 ?       Sl   11:50   0:02 /usr/lib64/firefox/firefox
505       4581  4604  0.0  3.6 729800 144080 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4605  0.0  3.6 729800 144080 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4606  0.0  3.6 729800 144080 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4607  0.0  3.6 729800 144080 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4608  0.0  3.6 729800 144080 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4609  0.0  3.6 729800 144080 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4610  0.0  3.6 729800 144080 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4612  0.0  3.6 729800 144080 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4642  0.0  3.6 729800 144080 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4643  0.0  3.6 729800 144080 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4645  0.0  3.6 729800 144080 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4646  0.0  3.6 729800 144080 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4647  0.0  3.6 729800 144080 ?       Sl   11:50   0:00 /usr/lib64/firefox/firefox
505       4581  4650  0.9  3.6 729800 144080 ?       Sl   11:50   0:09 /usr/lib64/firefox/firefox
505       4581  4696  0.0  3.6 729800 144080 ?       Sl   11:52   0:00 /usr/lib64/firefox/firefox
<snip>

man ps内に記載されているSPIDを調べると以下のように記されています。

spid       SPID     lwp を参照。(別名 lwp, tid)。

したがって、SPIDはLWP(スレッド ID)になります。

以上、psコマンドを利用して各プロセスのスレッド数やスレッドIDを調べる方法を記しました。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:28:09