まとめ:

まとめ:

質問: 実際のメモリ使用量をどのように報告するか(それなしキャッシュ)を使用してンモンまたはvmstatまたはsvmonAIX 6 では?

いや:
ここに画像の説明を入力してください

vmstat:
ここに画像の説明を入力してください

svmon:
ここに画像の説明を入力してください

Linux と同様に、free コマンドを使用できますが、AIX では使用できません。

[user@notebook ~]$ free -m
         total       used       free     shared    buffers     cached
Mem:          7797       4344       3453          0        219       2745
-/+ buffers/cache:       1379       6417
Swap:         2047          0       2047
[user@notebook ~]$ free -m | grep cache: | awk '{print $3}'
1379
[user@notebook ~]$ 

答え1

短縮版:すべてのファイル キャッシュを知りたい場合は、出力のin use clnt+ perspages (単位は 4k ページ) を確認します。または、実行可能ファイルを除いたファイル キャッシュの場合は、「file pages」 (単位は同じ) を確認します。svmon -Gvmstat -v


何が起こっているのか概要を知りたい場合は、次の記事を参照してください。AIX ページ置換の概要

非常に簡単にまとめると、AIX のメモリは次の 2 つの方法で分類されます。

  • 作業記憶と永続記憶

    • 作業メモリは、プロセス (スタック、ヒープ、共有メモリ) とカーネル メモリです。この種類のメモリをページ アウトする必要がある場合は、スワップに送られます。

    • 永続メモリはファイル キャッシュです。ページ アウトする必要がある場合は、元のファイル システムに戻されます (ダーティ ページの場合、クリーン ページはリサイクルされます)。これは、JFS ファイル システムの非クライアント (または永続) ページと、JFS2、NFS、その他のクライアント ページに分割されます。

  • 計算ページと非計算ページ。

    • 計算ページは、プロセスとカーネルのデータ、およびプロセス テキスト データ (つまり、実行可能ファイル/コードをキャッシュするページ) です。

    • 非計算的なものとしては、実行可能ではないファイル キャッシュ (または共有ライブラリ) などがあります。

svmon -G(ちなみに、svmon -G -O unit=MBこちらの方が少しわかりやすいです) 作業ページと永続ページを比較できます。列は、作業メモリです。永続メモリは、(JFS) 列と(JFS2) 列workを合計すると得られます。persclnt

あなたの場合、ファイルシステムによってバックアップされた約 730 MB の永続ページ (186151 * 4k ページ) があります。

topas右上の「ウィジェット」にはFileSystemCache (numperm)若干異なるものが表示され、 で同じデータを取得できますvmstat -v。これは非計算用の永続ページのみです。つまり、上記と同じですが、実行可能ファイルのページは除外されます。

あなたの場合、それは約 350MB (16G の 2.2%) になります。

いずれにせよ、それは実際には大したキャッシュではありません。

答え2

あなたが探しているコマンドは(私見ですが)次のとおりです。

# svmon -P -O filtertype=working,segment=off,filtercat=exclusive,unit=MB

ここでの主なオプションは次のとおりです。

  • 'filtertype=working' # つまり、キャッシュなし。
  • 'segment=off' # -O 使用時のデフォルト
  • 'filtercat=exclusive' # 共有メモリやカーネルのATMは含めない
  • 'unit=MB' # ページ数から計算したい人はいますか??

また、-C(コマンド名関連、以下にいくつかの例)や-U(ユーザー関連)などの他のオプションも確認する必要があります。

++++ コメント開始 ++++

あなたの質問に対するコメントとして入力したはずの内容を挿入しますが、ここでは新規ユーザーとして評判が足りません。

vmstat の出力は、現在の状況だけでなく、単一行の出力であるため履歴も示しています。pi/po (ページング スペース ページイン/ページング スペース ページアウト) の履歴が示されているため、メモリの問題が発生していると思われます。

