日頃の学習メモ。

メモリー

メモリー構造




※1 メモリ範囲はマシンの最大メモリ範囲に等しい。
※2 仮想アドレス空間を物理メモリに対応させる管理をおこなう。

"vmstat -S" 仮想メモリーの統計情報

% vmstat 1 2
procs     memory            page            disk          faults      cpu
r b w   swap  free  re  mf pi po fr de sr s0 s1 s3 --   in   sy   cs us sy id
0 0 9 1783272 126528 40 85 149 3  9  0  6  4  1  0  0 4294967205 20 15 8 1 91
0 0 14 1759248 209000 0  7  8  0  0  0  0  1  0  0  0  313  482  425  1  0 99
フィールド名説明
procプロセス情報
rディスパッチ待ち行列内のカーネルスレッド数
b資源を待機中のブロックされたカーネルスレッド数
w資源処理の完了を待機中のスワップアウトされた軽量のプロセス数
memory(KB)実メモリと仮想メモリの使用状況
swap使用可能スワップ空間
free空きリストサイズ
pageページフォルトとページング動作を1秒あたりの単位数として表示
re回収されたページ数
mf軽度のフォルトと重大なフォルト
piページインされたキロバイト数
poページアウトされたキロバイト数
fr解放されたキロバイト数
de最後にスワップインされたプロセスに必要だと予想されるメモリー
srページデーモンによって走査されたページ数
disk一秒あたりのディスク処理数(入出力数)最大4台まで表示
faultsトラップ/割り込み率(1秒当たり)を表示
in割り込み数
syシステムコール数
csCPUコンテキスト切替率
cpuCPU時間の使用状況を表示
usユーザ時間
syシステム時間
idアイドル時間

"sar -b" バッファの動作をチェックする

# sar -b 1

SunOS 5.8 Generic_108528-29 sun4u    07/04/07

16:12:38 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s
16:12:39       0       0     100       0       0     100       2       0
フィールド名説明
bread/sディスクからバッファーキャッシュに投入された 1 秒当りの平均読み取り数
lread/sバッファーキャッシュからの 1 秒当りの平均論理読み取り数
%rcacheバッファーキャッシュ内で見つかった論理読み込み数の小数部 (lread/s に対する bread/s の比を 100% から差し引いた値)
bwrit/sバッファーキャッシュからディスクに書き込まれた 1 秒当りの平均物理ブロック数 (512 ブロック)
lwrite/sバッファーキャッシュへの 1 秒当りの平均論理書き込み数
%wcacheバッファーキャッシュ内で見つかった論理書き込み数の小数部 (lwrit/s に対する bwrit/s の比を 100% から差し引いた値)
pread/sキャラクタ型デバイスインタフェースを使用する 1 秒当りの平均物理読み取り数
pwrit/sキャラクタ型デバイスインタフェースを使用する 1 秒当りの平均物理書き込み要求数
  • 最も重要なエントリは、キャッシュヒット率 %rcache と %wcache です。この 2 つのエントリは、システムバッファーリングの効率を測定します。
  • %rcache が 90 未満の場合や、%wcache が 65 未満の場合は、バッファー領域を大きくすれば性能を改善できる可能性があります。
(Sun Microsystems Documentationから抜粋)

"sar -r" 未使用のメモリをチェックする

% sar -r 2

SunOS 5.8 Generic_117350-20 sun4u    07/06/07

15:52:31 freemem freeswap
15:52:33   25868  3517856
フィールド名説明
freemem未使用のメモリページ数
freeswapページスワップに使用可能な512バイトのディスクブロック数

"sar -k" カーネルメモリの割り当てをチェックする

# sar -k 2

SunOS 5.8 Generic_117350-20 sun4u    07/09/07

09:10:21  sml_mem     alloc  fail       lg_mem         alloc  fail     ovsz_alloc  fail
09:10:23 14532736 9886970     0 177700864 164291072     0    17457152     0
フィールド名説明
sml_memKMAが小メモリー要求プール内で使用できるメモリのバイト数(小要求は356バイト未満)
allocKMAが小メモリー要求プールから小メモリ要求に割り当てたメモリバイト数
fail少量のメモリーで失敗した要求数
lg_memKMAが大メモリー要求プール内で使用できるメモリのバイト数(大要求は512バイト〜4Kバイト)
allocKMAが大メモリー要求プールから大メモリ要求に割り当てたメモリバイト数
fail大メモリーで失敗した要求数
ovsz_allocサイズ超過要求(4Kバイトを超える要求)に割り当てられたメモリー容量。ページアロケータによって満たされる。
failサイズ超過メモリーで失敗した要求数

"swap -s" スワップリソースの監視

