Linux のメモリー不足判断基準について

投稿者: Anonymous

Linux で、メモリーが明らかに不足していると判断する基準や方法はありますか?
・当初は、どこかの数値がマイナスになるのかと思っていたのですが、私が調べた限りではそんな単純な話ではないことが分かりました
・あるサイトで「メモリのfreeが10%を切ったら」と書いてあったのですが、そういう判断基準がもしあれば教えてください


下記例の場合、「63/992*100=6.35」なので10%を切っている、という認識で合っていますか?

$ free -wh
     total        used        free      shared     buffers       cache   available
Mem:      992M        790M         63M        7.5M          0B        138M         46M
Swap:     4.0G        3.6G        446M

また下記で何か気が付いた点があれば、アドバイスをお願いします

$ top
top - 20:52:00 up 77 days,  4:05,  1 user,  load average: 1.20, 1.24, 1.32
Tasks: 314 total,   2 running, 312 sleeping,   0 stopped,   0 zombie
%Cpu(s): 50.1 us,  0.2 sy,  0.0 ni, 49.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1016772 total,    68156 free,   817020 used,   131596 buff/cache
KiB Swap:  4194300 total,   426228 free,  3768072 used.    45568 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                       
 1461 mysql     20   0 2278332 144568   4316 S  99.7 14.2  61489:41 mysqld                                        
  608 nginx     20   0  219260   1124   1076 S   0.3  0.1   3:17.01 uwsgi                                         
19183 root      20   0       0      0      0 S   0.3  0.0   0:00.17 kworker/1:2                                   
    1 root      20   0   43360   1984   1312 S   0.0  0.2  13:56.35 systemd      

環境
・CentOS7

解決

「10%」も大まかな目安でしかなく、搭載しているメモリ量によって余裕の度合いは異なってきますよね?
(1GBに対する残り100MBならカツカツだし、16GBに対する残り1.6GBならまだ踏ん張れそう)

実メモリが1GBしか無くてスワップの4GBもほぼ使い尽くしてる状況を見ると、明らかにメモリが足りていないと考えられます。VPSか何かでしょうか?

スワップ領域は大抵物理ディスクですから、メモリに比べて圧倒的にアクセス速度が遅いです。頻繁にスワップが発生しているならメモリの追加も検討すべきでしょう。


topコマンドの起動直後は「CPU使用率順」ですが、私がよく利用するのはShift+M (大文字M)で「メモリ使用率順」に並べ替えます。

質問文の結果を見るとmysqldがリソースを食っていそうなので(起動時間も非常に長い)、可能であればサービスを再起動してみて、それでも改善しなければ詳しく調べを進めてみる…という段取りになりそうです。

追記
スワップのサイズも「増やせば増やすほどいい」ものではなく、実メモリに合わせた推奨値があります。システムのRAM(実メモリ)が2GB以下なら、「スワップはRAMの2倍」程度が推奨値とされています。

参考:
システムの推奨 swap 領域 – Red Hat Customer Portal

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *