$ prstat -t
NPROC USERNAME SWAP RSS MEMORY TIME CPU
164 oracle 5446M 5445M 8.3% 13:47:50 1.6%
52 root 576M 728M 1.1% 42:29:50 1.0%
1 noaccess 300M 273M 0.4% 0:20:54 0.0%
1 smmsp 2192K 9912K 0.0% 0:00:06 0.0%
1 nagios 584K 4256K 0.0% 0:01:54 0.0%
6 daemon 8360K 11M 0.0% 0:12:39 0.0%
Total: 225 processes, 839 lwps, load averages: 1.68, 1.58, 1.46
prstat
上記は、インストールされた Solaris ボックスのコマンドの出力ですOracle 11g
。Solaris ボックスの RAM は、64GB
Oracle プロセスがスワップしているように見えますが5.5 GB
、これは正常ですか? より詳細な情報を取得するための推奨事項があれば、ぜひ教えてください。
答え1
prstat
SWAP を次のように定義します。
SWAP The sum of swap reservations of the associated processes for each user, project, task, or zone. This counts shared memory only once for each user, project, task, or zone. Swap is reserved when anonymous memory is allo- cated or files are mapped private. The value of swap is expressed in kilobytes (K), megabytes (M), or gigabytes (G).
(からSolaris 10 上の prstat(1M)、cf.Solaris prstat を開く)
基本的に、これは値には現在アクセスされていないが、プロセスのアドレス空間にマップされているメモリが含まれていることを意味します。このようなメモリは将来使用される可能性があり、スワップアウトされる可能性があります (つまり、実際にスワップ パーティションに書き込まれる可能性があります)。したがって、初期マッピングを作成すると、Solaris prstat はそれらを SWAP としてカウントします。
これは、この量のメモリが実際に SWAP パーティションに書き込まれる、または必ず書き込まれることを意味するものではありません。
これらのスワップ予約、匿名メモリ、マップされたファイルは、仮想メモリSolaris のシステム。
また、-t
- を使用していることにも注意してください。したがって、例に示されている値は、Oracle プロセスの値ではなく、ユーザーで実行されているすべてのプロセスの集計値ですoracle
。
Solaris ポートを使用するとtop
、SIZE (または VMEM) と RES (または RSS) 値など、より有用な情報が提供されます。VMEM にはすべての仮想メモリ ページが含まれ、RSS は常駐サイズです。これにより、VMEM >= RSS の関係が成立します (prstat の場合、RSS > SWAP である可能性があります。つまり、RSS は SWAP に含まれません)。
実際のスワップアクティビティに関心がある場合は、 のようなものを使用できますvmstat
。