Linux

Linuxのメモリ使用率を確認する方法は?【top/free/psコマンドの使い方解説】

こんにちは、インフラエンジニアのryuです。

今回はLinuxのメモリの使用率を確認する方法を解説します。メモリの使用率を確認するためには、top・free・psなどのコマンドがあります。これらのコマンドの使い方を詳しく解説します。Linuxが固まったとき、原因が調査できるようになりましょう。また、メモリが不足した場合の対処方法も解説します!

サーバー構築を実践で身につけるInfraAcademy

※本ページには、プロモーション・アフィリエイトリンクが含まれています

Linuxのメモリ使用率を確認方法は?

Linuxの動きが遅い・・・

Linuxのメモリ使用率を確認してみましょう!

今回の記事では、メモリの使用率を確認する方法を解説します。

サーバーの動きが急に遅くなることがあると思います。そのような時はLinuxのメモリの使用率を確認してみましょう!

Linuxのメモリの使用率を調査するコマンドはいくつかあります。以下の通りです。

  • top
  • free
  • ps

初心者の方は、これらのコマンドを使用しても、どのように見たらいいのか分からないと思います。

今回は、現役エンジニアの私が、実務で使いこなせるように、上記のコマンドの使い方を詳しく解説します。

この記事を読み終わる頃には、メモリの調査が簡単にできると思います!

では、早速解説していきます!

メモリ使用率を確認するコマンドの使い方

ここからはLinuxコマンドの使い方を詳しく解説します。

まずは”top”コマンドについて解説します。

topコマンドの使い方

topコマンドの使い方は以下の通りです。

top

簡単です。コマンドを入力するだけです。特に引数なども必要ありません。

Linuxで実行すると以下のような表示結果が返ってきます。

topコマンドでCPUやメモリなど全体の状況を把握

topコマンドでのメモリの使用率

メモリの使用率は、以下の部分です。

こちらの部分がサーバー全体のメモリの使用率です。単位はMibつまりMBですね。8Gのメモリで約6.5G使用していることが分かります

MiB Mem :   8067.1 total,   1396.9 free,   6446.2 used,    224.0 buff/cache

また、%MEMの部分では、プロセスごとのメモリの使用率を表しています。

(今回はWSLでLinuxを起動しているため、全体のメモリ使用率はWindowsのプロセスで大半を使用しています)

余談ですが、topコマンドを起動させたまま、”shift + e”を押すと、メモリの単位が変わります。PCのメモリが大きく、桁数が増えた場合、GiB表示にしましょう。

freeコマンドでメモリのみの情報を確認する

次に紹介するのは、”free”コマンドです。

freeコマンドはtopコマンドのメモリ部分だけ表示させたものです。

では、早速linuxで使ってみましょう!

freeコマンドの使い方は以下の通りです。

free

こちらのコマンドもtop同様、引数を付けなくても動作します。簡単ですね。実行すると以下のように表示されます。

freeコマンドでメモリのみの情報を表示する

freeコマンドを使用すると、以下の項目が表示されます。それぞれの項目の説明を記載しておきます。

  • total→メモリの合計
  • used→メモリの使用量
  • free→メモリの空き
  • shared→共有メモリに割り当てられたメモリ
  • buff/cache→バッファキャッシュに割り当てられたメモリ
  • available→スワップせずに使用できる量

freeコマンドのオプション

freeコマンドのオプションは以下の通りです。

-mMB単位で表示する
-s 秒指定した間隔で表示し続ける

-mオプションを付けてfreeコマンドを入力すると、桁数が少なくなり見やすくなります。

free -m

PSコマンドでプロセスごとのメモリ使用率を確認する

最後に紹介するコマンドは”ps”コマンドです。psコマンドはプロセスを調査するときに良く使うコマンドです。

プロセスとは、簡単に言うと実行されているプログラムのことです。

急にメモリの使用率が増えた場合に、どのプログラムがメモリを食っているのかをこのコマンドで調査します。

psコマンドの使い方は以下の通りです。

ps aux

コマンドを実行すると以下のように表示されます。topのプロセスの部分が表示されていますね。

PSコマンドでプロセスごとのメモリ使用率を調査する

このコマンドの見方はtopと同じなので特に解説はしませんが、%MEMの部分を見れば、どのプロセスにどのくらいのメモリが使われているのかが分かります。

psコマンドの詳しい使い方はこちらの記事で詳しく解説しています。

【Linux】プロセスを確認するpsコマンドの使い方解説!オプションなども併せて解説