他に興味深い列は fr/sr 列です。

  • fr: lrud (最も最近使われていないデーモン、別名ページ スティーラー) によって解放されたページ
  • sr: lrud が「古い」ページを探してスキャン/検索したページ
  • sr/fr: 1を解放するために何ページを「スキャン」する必要があるかを表す比率

私が問題だと考えているのは、ここで示されている pi/po 値です。これは他のコマンドのデータとはまったく一致していません。また、ここでは稼働時間もないため、何のために「テスト」でこれらの数値が生成されたかを知るのは困難です。

  • pi: ページング スペースのページイン (つまり、ページング スペースからアプリケーション メモリを読み取る)
  • po: メモリを盗み、アプリケーション(作業)メモリをページング スペースに書き込みます。ページ スペースとの間でやり取りされるのは作業メモリのみです。

プレゼンテーションでは、pi=22 および po=7 を示しています。これは、平均して、システムがページング スペースから (書き込まれた後に) 情報を読み取っていた回数が、データを書き込んだ回数の 3 倍だったことを意味します。これは、データが読み込まれ (pi)、その後、アクセス (参照、つまり使用) される前に再び盗まれ (sr/fr)、または、それを「待機」しているアプリケーションがアクセスする機会を得る前に再び読み込まれ、削除されるため、システムが不足していることを示しています。

つまり、提示されたデータは「苦痛」の瞬間と「同期」していません。ただし、メモリの 2.2% のみがキャッシュに使用されている理由を説明できるかもしれません (「計算、つまりロードされたプログラム」である可能性もあります)。

の限りvmstatまた、フラグ -I (大文字の i で、'fi' と 'fo' (fileIn と fileOut アクティビティ) を追加) と -w (ワイド) も提案します。これにより、数字がテキスト ヘッダーの下により適切に配置されます。

++++ コメント終了

それでは、-P(プロセスビュー)を使用して抜粋を見てみましょう。

# svmon -P -O filtertype=working,segment=off,filtercat=exclusive,unit=MB | head -15 

    Unit: MB

-------------------------------------------------------------------------------
     Pid Command          Inuse      Pin     Pgsp  Virtual
14614630 httpd             21.5     0.06        0     21.5
11272246 httpd             21.4     0.06        0     21.4
12779758 httpd             21.2     0.06        0     21.2
17760476 httpd             20.9     0.06        0     20.9
11796712 httpd             20.8     0.06        0     20.8
17039454 httpd             20.6     0.06        0     20.6
11862240 httpd             20.6     0.06        0     20.6
14680090 httpd             20.5     0.06        0     20.5
10747970 httpd             20.5     0.06        0     20.5
11141286 httpd             20.5     0.06        0     20.5
 4718766 mysqld            13.6     0.02        0     13.6

root でない場合は、自分の環境内のコマンドのみが表示されます。

$ svmon -P -O filtertype=working,segment=off,filtercat=exclusive,unit=MB
Unit: MB

-------------------------------------------------------------------------------
     Pid Command          Inuse      Pin     Pgsp  Virtual
 5505172 svmon             10.7     0.19     0.44     11.4
 6553826 ksh               0.57     0.02        0     0.57
 9175288 ksh               0.55     0.02        0     0.55
12910710 sshd              0.55     0.02        0     0.55
15204356 sshd              0.52     0.02        0     0.52
12779760 head              0.18     0.02        0     0.18

特定のコマンドを確認したい場合、ルートに戻ってhttpdを確認します。

まとめ:

svmon -C httpd -O filtertype=working,segment=off,filtercat=exclusive,unit=MB 
Unit: MB
===============================================================================
Command                              Inuse      Pin     Pgsp  Virtual
httpd                               227.44     0.69        0   227.44

詳細: 抜粋

    # svmon -C httpd -O filtertype=working,segment=category,filtercat=exclusive,unit=MB >
Unit: MB
===============================================================================
Command                              Inuse      Pin     Pgsp  Virtual
httpd                               230.62     0.81        0   230.62

