引き続きLPIC level2の勉強中。今年の目標の週に1回はブログ更新を達成する為、コマンドの紹介でお茶を濁しつつ、資格試験の学習に役立てよう。とても生産的です。今回はtopコマンドについて学びました。
topコマンド
システム全体の負荷状況や、CPU,メモリの統計情報を確認出来ます。サーバの動きが重いときはとりあえず実行している感覚です。理解力がヤバイですね。とりあえず手頃なWebサーバで実行してみます。
top - 13:44:54 up 246 days, 22:13, 2 users, load average: 0.52, 0.59, 0.66 Tasks: 140 total, 1 running, 139 sleeping, 0 stopped, 0 zombie Cpu(s): 2.2%us, 0.8%sy, 0.0%ni, 96.7%id, 0.2%wa, 0.0%hi, 0.2%si, 0.0%st Mem: 1922092k total, 1799136k used, 122956k free, 29932k buffers Swap: 1048572k total, 55292k used, 993280k free, 1512868k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 26532 httpd 20 0 186m 11m 4208 S 1.7 0.6 0:00.06 httpd 26529 httpd 20 0 184m 9.9m 3084 S 1.3 0.5 0:00.05 httpd 26072 httpd 20 0 187m 11m 4236 S 1.0 0.6 0:00.80 httpd 26513 httpd 20 0 188m 12m 4176 S 0.7 0.7 0:00.25 httpd 10 root RT 0 0 0 0 S 0.3 0.0 0:15.47 watchdog/1 26080 httpd 20 0 188m 13m 4284 S 0.3 0.7 0:00.58 httpd 1 root 20 0 19356 876 676 S 0.0 0.0 0:08.33 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 0:54.06 migration/0 4 root 20 0 0 0 0 S 0.0 0.0 0:13.74 ksoftirqd/0 5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/0 6 root RT 0 0 0 0 S 0.0 0.0 0:20.42 watchdog/0 7 root RT 0 0 0 0 S 0.0 0.0 0:40.90 migration/1 8 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/1 9 root 20 0 0 0 0 S 0.0 0.0 0:19.98 ksoftirqd/1 11 root 20 0 0 0 0 S 0.0 0.0 12:07.93 events/0 12 root 20 0 0 0 0 S 0.0 0.0 14:34.04 events/1 13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events/0 14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events/1 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_long/0 16 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_long/1 17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_power_ef 18 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_power_ef 19 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cgroup 20 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper 21 root 20 0 0 0 0 S 0.0 0.0 0:00.00 netns 22 root 20 0 0 0 0 S 0.0 0.0 0:00.00 async/mgr 23 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pm 24 root 20 0 0 0 0 S 0.0 0.0 0:50.33 sync_supers <以下省略>
こんな感じで表示された後、放っておくとずっと更新されています。Webサーバなのでhttpdプロセスがリソースを少し使っていますね。
オプション
更新頻度の変更(-d*)
1秒ごとに変更したい場合"top -d1"、又はtop実行中にdを押してから1をEnterで反映されます。
コマンドをフルパス表示(-c)
"-c"又はtop実行中にcを押下すると、commandがフルパスで表示されます。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 19356 876 676 S 0.0 0.0 0:08.33 /sbin/init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kthreadd] 3 root RT 0 0 0 0 S 0.0 0.0 0:54.09 [migration/0] 4 root 20 0 0 0 0 S 0.0 0.0 0:13.75 [ksoftirqd/0] 5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 [stopper/0] 6 root RT 0 0 0 0 S 0.0 0.0 0:20.43 [watchdog/0]
表示項目の変更
top実行中にfで表示する項目を変更出来ます。アスタリスクが付いている項目が現在選択されている項目です。
Current Fields: AEHIOQTWKNMbcdfgjplrsuvyzX for window 1:Def Toggle fields via field letter, type any other key to return * A: PID = Process Id * E: USER = User Name * H: PR = Priority * I: NI = Nice value * O: VIRT = Virtual Image (kb) * Q: RES = Resident size (kb) * T: SHR = Shared Mem size (kb) * W: S = Process Status * K: %CPU = CPU usage * N: %MEM = Memory usage (RES) * M: TIME+ = CPU Time, hundredths b: PPID = Parent Process Pid c: RUSER = Real user name d: UID = User Id f: GROUP = Group Name g: TTY = Controlling Tty j: P = Last used cpu (SMP) p: SWAP = Swapped size (kb) l: TIME = CPU Time r: CODE = Code size (kb) s: DATA = Data+Stack size (kb) u: nFLT = Page Fault count v: nDRT = Dirty Pages count y: WCHAN = Sleeping in Function z: Flags = Task Flags <sched.h> * X: COMMAND = Command name/line Flags field: 0x00000001 PF_ALIGNWARN 0x00000002 PF_STARTING 0x00000004 PF_EXITING 0x00000040 PF_FORKNOEXEC 0x00000100 PF_SUPERPRIV 0x00000200 PF_DUMPCORE 0x00000400 PF_SIGNALED 0x00000800 PF_MEMALLOC 0x00002000 PF_FREE_PAGES (2.5) 0x00008000 debug flag (2.5) 0x00024000 special threads (2.5) 0x001D0000 special states (2.5) 0x00100000 PF_USEDFPU (thru 2.4)
表示させたい項目がある場合、該当するアルファベットを押下してからEnterを押します。
項目のソート
top実行中にshift+fで以下のソート項目の選択画面に移動します。
Current Sort Field: K for window 1:Def Select sort field via field letter, type any other key to return a: PID = Process Id b: PPID = Parent Process Pid c: RUSER = Real user name d: UID = User Id e: USER = User Name f: GROUP = Group Name g: TTY = Controlling Tty h: PR = Priority i: NI = Nice value j: P = Last used cpu (SMP) * K: %CPU = CPU usage l: TIME = CPU Time m: TIME+ = CPU Time, hundredths n: %MEM = Memory usage (RES) o: VIRT = Virtual Image (kb) p: SWAP = Swapped size (kb) q: RES = Resident size (kb) r: CODE = Code size (kb) s: DATA = Data+Stack size (kb) t: SHR = Shared Mem size (kb) u: nFLT = Page Fault count v: nDRT = Dirty Pages count w: S = Process Status x: COMMAND = Command name/line y: WCHAN = Sleeping in Function z: Flags = Task Flags <sched.h> Note1: If a selected sort field can't be shown due to screen width or your field order, the '<' and '>' keys will be unavailable until a field within viewable range is chosen. Note2: Field sorting uses internal values, not those in column display. Thus, the TTY & WCHAN fields will violate strict ASCII collating sequence. (shame on you if WCHAN is chosen)
shift + F を実施しなくても、CPU/Memory/Timeであれば実行中画面から以下で反映されます。
CPU: shift + p
MEM: shift + m
TIME: shirt + t
上記3つだけでも大分便利に使えます。
指定したプロセス(-p PID)やユーザー(-u uname)を表示する
こちらも便利。特定のプロセスやユーザーの監視が出来ます。
[user]
#top -u httpd top - 16:42:41 up 37 days, 5:14, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 112 total, 1 running, 111 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1921992k total, 1789724k used, 132268k free, 199772k buffers Swap: 1048572k total, 4632k used, 1043940k free, 1344120k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 30752 httpd 20 0 516m 9424 1160 S 0.0 0.5 0:24.72 httpd 30753 httpd 20 0 516m 9428 1160 S 0.0 0.5 0:24.67 httpd 30758 httpd 20 0 516m 9428 1160 S 0.0 0.5 0:24.69 httpd
[PID]
#top -p 30752 top - 16:41:40 up 37 days, 5:13, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1921992k total, 1789864k used, 132128k free, 199772k buffers Swap: 1048572k total, 4632k used, 1043940k free, 1344120k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 30752 httpd 20 0 516m 9424 1160 S 0.0 0.5 0:24.71 httpd
batchで実行(-b)
これは参考書見た時は全く分からなかったんですが、実行結果が出力されるようになるので、このままファイルに出力出来ます。
#top -d5 -n3 -b > test.log
とりあえず勉強目的ではじめましたが、topだけでも知らないこといっぱいありました。。
果たしてこんなペースで合格出来るのだろうか、迸るほど不安です。