10
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

信州大学 kstmAdvent Calendar 2019

Day 22

topコマンドのswap行の見方を間違えてた話

Last updated at Posted at 2019-12-23

#背景
仕事柄、たまに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コマンドのメモリ上の値は下図のように分かれており、
image.png
青の部分が物理メモリ上の数値、黄色が仮想メモリ(つまり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
上記サイト末尾のドはまりケースにめちゃくちゃ合致してました…複数の記事を確認することと英語にビビらないこと、肝に銘じていきたいです…

10
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?