ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
マニュアルページセクション 1: ユーザーコマンド Oracle Solaris 11 Information Library (日本語) |
- プロセスへのメモリーに関するアドバイスの適用
pmadvise -o option[,option] [-F] [-l] [-v] pid...
pmadvise は、指定されたプロセスでのメモリーの使用方法に関するアドバイスを madvise(3C) を使用して適用します。
pmadvise では、特定の時点の特定のサブレンジにアドバイスを適用できます。pmadvise が madv.so.1(1) と異なるのは、madv.so.1(1) はターゲットプログラムを実行している間、指定されたタイプのすべてのセグメントにアドバイスを常時適用する点です。
次のオプションがサポートされています。
別のプロセスが制御していても、ターゲットプロセスを捕捉して強制実行します。
-F オプションを使用する場合は注意してください。proc(1) を参照してください。
未解決の動的リンカーマップ名を表示します。
適用するアドバイスは次の形式で指定します。
private=advice shared=advice heap=advice stack=advice address[:length]=advice
ここで、advice には次のいずれかを指定できます。
normal random sequential willneed dontneed free access_lwp access_many access_many_pset access_default
address と length は、デバイスに適用するサブレンジを指定するために設定できます。デフォルトで、address は 16 進数、length はバイト数になります。
length が指定されておらず、開始アドレスがセグメントの先頭を指している場合、アドバイスはそのセグメントに適用されます。length には、K、M、G、T、P、または E を付けて、それぞれキロバイト、メガバイト、ギガバイト、テラバイト、ペタバイト、またはエクサバイトを単位として指定できます。
詳細な情報を出力します。pmap(1) と同様に、どのアドバイスがどこに適用されるかを出力に表示します。これは、指定した領域 (たとえば、非公開、共有など) にアドバイスを適用する場合に、アドバイスが実際に適用された場所についてのフィードバックを取得するときに役に立ちます。
pmadvise は、すべての有効なオプションの処理を試みます。不正なアドレスの範囲が指定された場合は、エラーメッセージが出力され、問題のあるオプションがスキップされます。構文エラーがある場合、pmadvise は、どのオプションも処理せずに終了し、使用法に関するメッセージを出力します。
競合するアドバイスが 1 つの領域に指定された場合、優先順位はもっとも限定されているアドバイスからもっとも限定されていない (つまり、もっとも一般的な) アドバイスの順になります。言い換えると、特定のアドレスの範囲に指定されたアドバイスは、ヒープおよびスタックへのアドバイスより優先され、ヒープおよびスタックへのアドバイスは、非公開メモリーおよび共有メモリーへのアドバイスより優先されます。
また、次の各グループに含まれるアドバイスは、同じグループ内のほかのアドバイス規則とは互いに排他的です。
MADV_NORMAL, MADV_RANDOM, MADV_SEQUENTIAL MADV_WILLNEED, MADV_DONTNEED, MADV_FREE MADV_ACCESS_DEFAULT, MADV_ACCESS_LWP, MADV_ACCESS_MANY
次のオペランドがサポートされています。
プロセス ID。
例 1 指定されたアドレスのセグメントにアドバイスを適用する
次の例では、指定されたアドレスのセグメントにアドバイスを適用します。
% pmap $$ 100666: tcsh 00010000 312K r-x-- /usr/bin/tcsh 0006C000 48K rwx-- /usr/bin/tcsh 00078000 536K rwx-- [ heap ] FF100000 856K r-x-- /lib/libc.so.1 FF1E6000 32K rwx-- /lib/libc.so.1 FF1EE000 8K rwx-- /lib/libc.so.1 FF230000 168K r-x-- /lib/libcurses.so.1 FF26A000 32K rwx-- /lib/libcurses.so.1 FF272000 8K rwx-- /lib/libcurses.so.1 FF280000 576K r-x-- /lib/libnsl.so.1 FF310000 40K rwx-- /lib/libnsl.so.1 FF31A000 24K rwx-- /lib/libnsl.so.1 FF364000 8K rwxs- [ anon ] FF370000 48K r-x-- /lib/libsocket.so.1 FF38C000 8K rwx-- /lib/libsocket.so.1 FF3B0000 176K r-x-- /lib/ld.so.1 FF3EC000 8K rwx-- /lib/ld.so.1 FF3EE000 8K rwx-- /lib/ld.so.1 FFBE6000 104K rw--- [ stack ] % % pmadvise -o 78000=access_lwp $$ %
例 2 -v オプションを使用する
次の例では、pmadvise の詳細な出力を表示します。
% pmadvise -o heap=access_lwp,stack=access_default -v $$ 1720: -sh 00010000 88K r-x-- /usr/sbin/sh 00036000 8K rwx-- /usr/sbin/sh 00038000 16K rwx-- [ heap ] <= access_lwp FF250000 24K r-x-- /lib/libgen.so.1 FF266000 8K rwx-- /lib/libgen.so.1 FF272000 8K rwxs- [ anon ] FF280000 840K r-x-- /lib/libc.so.1 FF362000 32K rwx-- /lib/libc.so.1 FF36A000 16K rwx-- /lib/libc.so.1 FF390000 64K rwx-- [ anon ] FF3B0000 168K r-x-- /lib/ld.so.1 FF3EA000 8K rwx-- /lib/ld.so.1 FF3EC000 8K rwx-- /lib/ld.so.1 FFBFE000 8K rw--- [ stack ] <= access_default
次の終了値が返されます。
正常終了。
エラーが発生しました。
プロセスファイル
proc ツールサポートファイル
属性についての詳細は、attributes(5) を参照してください。
|
コマンドの構文は「確実」です。出力形式は「不確実」です。