#背景
仕事柄、たまにVPSのメモリ使用量をtopコマンドなどで確認することがあります。
(下はUbuntu 18.04 LTSのもの)
top - 13:40:39 up 1:44, 0 users, load average: 0.52, 0.58, 0.59
Tasks: 5 total, 1 running, 3 sleeping, 1 stopped, 0 zombie
%Cpu(s): 3.6 us, 5.6 sy, 0.0 ni, 88.6 id, 0.0 wa, 2.2 hi, 0.0 si, 0.0 st
KiB Mem : 8290600 total, 2456796 free, 5604452 used, 229352 buff/cache
KiB Swap: 25165824 total, 25094400 free, 71424 used. 2552416 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 8304 136 108 S 0.0 0.0 0:00.10 init
4 kitakou 20 0 17620 2020 1492 T 0.0 0.0 0:04.10 top
5 root 20 0 8308 100 60 S 0.0 0.0 0:00.00 init
6 kitakou 20 0 16788 3396 3312 S 0.0 0.0 0:00.09 bash
10 kitakou 20 0 17620 2032 1500 R 0.0 0.0 0:00.03 top
主に4,5行目の実メモリとswao領域について確認するのですが、swapに関する行の最右の値、これは環境によってcachedやavail Memと表示されています。
ここで
「swap領域のcacheって何…? なんでavail Memと指し変わったりするの…?」
という疑問が湧いてきました。
cache領域は他のアプリケーションの要求に応じて開放されるため、swap領域にもある程度のcache領域があるならば主記憶の不足を補えるので好ましい状態ではありませんが一応動作はします。(そもそもswap領域に移ってる時点で処理速度が落ちているので)
ですが今度は**「なぜ高速化のためのcache領域がわざわざ遅いswap領域に…?」**という疑問が現れます、
複数の記事を見てみても「cacheされたswap領域」などと記載されておりんにゃぴ…となってしまったのですが、ようやく解消したのでいろいろ調べてみた結果をまとめたいと思います。
#結果
そもそもswap領域上の値じゃありませんでした
topコマンドのメモリ上の値は下図のように分かれており、
青の部分が物理メモリ上の数値、黄色が仮想メモリ(つまりswap領域の話)に関わる値になるそうです。
man top
コマンドで確認してみると、
2c. MEMORY Usage
This portion consists of two lines which may express values in kibibytes (KiB) through exbibytes (EiB) depend‐
ing on the scaling factor enforced with the 'E' interactive command.
As a default, Line 1 reflects physical memory, classified as:
total, free, used and buff/cache
Line 2 reflects mostly virtual memory, classified as:
total, free, used and avail (which is physical memory)
The avail number on line 2 is an estimation of physical memory available for starting new applications, with‐
out swapping. Unlike the free field, it attempts to account for readily reclaimable page cache and memory
slabs. It is available on kernels 3.14, emulated on kernels 2.6.27+, otherwise the same as free.
となっており、確かに(which is physical memory)と補足されています。
でもそれはそれとしてわかりにくいよ!!!!!!!!!!swap行に書いてあったらswao領域の話だと思うでしょ!!!!!
#お世話になったサイト
https://piro.sakura.ne.jp/latest/blosxom/topics/2018-11-13_top-cached.htm
上記サイト末尾のドはまりケースにめちゃくちゃ合致してました…複数の記事を確認することと英語にビビらないこと、肝に銘じていきたいです…