...............................................................................
EXCLUSIVE segments                   Inuse      Pin     Pgsp  Virtual
                                    230.62     0.81        0   230.62

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
  81a203         3 work working storage              m   24.6     0    0    24.6
                   parent=883990
  8b82d7         3 work working storage              m   18.8     0    0    18.8
                   parent=834226
  8b9d37         3 work working storage              m   18.2     0    0    18.2
                   parent=884fb0
  8915f2         f work shared library data          m   2.00     0    0    2.00
                   parent=898373
  89abb3         f work shared library data          m   2.00     0    0    2.00
                   parent=84b9a9
  824ea4         f work shared library data          m   2.00     0    0    2.00

これでは「セグメント=カテゴリ」がうまく表示されないので、より簡単なコマンド(tail)を使用して、各メモリ「セグメント」タイプの概要と詳細を表示しますが、依然として「作業」メモリのみです(つまり、キャッシュはありません)。

# svmon -C tail -O filtertype=working,segment=category,unit=MB                    
Unit: MB
===============================================================================
Command                              Inuse      Pin     Pgsp  Virtual
tail                                  82.5     52.6     5.12     90.6

...............................................................................
SYSTEM segments                      Inuse      Pin     Pgsp  Virtual
                                      34.1     33.1     2.38     35.8

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
   10002         0 work kernel segment               m   34.1  33.1 2.38    35.8

...............................................................................
EXCLUSIVE segments                   Inuse      Pin     Pgsp  Virtual
                                      0.18     0.02        0     0.18

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
  88b4f1         f work working storage             sm   0.09     0    0    0.09
  82d005         2 work process private             sm   0.07  0.02    0    0.07
  8e0c9c         3 work working storage             sm   0.02     0    0    0.02

...............................................................................
SHARED segments                      Inuse      Pin     Pgsp  Virtual
                                      48.2     19.5     2.75     54.6

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
    9000         d work shared library text          m   48.2  19.5 2.75    54.6

答え3

nmon と入力して「m」を押すと、メモリの大きな使用方法がいくつか表示されます。

ipcs -am

DB2 や Oracle などの多くのアプリケーションによって使用される共有メモリ - コマンドから SEGSZ のサイズを確認しますipcs -am。通常、Owner 列には、SGA の oracle ユーザーや DB2 バッファ キャッシュの db2inst1 など、メモリが何に使用されているかが示されます。

次にプロセスについてですが、これは複雑になります。同じプログラム ファイルを実行するすべてのプロセスは、読み取り専用としてコード ページを共有します。また、RDBMS や Apache などのように、プロセスが共通のプロセスによって開始され、その後分岐した場合は、データ ページと sack ページの一部またはほぼすべてを共有することもあります。これは、プロセスが必要とし、私たちにはほとんど見えない多数のライブラリにも当てはまります。

この未知の共有により、すべてのプロセスのメモリをすべて合計すると、明らかにメモリよりもはるかに大きくなることがよくあります。

最上位プロセスに「t」を使用しnmon、プロセス サイズの順序に「4」を使用すると、プロセス メモリが表示されます。

  • サイズ KB = ディスク上のプログラム ファイルにあるサイズ。
  • 常駐セット サイズ = メモリ内でのサイズ (ファイル システム内に残っているページ (コードなど) とページング ディスク上の一部は除く)"。
  • ResText列はResident Setのコードページです
  • ResData列は、Resident Setのデータとスタックページです。

答え4

このtopasコマンドは、実際のメモリとコンピュータのメモリの割合を表示します。これは AIX ではデフォルトで使用可能であり、topLinux の場合と似ていますが、より多くの情報を提供します。

起動すると、topasデフォルトで多くの情報 (CPU を使用している上位のプロセス、メモリ使用量の概要など) が表示され、押すと、h他のキーとその機能を含むインライン ヘルプ テキストが表示されます (たとえば、c数回押すと、CPU 使用量を表示するさまざまな方法が切り替わります)。

関連情報