Carpe Diem

  Top > スポンサー広告> Unix・Linuxコマンド > 覚えておくと便利なコマンド[top&free]  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

覚えておくと便利なコマンド[top&free]

2012 - 02/13 [Mon] - 06:11

サーバではアクセスやモジュールによる負担も考えなければいけません。
メモリ、CPUなどの負担をチェックできるコマンドとして便利なのがtop、free コマンドです。
どちらもUnix環境であればはじめから入っています。

◆free の使い方

free はメモリの使用状況を確認できます。

$ free
             total       used       free     shared    buffers     cached
Mem:        192572     190944       1628      54912      20112     126848
-/+ buffers/cache:      43984     148588
Swap:        96384          0      96384


こんな感じに表示されると思います。一見「free」の項目が1628 と少なくて「あれ?ヤバイ?」と勘違いしそうですが、実際の空き容量はfree+buffers+cached となります。つまりこの場合

free+buffers+cached = 1628+20112+126848 = 148588

となります。まだまだ十分あることがわかりますね。
Linuxでは、各プロセスにメモリを割り振った残りをバッファ(buffer)とキャッシュ(cache)に利用してディスク入出力の負荷を減らしています。そのためfree コマンド等で見える残りメモリ-(free)は 1M 程度の瞬間的な使いまわしに対処する程度しか残っていない事が多いのです。


◆top の使い方
top は各プロセスに対してメモリやCPUなどの詳細情報がわかります。ただ情報量が多すぎて一見使いづらいです。

$ top
top - 10:47:43 up 83 days,  1:35,  1 user,  load average: 0.26, 0.45, 0.49
Tasks:  65 total,   1 running,  64 sleeping,   0 stopped,   0 zombie
Cpu(s):  1.0% us,  0.3% sy,  0.0% ni, 98.7% id,  0.0% wa,  0.0% hi,  0.0% si
Mem:    127240k total,   124732k used,     2508k free,     2644k buffers
Swap:  1028152k total,   169640k used,   858512k free,    19112k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND


Windowsでのタスクマネージャ表示時のプロセスに近いです。
なので各項目順にソートさえできれば、メモリやCPUなどそれぞれどのプロセスが一番使っているのか確認できます。
やり方は

Shift + o

です。そうすると以下の様な項目一覧が表示されるので、見たい情報のアルファベットを入力してEnter を押します。
*のついた大文字の項目が選択している項目となります。


Current Sort Field: N for window 1:Def
Select sort field via field letter, type any other key to return

a: PID = Process Id Note1:
b: PPID = Parent Process Pid If a selected sort field can't be
c: RUSER = Real user name shown due to screen width or your
d: UID = User Id field order, the '< ' and '>' keys
e: USER = User Name will be unavailable until a field
f: GROUP = Group Name within viewable range is chosen.
g: TTY = Controlling Tty
h: PR = Priority Note2:
i: NI = Nice value Field sorting uses internal values,
j: P = Last used cpu (SMP) not those in column display. Thus,
k: %CPU = CPU usage the TTY & WCHAN fields will violate
l: TIME = CPU Time strict ASCII collating sequence.
m: TIME+ = CPU Time, hundredths (shame on you if WCHAN is chosen)
* 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

これで見たい項目の昇順で表示されます。


◆補足:各行の解説
1行目のtop以下の行

top - 10:47:43 up 83 days, 1:35, 1 user, load average: 0.26, 0.45, 0.49

稼働時間等の情報を表示しています。各項目の内容は次のとおり。

10:47:43 : 現在時間
up 83 days, 1:35 : 稼働時間(83日と1h25m間稼働中)
1 user : ログインユーザ数
load average: 0.26, 0.45, 0.49 : 実行待ちジョブの平均数1分前、5分前、15分前


2行目のTasks以下の行

Tasks: 65 total, 1 running, 64 sleeping, 0 stopped, 0 zombie

存在するタスクの状態を表示しています。各項目の内容は次のとおり。

total : タスクの合計数
running : 稼働中のタスク数
sleeping : 待機中のタスク数
stopped : 停止タスク数
zombie : ゾンビタスク数


3行目のCpu以下の行

Cpu(s): 1.0% us, 0.3% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si

CPUの利用時間についての情報を占有時間の割合で表示しています。

us : ユーザプロセスの使用時間
sy : システムプロセスの使用時間
ni : 実行優先度を変更したユーザプロセスの使用時間
id : アイドル状態の時間
wa : I/Oの終了待をしている時間
hi : ハードウェア割込み要求での使用時間
si : ソフトウェア割込み要求での使用時間


4行目のMem以下の行

Mem: 127240k total, 124732k used, 2508k free, 2644k buffers

物理メモリの使用状況についての情報を表示しています。各項目の内容は次のとおり。

total : メモリ合計量
used : 使用中のメモリ量
free : 未使用のメモリ量
buffers : バッファに使用されているメモリ量


5行目のSwap以下の行

Swap: 1028152k total, 169640k used, 858512k free, 19112k cached

スワップ領域の使用状況を表示しています。各項目の内容は次のとおり。

totale : スワップ領域の合計量
used : 使用中のスワップ領域
free : 未使用のスワップ領域
cached : キャッシュされているスワップ領域


6行目のPID以下の行

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

実行中のタクス(プロセス)の詳細を表示しています。各項目の内容は次のとおり。

PID : プロセス識別番号
USER : プロセスを実行しているユーザ
PR : 優先度
NI : 相対的優先度(-20(最高)縲鰀19(最低))
VIRT: プロセスの仮想メモリサイズ(スワップアウトしたメモリ使用量を加えたメモリ量)
RES : プロセスが使用している物理(スワップされていない)メモリサイズ
SHR : プロセスが使用している共有メモリ
S : プロセスの状態(状態の詳細については*1)
%CPU: CPU使用率
%MEM : 実メモリ使用率
TIME+ : プロセスの実行時間(秒)
COMMAND : 現在実行中のコマンド名

*1 プロセスの状態

S(スリープ状態)
T (停止中)
D (割り込み不可(sleep))
N (ナイス値がプラスの状態)
< (ナイス値がマイナスの状態)
R (実行中)
Z (ゾンビ状態)
W (スワップアウト状態)




ソース:
Linux のメモリー管理(メモリ-が足りない?メモリーリークの検出/防止)
topコマンドの使い方

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。