swap -lの出力と上部に示されているスワップメモリ​​の違いは何ですか?

swap -lの出力と上部に示されているスワップメモリ​​の違いは何ですか?

swap -lswap -s出力を理解する方法とコマンドが反映するメモリ使用量が何であるかは本当に混乱していますtop

それでは、スワップがどれくらいであるか、実際のメモリがどれくらい使用されているか、使用可能なメモリがどれくらいになるかを最終的に判断することはできず、システム管理者にメモリの追加を要求する必要がありますか?

私のシステムの出力は次のとおりです。

$ swap -l
swapfile             dev  swaplo blocks   free
/dev/zvol/dsk/rpool/swap 181,1       8 33554424 **33554424**

$ swap -s
total: 23539804k bytes allocated + 1608016k reserved = **25147820k** used, **10397840k** available


$ prtconf |grep -i Memory
Memory size: 49144 Megabytes
$ top -d 2 -n 2
load averages:  1.36,  1.39,  1.40    19:07:42
120 processes: 118 sleeping, 1 stopped, 1 on cpu

Memory: 48G real, **1411M** free, 24G swap in use, **10G** swap free

以下はunameとmemstatの詳細です。

これは私たちがまったく勉強してはいけないことを意味しますか?そして、memstatに基づいてメモリ使用量を報告しますか?

なぜswap -lとswap -sの統計は似ていませんか?

bash-3.2$ uname -a
SunOS l28sdp1a 5.10 Generic_150401-03 i86pc i386 i86pc

 =================Memstat======================
Page Summary                Pages                MB  %Tot
------------     ----------------  ----------------  ----
Kernel                    1602713              6260   13%
ZFS File Data             4345496             16974   35%
Anon                      4974599             19432   40%
Exec and libs               32588               127    0%
Page cache                 948627              3705    8%
Free (cachelist)              972                 3    0%
Free (freelist)            673589              2631    5%

Total                    12578584             49135
Physical                 12250367             47852

理解するのを手伝ってください。

答え1

ラベルがSolarisなので、あなたがSolarisを実行しているとします。元のSolaris管理者として、私はトップインストールがあまり好きではありません。これは、スワップ使用量とメモリ使用量を報告するときに誤解を招く可能性があるためです。 Solarisは、スワップとメモリを混在させる仮想メモリの概念を使用します。スワップデバイスがある場合でも、利用可能なメモリが十分な場合は、メモリに割り当てることができます。システムがどのくらいのスワップスペースを使用しているかを正確に知りたい場合は、時間がかかる作業です。これは、各プロセスでpmap -xを使用してスワップ部分を確認することによって実行できます。

システムで単一のアプリケーションを実行している場合、システム管理者はecho "::memstat" | mdb -lを実行できる必要があります。これは現在のメモリ状態を提供し、メモリを確認するために監視を実行する必要があります。

アプリケーションがサーバー上の唯一のアプリケーションではなく、特定のユーザーIDで実行されている場合は、ps -uを実行してそのアプリケーションを使用できます。

お役に立てば幸いです。

関連情報