また、プロセスが大量に表示されている場合は、grepコマンドを使用して、絞りこむのも一つの手です。

ps aux | grep '検索したい文字'

grepコマンドの使い方に関してはこちらの記事で詳しく解説しています。

Linuxのメモリ使用率が高い場合の対処方法

先ほどまでメモリの使用率の確認方法を解説しました。ここからは、メモリの使用率が高い場合の対処方法について解説します!

Linuxのメモリが足りなくなった場合、メモリを増やしましょう!

方法は下記の3つあります。

  • 物理的にメモリを増やす
  • 仮想メモリを増やす
  • AzureやAWSのクラウドに移行する

物理的にメモリを増やす

まず方法の一つ目は物理的にメモリを増やす方法です。こちらは物理サーバーでLinuxを動かしている場合です。

メモリは割りと簡単に増設することができます。

Amazonなどでメモリを購入して、パソコンを分解してセットすれば完了です。「自分のPC名+メモリ増設」と検索すると、方法を調べることができます。

難しい場合は、業者に頼んでも良いでしょう。

仮想的メモリを増やす

方法2つ目は仮想メモリを増やす方法です。

仮想メモリとは、ハードディスクやSSDの容量の一部分をメモリとして扱うことができる技術です。

Linuxでは、メモリが使用できなくなると、Swap領域が使用されます。これが仮想メモリのことです。

Swap領域については、こちらのサイトで詳しい設定が説明されております。

第15章 swap領域 Red Hat Enterprise Linux 7 | Red Hat Customer Portal

AzureやAWSなどのクラウドを使用する

方法3つ目は、AzureやAWSなどのクラウドを使用する方法です

クラウドを使用するとスケールアップやスケールアウトが用意になります。

スケールアップとは、サーバーの性能を向上させることで、スケールアウトはサーバーの台数を増やすことです。

クラウドを使用するとスケーリングが容易になります。ただし、従量課金でコストが発生するため、性能を上げるだけコストも増加します。

Azureのスケールアウトの方法はこちらの記事で詳しく説明しております。

【Azure】WebAppsを自動でスケールアウトする方法解説 こんにちは、インフラエンジニアのryuです。 今回は、WebAppsを自動でスケールアウトする方法を解説します。自動でスケールア...

また、AzureやAWSについての解説記事も当サイトで公開しているので、興味のある方は是非ご覧ください。

メモリの使用率を調査することは重要な業務

ここまでは、メモリの使用率の確認する方法を解説しました。メモリの使用率を調査することはインフラエンジニアにとって重要な業務です。

システムを安定的に稼働させるためには、常にサーバーの状況を監視する必要があります。インフラエンジニアを目指す方は、サーバーを安定的に稼働させる方法や障害が発生した場合の対処方法などをしっかりと抑えておきましょう!

サーバーを運用するために関連する技術はこちらの記事で解説しています。

ログの監視やプロセスの操作など、様々な技術が必要です!

Linuxのメモリ使用率を確認する方法まとめ

最後にまとめです。

Linuxのメモリ使用率を調べる方法は以下の3つのコマンドを使用します。

  • top
  • free
  • ps

topコマンドを使用すれば、全て表示されるので、topコマンドだけは覚えておきましょう。

また、vmstatコマンドやsarコマンドなどでも調査は可能ですが、別途パッケージのインストールが必要なため、今回は省いています。

興味のある方は調べてみてください。

今回紹介したコマンドを使用すれば、現在のメモリの使用率や、どのプロセスにどのくらいのメモリが使われているかなど調査することが可能です。

サーバーの動きが遅いときなど、ぜひこれらのコマンドを使ってみてください!

Linuxの学習を始めたい方はこちらから

「Linuxの実践的な内容を学習したい」、「コマンドを打ちながらLinuxを学習したい」

そのようなご要望にお応えして、Linuxやネットワークが学習できるサイト「InfraAcademy」をリリースしました!

入門から中級まで初心者でもわかりやすく学習を進めることができます。

↓InfraAcademyの講座の一部です。

上記以外にも、DNSサーバーの構築方法や、Dockerの設定方法などさまざまな講座があります。

インフラエンジニアに必要な知識が学習できます。

InfraAcademyで学習をはじめる

ABOUT ME
ryu@InfraAcademyというインフラ学習サービス運営
大手企業→上場ベンチャー→スタートアップでエンジニアをしていました。 インフラエンジニア歴10年以上。 Linuxやネットワークの学習ができるサービスInfraAcademyを運営中。
RELATED POST