% swap -s
合計: 956296k バイト割り当て済み + 143360k 予約済み = 1099656k 使用済み, 1757968k 使用可

"prstat" システムの動作中のプロセス情報を表示

  • オプションを省略するとすべての動作中プロセスの情報がCPU使用率順で表示されます。
  • 情報は3秒おきに更新され、qで終了します。
オプション説明
aプロセスとユーザを分けて表示
c新しいレポートを表示
Cpsrsetlist 指定のプロセッサリストに結びついているプロセスを表示
L軽量プロセスについて表示
mマイクロステート情報を表示
nnumber 表示行数を指定された数に制限する
ppidlist pidlistに指定されたPIDのプロセスだけ表示
Pcpulist cpulistに指定されたCPUで実行されているプロセスを表示
Rリアルタイムモードで実行
skey key(cpu,time,sie,rss,pri)に基づき降順でソート
Skey key(cpu,time,sie,rss,pri)に基づき昇順でソート
t全般の使用状況をユーザごとに表示
ueuidlist euidlistに指定された実効UIDをもつプロセスを表示
Uuidlist uidlistに指定された実UIDをもつプロセスだけを表示
v冗長モードで表示

PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP
6664 root      405M  110M sleep   58    0   0:03.07 0.4% java/56
63 root     4472K 2184K sleep   48    0   0:00.00 0.1% picld/6
360 oracle    588M  543M sleep   59    0   0:40.31 0.0% oracle/1
352 oracle    469M  416M sleep   59    0   0:04.40 0.0% oracle/19
358 oracle    465M  416M sleep   59    0   0:00.09 0.0% oracle/1
356 oracle    465M  418M sleep   59    0   0:00.00 0.0% oracle/1
354 oracle    465M  420M sleep   58    0   0:01.50 0.0% oracle/1
・
(省略)
・
NPROC USERNAME  SIZE   RSS MEMORY      TIME  CPU
28 root      458M  138M   1.7%   0:07.40 0.5%
21 oracle   8997M 8102M    98%   1:00.54 0.0%
4 weblogic  151M   36M   0.4%   0:00.15 0.0%
3 daemon     22M 3552K   0.0%   0:00.00 0.0%
フィールド名説明
PIDプロセスID
USERNAME実ユーザ名、実ユーザID
SIZEすべてのマップ済みのファイル及びデバイスを含む、プロセスの合計仮想メモリー容量
RSSプロセスの常駐セットサイズ
STATEプロセスの状態
cpuNプロセスはCPUN上で実行されている
sleep休止状態。プロセスはイベントが完了するのを待っている
run実行可能状態。プロセスは実行待ち行列上にある
zombileゾンビ状態。プロセスは終了していて、親プロセスは待っていない
stopプロセスは停止されている
PRIプロセスの優先順位。数値が大きいほど優先順位が高い
NICE優先順位の計算に使用されるnice値
TIMEプロセスの累積実行時間
CPUプロセスによって使用された最近のCPU時間のパーセンテージ
PROCESS/NLWPプロセスの名前/情報が出力されているlwp※のlwpID
※lwpとは一つのプロセスの内部でさらに複数の処理を並行して動作させるときの実行単位で、「スレッド」(thread)とほぼ同じ意味。
フィールド名説明
NPROCプロセスの合計数
USERNAMEプロセスのユーザ名
SIZEプロセス毎のメモリサイズ
RSS常駐部分メモリサイズ
MEMORY全体からのメモリ使用率
TIME
CPUCPU使用率

"pmap -x <PID>" プロセス単位アドレス空間マップから、メモリ使用状況の表示


