swap -l
swap -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を実行してそのアプリケーションを使用できます。
お役に立てば幸いです。