こんにちは、インフラエンジニアのryuです。
今回はLinuxのメモリの使用率を確認する方法を解説します。メモリの使用率を確認するためには、top・free・psなどのコマンドがあります。これらのコマンドの使い方を詳しく解説します。Linuxが固まったとき、原因が調査できるようになりましょう。また、メモリが不足した場合の対処方法も解説します!
目次
Linuxのメモリ使用率を確認方法は?
Linuxの動きが遅い・・・
Linuxのメモリ使用率を確認してみましょう!
今回の記事では、メモリの使用率を確認する方法を解説します。
サーバーの動きが急に遅くなることがあると思います。そのような時はLinuxのメモリの使用率を確認してみましょう!
Linuxのメモリの使用率を調査するコマンドはいくつかあります。以下の通りです。
- top
- free
- ps
初心者の方は、これらのコマンドを使用しても、どのように見たらいいのか分からないと思います。
今回は、現役エンジニアの私が、実務で使いこなせるように、上記のコマンドの使い方を詳しく解説します。
この記事を読み終わる頃には、メモリの調査が簡単にできると思います!
では、早速解説していきます!
メモリ使用率を確認するコマンドの使い方
ここからはLinuxコマンドの使い方を詳しく解説します。
まずは”top”コマンドについて解説します。
topコマンドの使い方
topコマンドの使い方は以下の通りです。
top
簡単です。コマンドを入力するだけです。特に引数なども必要ありません。
Linuxで実行すると以下のような表示結果が返ってきます。
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コマンドを使用すると、以下の項目が表示されます。それぞれの項目の説明を記載しておきます。
- total→メモリの合計
- used→メモリの使用量
- free→メモリの空き
- shared→共有メモリに割り当てられたメモリ
- buff/cache→バッファキャッシュに割り当てられたメモリ
- available→スワップせずに使用できる量
freeコマンドのオプション
freeコマンドのオプションは以下の通りです。
-m | MB単位で表示する |
-s 秒 | 指定した間隔で表示し続ける |
-mオプションを付けてfreeコマンドを入力すると、桁数が少なくなり見やすくなります。
free -m
PSコマンドでプロセスごとのメモリ使用率を確認する
最後に紹介するコマンドは”ps”コマンドです。psコマンドはプロセスを調査するときに良く使うコマンドです。
プロセスとは、簡単に言うと実行されているプログラムのことです。
急にメモリの使用率が増えた場合に、どのプログラムがメモリを食っているのかをこのコマンドで調査します。
psコマンドの使い方は以下の通りです。
ps aux
コマンドを実行すると以下のように表示されます。topのプロセスの部分が表示されていますね。
このコマンドの見方は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やAWSについての解説記事も当サイトで公開しているので、興味のある方は是非ご覧ください。
メモリの使用率を調査することは重要な業務
ここまでは、メモリの使用率の確認する方法を解説しました。メモリの使用率を調査することはインフラエンジニアにとって重要な業務です。
システムを安定的に稼働させるためには、常にサーバーの状況を監視する必要があります。インフラエンジニアを目指す方は、サーバーを安定的に稼働させる方法や障害が発生した場合の対処方法などをしっかりと抑えておきましょう!
サーバーを運用するために関連する技術はこちらの記事で解説しています。
- syslogの設定方法とは?Linuxでログの出力設定を変更する方法解説
- killコマンドの使い方解説!killコマンドを使ってプロセスを終了させる
- crontabの設定方法を解説!定期的にジョブを実行させる方法とは?
ログの監視やプロセスの操作など、様々な技術が必要です!
Linuxのメモリ使用率を確認する方法まとめ
最後にまとめです。
Linuxのメモリ使用率を調べる方法は以下の3つのコマンドを使用します。
- top
- free
- ps
topコマンドを使用すれば、全て表示されるので、topコマンドだけは覚えておきましょう。
また、vmstatコマンドやsarコマンドなどでも調査は可能ですが、別途パッケージのインストールが必要なため、今回は省いています。
興味のある方は調べてみてください。
今回紹介したコマンドを使用すれば、現在のメモリの使用率や、どのプロセスにどのくらいのメモリが使われているかなど調査することが可能です。
サーバーの動きが遅いときなど、ぜひこれらのコマンドを使ってみてください!
Linuxの学習を始めたい方はこちらから
「Linuxの実践的な内容を学習したい」、「コマンドを打ちながらLinuxを学習したい」
そのようなご要望にお応えして、Linuxやネットワークが学習できるサイト「InfraAcademy」をリリースしました!
入門から中級まで初心者でもわかりやすく学習を進めることができます。
- 【Linux入門講座1】ディレクトリと相対パス、絶対パス
- 【Linux入門講座2】ファイルの操作方法
- 【Linux入門講座3】ファイルのアクセス権限
- 【Linux入門講座4】ファイルの編集~vimの使い方をマスターする~
- 【Linux入門講座5】ユーザーとグループ
- 【Linux入門講座6】ネットワーク
↓InfraAcademyの講座の一部です。
上記以外にも、DNSサーバーの構築方法や、Dockerの設定方法などさまざまな講座があります。
インフラエンジニアに必要な知識が学習できます。