# ps -ef | grep java
root  9832  9757  0 09:46:02 pts/2    0:00 grep java
root  6664  6663  0   Jun 11 ?       215:28 /opt/bea/jdk131/jre/bin/../bin/sparc/native_threads/java -hotspot -DWLSERVER_MA
weblogic  6629  6628  0   Jun 11 ?        0:45 /opt/bea/jdk131/jre/bin/../bin/sparc/native_threads/java -hotspot -ms64m -mx64m
#
# pmap -x 6664
6664:   /opt/bea/jdk131/jre/bin/../bin/sparc/native_threads/java -hotspot -DWL
Address   Kbytes Resident Shared Private Permissions       Mapped File
00010000      24       8       8       - read/exec         java
00024000       8       8       -       8 read/write/exec   java
00026000   55424   12272    3216    9056 read/write/exec     [ heap ]
E2F7C000      16      16       -      16 read/write          [ anon ]
E307A000      24      16       -      16 read/write          [ anon ]
E3176000      40      32       -      32 read/write          [ anon ]
E3200000    2600     440     440       - read/shared       dev:32,0 ino:1353730
E3500000    2600     440     440       - read/shared       dev:32,0 ino:1353730
E3800000    9888    2560    2560       - read/exec         libclntsh.so.9.0
E41B6000     344     304     136     168 read/write/exec   libclntsh.so.9.0
E420C000      56      24       8      16 read/write/exec   libclntsh.so.9.0
E42FA000      24       8       -       8 read/write          [ anon ]
E4380000     624       -       -       - read/shared       dev:32,0 ino:3940588
E4480000     840      56      56       - read/shared       dev:32,0 ino:1353729
E4580000     200     128     128       - read/exec         libweblogicoci37.so
E45C0000      32      16      16       - read/write/exec   libweblogicoci37.so
E45C8000     256       -       -       - read/write/exec   libweblogicoci37.so
E46FC000      16       8       -       8 read/write          [ anon ]
E47FC000      16       8       -       8 read/write          [ anon ]
E48FC000      16       8       -       8 read/write          [ anon ]
E49FC000      16       8       -       8 read/write          [ anon ]
E4AFC000      16       8       -       8 read/write          [ anon ]
E4BFC000      16       8       -       8 read/write          [ anon ]
E4CFC000      16       8       -       8 read/write          [ anon ]

〜以下省略

FF3B0000     160     160     160       - read/exec         ld.so.1
FF3E6000      16      16       -      16 read/write/exec   ld.so.1
FFB70000      24       -       -       - -                   [ stack ]
FFB76000     488      32      16      16 read/write          [ stack ]
--------  ------  ------  ------  ------
total Kb  414936  113072   41464   71608
フィールド名説明
Address仮想メモリ上のアドレス
Kbytesプロセスにて使用している全サイズ
Resident常駐部分のサイズ
Shared共有部分のサイズ
Private個別部分のサイズ
Permissionsメモリ属性
read/execテキストセグメント(命令部分)
read/write/execデータセグメントまたはスタックセグメント(データ領域)
read/write/exec/shared共用メモリ
Mapped Fileマップしているファイル名

iostat 拡張ディスク統計情報

$ iostat -x 1 1
                 extended device statistics
device    r/s    w/s   kr/s   kw/s wait actv  svc_t  %w  %b
sd0       0.9    0.9   11.4    5.0  0.0  0.0    9.7   0   0
sd1       0.0    2.6    2.1   20.5  0.0  0.0    8.4   0   1
sd2       0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0
nfs1      0.0    0.0    0.0    0.0  0.0  0.0    0.2   0   0
フィールド名説明
deviceディスク名
r/s秒あたりの読み取り回数
w/s秒あたりの書き込み回数
kr/s秒あたりの読み取り KB 数
Kw/s秒あたりの書き込み KB 数
waitサービス待ちの平均トランザクション数 (待ち行列の長さ)
actvサービスを受けている平均トランザクション数
svc_t平均サービス時間 (ミリ秒)
%w待ち行列が空になっていない時間の割合
%bディスクが使用されている時間の割合

デバイス名表示

% iostat -xn
                    extended device statistics
    r/s    w/s   kr/s   kw/s wait actv wsvc_t asvc_t  %w  %b device
    1.2    1.0   14.8    5.4  0.0  0.0    0.0    8.7   0   0 c1t0d0
    0.0    2.6    2.0   20.3  0.0  0.0    0.0    8.4   0   1 c1t1d0
    0.0    0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0 c0t0d0
    0.0    0.0    0.0    0.0  0.0  0.0    0.0    0.2   0   0 OTSS7914:vold(pid482)

ディスク名確認方法

1.ディスク名を確認したいマウントポイントのファイルシステムを確認する。
>df -k
/dev/dsk/c1t0d0s3    30987261 4295572 26381817    15%    /opt
2.ファイルシステムのデバイス上でのポイントを確認する。
>ls -l <ファイルシステム>
lrwxrwxrwx   1 root     root          47  9月  5日  12:45 /dev/dsk/c1t0d0s3 -> ../../devices/pci@0/pci@0/pci@2/scsi@0/sd@0,0:d
3./etc/path_to_instから該当するデバイスを確認する。
>grep pci@0/pci@0/pci@2/scsi@0/sd@0,0 /etc/path_to_inst
"/pci@0/pci@0/pci@2/scsi@0/sd@0,0" 0 "sd"
4.「sd0」が「/opt」のインスタンス名

このページへのコメント

vzJybn Thanks for the blog post.Really thank you! Awesome.

0
Posted by stunning seo guys 2014年01月20日(月) 10:40:26 返信

AA8OYg I appreciate you sharing this blog. Awesome.

0
Posted by seo thing 2013年12月20日(金) 14:05:45 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

Menu

ここは自由に編集できるエリアです。

管理人/副管理人のみ編集できます