Linux Day7:メモリ管理

f:id:dombri:20191117194128j:plain

こんにちは。

年の瀬を感じる今日この頃です。

この時期になると、今年一年の振り返り・来年の目標や計画を立てようかな~どうしようかな~とわくわくし、結局まとまり切らずにスタートを切るのが恒例でした。

2020年はステップアップしたい年なので、逃げまいと向き合ってみています。がムズカシイ。一年後どころか半年後さえも想像つかない。 どうなることやら・・・

気を取り直して、本日の内容は以下です。「Linuxのしくみ」お世話になっています。

  • メモリ管理
    • 全メモリをメモリ管理システム によって管理
      • 使用量が増え空きメモリが少なくなるとカーネル内の解放可能メモリ領域を解放する
    • メモリ不足になるとOut Of Memory(OOM)になる
      • OOM Killerという適当なプロセスをKillする機能がある
        ※どのプロセスが対象になるか不明なのは困る・・・
         →sysctlvm.panic_on_oomパラメータを変更する方法
    • メモリの使用状況の確認
      • free コマンド
      • sar -rコマンド


メモリ管理

f:id:dombri:20191230182204j:plain

こちらの本、図解で紹介されている内容が多く感覚をつかみやすいです。
例えば、free コマンドで表示した内容とメモリ全体図の比較。freeとavailableの違いってなんだ?という疑問を解いてくれ非常に勉強になりました。


まとめ

メモリ管理システムのおかげで、人間がメモリを管理するコストをできるだけ抑えてくれている。ただ任せきりにしていると、OOM killer が働いてプロセスが中途半端な状態になってしまたり、私たちではどうしようもできなくなってしまう可能性がある。
適切にメモリを使う工夫や、もしもの時の対処法(sysctlのパラメータ変更など)は押さえておきたいと思いました。

2019年の投稿はこれで一区切り、ですかね。

今年は沢山の出会いがあり、エンジニア人生の中で最も充実した時を過ごせました。
無知の知」「苦くて甘い」一年でした。
来年は、親切にしていただいた分を少しずつ返していけるようにもなりたいな。

みなさま、どうぞよいお年をお迎えください!