RAMは非常に高速で、コンピューターのCPU(中央処理装置)に近いです。 RAMはコンピューターのCPUに近いため、CPUはRAMに直接アクセスできます。したがって、データアクセスの待ち時間は、HDDやSSDなどのストレージデバイスと比較して非常に小さくなります。そのため、すべてのプログラムがキャッシュデータの保存にRAMを使用します。
残念ながら、RAMは非常に高価で制限があります。十分な空きRAMがないと、コンピュータは正しく機能しません。コンピュータの実行中のプログラムがハングまたは停止する場合があります。新しいプログラムを開始できない場合があります。最悪の場合、システム全体がハングして使用できなくなります。
RAM使用量のチェックは、Linuxで最も重要なタスクの1つです。 LinuxシステムのRAM使用量を監視できれば、多くのLinuxの問題を診断できます。
Linuxのメモリ使用量をチェックするためのツールはたくさんあります。この記事では、Linuxでメモリ使用量をチェックする最も一般的な方法のいくつかを紹介します。それでは、始めましょう。
コンピュータメモリの単位:
この記事では、キロバイト、メガバイト、ギガバイト、キビバイト、メビバイト、ギビバイトなどの用語を使用して私を見ることができます。混乱しないでください。このセクションで説明します。
すべてのコンピュータストレージは同じユニットを使用します。これを理解することは非常に重要です。
コンピュータストレージユニットを以下に示します。
- 少し: コンピュータストレージの最小単位はビットです。ビットは0または1のいずれかを保持できます。それだけです。
- バイト: 8ビットが1バイトを形成します。
- キロバイト: 1,000バイトはキロバイトを形成します。
- メガバイト: 1,000キロバイトはメガバイトを形成します。
- ギガバイト: 1,000メガバイトはギガバイトを形成します。
- テラバイト: 1,000ギガバイトはテラバイトを形成します。
- ペタバイト: 1,000テラバイトはペタバイトを形成します。
- キビバイト: 1,024バイトがキビバイトを形成します。
- メビバイト: 1,024キビバイトがメビバイトを形成します。
- ギビバイト: 1,024メビバイトがギビバイトを形成します。
- テビバイト: 1,024ギビバイトがテビバイトを形成します。
- ペビバイト: 1,024テビバイトがペビバイトを形成します。
バイト単位では、コンピュータのストレージユニットは次のとおりです。
- キロバイト: 1,000バイトまたは103バイト。
- メガバイト: 1,000,000バイトまたは106バイト。
- ギガバイト: 1,000,000,000バイトまたは109バイト。
- テラバイト: 1,000,000,000,000バイトまたは1012バイト。
- ペタバイト: 1,000,000,000,000,000バイトまたは1015バイト。
- キビバイト: 1024バイトまたは210バイト。
- メビバイト: 1,048,576バイトまたは220バイト。
- ギビバイト: 1,073,741,824バイトまたは230バイト。
- テビバイト: 1,099,511,627,776バイトまたは240バイト。
- ペビバイト: 1,125,899,906,842,624または250バイト。
コンピュータのストレージユニットがわかったので、あるユニットから別のユニットに非常に簡単に変換できるはずです。
キロバイト、メガバイト、ギガバイト、テラバイト、およびペタバイトは10の累乗であることに注意してください。ただし、キビバイト、メビバイト、ギビバイト、テビバイト、およびペビバイトは2バイトの累乗です。私たち人間にとっては、10本の指があるので、10の累乗(10進法)で簡単に計算できます。ただし、コンピューターの場合は、2の累乗(2進数システム)で計算する方が簡単です。したがって、コンピュータは2の累乗を使用して、ストレージまたはメモリの量を表します。
ユニットには、省略表記または記号があります。 Linuxでメモリ使用量をチェックしている間、それらは非常に頻繁に表示されます。
省略表記または記号を以下に示します。
- バイト: NS
- キロバイト: KBまたはkB
- メガバイト: MB
- ギガバイト: GB
- テラバイト: また
- ペタバイト: PB
- バイト: NS
- キビバイト: KiBまたはK
- メビバイト: MiBまたはM
- ギビバイト: GiBまたはG
- テビバイト: TiBまたはT
- ペビバイト: PiBまたはP
一部のプログラムは、この標準に準拠しておらず、これらの省略形または記号を同じ意味で使用している場合があります。いずれにせよ、これらの単位(つまり、キロバイトとキビバイト)の違いはそれほど大きくありません。心配しないでください。
Linuxでのメモリとスワップ:
Linuxでは、物理メモリは メモリー 。物理メモリがいっぱいになると、Linuxは、アクセス頻度の低いデータをメモリからディスクの特定の部分(HDDまたはSSD)にインテリジェントに移動します。ディスクのこの部分はスワップと呼ばれます。
使用可能な空き物理メモリがない場合、アクセス頻度の低いデータがスワップに移動されます。これにより、物理メモリが解放され、システムがクラッシュするのを防ぐことができます。
スワップディスクは、RAMや物理メモリに比べて非常に低速です。 Linuxシステムがスワップスペースを広範囲に使用する場合、システムが非常に遅くなり、応答しなくなる可能性があります。したがって、Linuxシステムはスワップスペースを使用すべきではありません。なるべく避けたい。 Linuxシステムがスワップスペースをいっぱいにし始めたとき、それはLinuxシステムがより多くの物理メモリを必要としていることを示しています。システムにRAMまたは物理メモリを追加することをお勧めします。
無料でメモリ使用量を確認する:
自由 システムの合計メモリ使用量情報を表示するコマンドです。 自由 デフォルトでは、ほぼすべてのLinuxディストリビューションに同梱されています。
でメモリ使用量を確認できます 自由 次のようにコマンドを実行します。
$自由
NS 自由 コマンドラインオプションを指定せずにコマンドを実行すると、メモリとスワップの使用状況情報がキビバイト単位で表示されます。
デフォルトでは、 自由 コマンドは、バッファとキャッシュメモリの使用量を表示します バフ/キャッシュ 桁。バッファとキャッシュメモリを別々に表示したい場合は、freeコマンドを実行します。 -の 次のようなオプション:
$自由 -の
ご覧のとおり、 バッファ と キャッシュ メモリ使用量情報は、さまざまな列に表示されます。
freeコマンドは、次の情報を表示します。
合計: これは、Linuxシステムで使用可能な物理メモリとスワップスペースの合計(キビバイト単位)です。
中古: これは、Linuxシステムで使用される物理メモリとスワップスペースの量です。私のUbuntuマシンでは0KiBのスワップスペースが使用されていることに注意してください。したがって、スワップはまったく使用していません。とても良いです
自由: これは、まだ使用されていない物理メモリの量です。
共有: これは、さまざまなプロセスまたはプログラムによって共有されるメモリの量です。 1つ以上のLinuxプログラムが同じライブラリまたは関数呼び出しを使用する場合があります。 Linuxは、同じものにメモリを複数回割り当てる代わりに、これらのプロセスまたはプログラム間で共通のものをインテリジェントに共有します。これにより、物理メモリが節約されます。 NS tmpfs ファイルシステム(つまり / dev / shm 、 /走る 、 / run / lock 、 / run / user / 、 / sys / fs / cgroup など)また、Linuxのすべてのプロセスとプログラムに共有される物理メモリを使用します。
バッファ: これは、カーネルバッファによって使用されるメモリの量です。バッファは、データをある場所から別の場所に移動する間、データが一時的に保持されるメモリのブロックです。
キャッシュ: これは、キャッシュデータに使用される物理メモリの量です。
バフ/キャッシュ: これは、バッファとキャッシュに使用される物理メモリの合計量です。
利用可能: これは、スワップせずに新しいアプリケーションを起動するために使用できる推定使用可能物理メモリです。
さまざまなコマンドラインオプションを使用して、メモリとスワップの使用状況情報をさまざまな単位で表示することもできます。
たとえば、メモリとスワップの使用状況情報をバイト単位で表示するには、 自由 とのコマンド -NS また –バイト 次のようなオプション:
$自由 -NS
メモリとスワップの使用状況情報をキビバイト(デフォルト)で表示するには、を実行します。 自由 とのコマンド -に また –kibi 次のようなオプション:
$自由 -に
メモリとスワップの使用状況をメビバイト単位で表示するには、 自由 とのコマンド -NS また –メビ 次のようなオプション:
$自由 -NS
ギビバイト単位のメモリとスワップの使用状況情報を表示するには、 自由 とのコマンド -NS また -なので 次のようなオプション:
$自由 -NS
同様に、あなたは使用することができます -あなたへ と –ペビ メモリとスワップの使用状況情報をそれぞれテビバイトとペビバイトで表示するコマンドラインオプション。
メモリとスワップの使用状況情報をキロバイト単位で表示する場合は、 自由 とのコマンド -キロ 次のようなオプション:
$自由 - キロ
メモリとスワップの使用状況情報をメガバイト単位で表示する場合は、 自由 とのコマンド -メガ 次のようなオプション:
$自由 -メガ
メモリとスワップの使用状況情報をギガバイト単位で表示する場合は、 自由 とのコマンド –ギガ 次のようなオプション:
$自由 -ギガ
同様に、あなたは使用することができます –tera と -地図 メモリとスワップの使用状況情報をそれぞれテラバイトとペタバイトで表示するコマンドラインオプション。
NS 自由 コマンドには、人間が読める形式の出力オプションもあります。このオプションは、非常に理解しやすい(人間にとって)メモリを出力し、使用状況情報を画面にスワップします。
人間が読める形式の出力の場合は、 自由 とのコマンド -NS また -人間 次のようなオプション:
$自由 -NS
ご覧のとおり、人間が読める形式は非常に理解しやすいものです。
NS -NS また -人間 オプションは、メモリとスワップの使用状況情報を、デフォルトでバイト、キビバイト、メビバイト、ギビバイト、テビバイト、またはペビバイトのいずれかで出力します。これらのユニットは、基数2または2進数システム(2の累乗)を使用します。
人間が読める形式の出力を基数10または10進法(10の累乗)で表示する場合は、次のコマンドを使用してfreeコマンドを実行します。 -NS また -人間 コマンドラインオプションと同様に -はい 次のようなコマンドラインオプション:
$自由 - 人間 - はい
NS 自由 コマンドは、メモリを出力し、バイト、キロバイト、メガバイト、ギガバイト、テラバイト、またはペタバイトのいずれかで使用状況情報を交換します。これらの単位は、基数10または10進法(10の累乗)を使用します。
合計メモリとスワップ使用量の情報を表示する場合は、次のように-tまたは–totalオプションを指定してfreeコマンドを実行します。
$自由 -NS
ご覧のとおり、合計メモリ(物理+スワップ)の使用状況情報が出力の最後に表示されます。
を実行することもできます 自由 監視モードのコマンド。このモードでは、 自由 コマンドは、指定された時間間隔(秒単位)の後、メモリとスワップの使用状況情報を継続的に出力します。
あなたは実行することができます 自由 監視モードでのコマンド -NS また –秒 次のようなコマンドラインオプション:
$自由 -NS <遅れ>>または、
$自由–秒<遅れ>>ここ、 新しいメモリとスワップの使用状況情報が画面に出力されるまでの秒数です。
たとえば、メモリを出力し、使用状況情報を5秒間隔で継続的にスワップするには、次のようにfreeコマンドを実行します。
$自由 -NS 5
ご覧のとおり、メモリとスワップの使用状況情報は5秒ごとに出力されます。
停止したい場合 自由 コマンド、を押します + NS 。
監視モードでは、 自由 コマンドは、デフォルトでメモリを継続的に出力し、使用状況情報を交換します。あなたは使用することができます -NS また -カウント 新しいメモリとスワップの使用状況情報が画面に出力される回数を制限するコマンドラインオプション。
たとえば、メモリを印刷し、使用状況情報を10秒間隔で5回スワップするには、 自由 次のようにコマンドを実行します。
$自由 -NS 10 -NS 5
ご覧のとおり、 自由 コマンドは、メモリとスワップの使用状況情報を10秒間隔で5回だけ出力しました。
メモリをチェックし、使用状況をスワップするために知っておく必要があるのは、これだけです。 自由 指図。ただし、詳細を知りたい場合は、のマンページを確認してください。 自由 次のようにコマンドを実行します。
$男 自由
のマンページ 自由 コマンドが表示されます。
/ proc / meminfoファイルを読み取ってメモリ使用量を確認する:
Linuxシステムのメモリ使用量情報を読むことで確認することもできます。 / proc / meminfo ファイル。
あなたは読むことができます / proc / meminfo 次のコマンドでファイルします。
$猫 /パーセント/meminfo
このファイルには、多くのメモリ使用量情報が含まれています。メモリ使用量はキビバイト単位です。
で最も重要なメモリ使用量情報 / proc / meminfo ファイルは次のとおりです。
MemTotal: これは、Linuxシステムにインストールされているメモリまたは物理メモリ(RAM)の合計です。
MemFree: これは、未使用の物理メモリ(RAM)の量です。
MemAvailable: これは、新しいプログラムで使用できる物理メモリ(RAM)の推定量です。
バッファー: これは、カーネルバッファ用に予約されている物理メモリの量です。バッファは、データをある場所から別の場所に移動するときにデータを一時的に保存するために使用されます。
キャッシュ: これは、キャッシュメモリとして使用される物理メモリの量です。
SwapCached: これは、スワップディスクに移動され、物理RAMに戻されたメモリの量です。ただし、データは引き続きスワップディスクにキャッシュされます。
アクティブ: これは、使用されている物理メモリの量であり、通常、必要な場合を除いて再利用できません。
非活性: これは、使用されている物理メモリの量であり、必要に応じて他のプロセスまたはプログラムによって簡単に再利用できます。
アクティブ(anon): これは、匿名tmpfsファイルシステムと共有メモリによって使用される物理メモリの量です。
非アクティブ(anon): これは、匿名tmfsファイルシステムによって使用される物理メモリと再利用可能な共有メモリの量です。
アクティブ(ファイル): これは、アクティブに使用されているキャッシュメモリの量です。
非アクティブ(ファイル): これは、新しくロードされた、または再利用可能なキャッシュメモリの量です。
取り返しのつかない: これは、ユーザープログラムによってロックされているため、再利用できないメモリの量です。
Mlocked: これは、ユーザープログラムによってロックされているため、再利用できないメモリの合計量です。
SwapTotal: これは、スワップディスクの合計サイズです。
SwapFree: これは、空きのスワップスペースの量です。
汚れた: ディスクへの書き戻しを待機しているメモリの合計量。
返事を書く: ディスクに書き戻されているメモリの合計量。
AnonPages: ページによって使用され、ユーザースペースページテーブルにマップされるメモリの合計量。
マップ: さまざまなプログラムで使用されるライブラリなど、Linuxカーネルによってmmapされたファイルに使用されるメモリの量。
例: これは、tmpfsファイルシステムによって共有および使用されるメモリの量です。
K再生可能: カーネルによって要求され、必要に応じて再利用できるメモリの量。
スラブ: これは、カーネルを使用するためにデータ構造をキャッシュするためにカーネルが使用するメモリの量です。
S再生可能: これは、再利用できるスラブのメモリの量です。
SUnreclaim: これは、必要な場合でも再利用できないスラブのメモリ量です。
KernelStack: これは、カーネルスタックの割り当てに使用されるメモリの量です。
PageTables: これは、ページテーブル専用のメモリ量です。ページテーブルは、仮想メモリと物理メモリの間をマッピングするためにコンピュータが使用するデータ構造です。
跳ねる、弾む: これは、ブロックデバイス(つまり、HDDやSSDなどのストレージデバイス)のバッファーに使用されるメモリの量です。
WritebackTmp: FUSE一時ライトバックバッファに使用されるメモリの量。
には他にも多くのメモリ使用量情報があります / proc / meminfo ファイル。興味がある場合は、のマンページにあるものを確認できます。 パーセント 。
のマンページを開くには パーセント 、次のコマンドを実行します。
$男 5パーセント
procのマンページを開く必要があります。
入力します / proc / meminfo を押して 。以下のスクリーンショットにあるように、/ proc / meminfoセクションに移動するはずです。あなたはのすべてのフィールドの説明を見つけるでしょう / proc / meminfo ここにファイルします。
topを使用したメモリ使用量の確認:
NS 上 は、実行中のプロセスとそのリソース使用量をリアルタイムで表示するプログラムです。 NS 上 ほとんどのLinuxディストリビューションにプリインストールされています。
あなたは実行することができます 上 次のコマンドを使用します。
$上
NS 上 プログラムが起動するはずです。の上部に 上 以下のスクリーンショットでマークされているプログラムでは、メモリとスワップの使用状況の概要がメビバイト単位で表示されます(デフォルト)。
NS 上 コマンドは、次の物理メモリ情報を表示します。
合計: システムで使用可能な物理メモリの合計。
自由: まだ使用されていない物理メモリの量。
中古: システムが使用する物理メモリの量。
バフ/キャッシュ: キャッシュメモリおよびバッファとして使用される物理メモリの量。
アベイルズメム: 新しいプログラムで使用できる物理メモリの量。
NS 上 コマンドは、次のスワップ情報を表示します。
合計: システムで使用可能なスワップメモリの合計。
自由: システムの空きスワップメモリの量。
中古: システムが使用するスワップメモリの量。
あなたは押すことができます NS 異なるメモリ使用量サマリーモード間で変更します。
たとえば、 NS 一度は以下のモードに切り替わります。このモードでは、 上 は、物理メモリとスワップの使用状況情報を次のように示します。 percent_memory_used / total_memory_in_mebibytes 。
押す NS 再びプログレスバーのスタイルを変更します。情報は以前と同じになります。
NS 上 コマンドは、コンピュータで実行されている各プロセスのメモリ使用量情報もリアルタイムで表示します。 topコマンドは、デフォルトでプロセスのメモリ使用量情報をキビバイト単位で表示します。
デフォルトでは、 上 コマンドは、次のメモリ使用量情報を表示します。
尊敬される: これは、プロセスの仮想メモリサイズです。仮想メモリは、プロセスで使用される物理メモリとスワップメモリの合計です。
牛肉: これは、プロセスの常駐メモリサイズです。常駐メモリは、プロセスが使用している物理メモリの量です。
SHR: これは、プロセスの共有メモリサイズです。これは、プロセスが使用しているメモリの量であり、他のいくつかのプロセスとも共有されます。
%MEM: プロセスが使用している物理メモリの割合。
あなたは設定することができます 上 次のようなメモリ使用量情報を表示するコマンド
コード: これは、プロセスのコードサイズです。これは、プロセスの実行可能コード専用の物理メモリの量です。 Text ResidentSetまたはTRSとも呼ばれます。
データ: これは、プロセスのデータとスタックサイズです。これは、プロセスによって予約されているメモリの量です。まだ物理メモリにマップされていない可能性があります。ただし、プロセスの仮想メモリ(VIRT)には常に表示されます。これは、データ常駐セットまたはDRSとも呼ばれます。
RSan: これは、プロセスの常駐匿名メモリサイズです。これは、ファイルにまだマップされていないプライベートページを表す物理メモリ(RES)のサブセットです。
RSfd: これは、プロセスの常駐ファイルに基づくメモリサイズです。これは、共有ページとサポートプログラムイメージ、共有ライブラリ、ファイルマッピングなどを表す物理メモリ(RES)のサブセットです。
RSsh: これは、プロセスの常駐共有メモリサイズです。これは、共有匿名ページを表す物理メモリ(RES)のサブセットです。
RSlk: これは、プロセスの常駐ロックメモリサイズです。スワップアウトできないのは物理メモリ(RES)の量です。物理メモリに残しておく必要があります。
スワップ: これは、プロセスのスワップサイズです。物理メモリーからスワップ・ディスク・スペースに移動されるのは、物理メモリー(RES)情報の量です。
中古: これは、プロセスが使用しているメモリの合計量(物理+スワップ)です。
USED = RES + SWAP。プロセスによって使用される物理メモリ(RES)は、常駐匿名メモリサイズ(RSan)、常駐ファイルバックアップメモリサイズ(RSfd)、および常駐共有メモリサイズ(RSsh)の合計であることに注意してください。
RES = RSan + RSfd + RSshこれらのメモリ情報列を有効にするには、 上 を押して NS 。
矢印キーを使用してマークされた列に移動し、を押します それを切り替えるために。有効な列には、 * 左側のマーク。
完了したら、を押します 何 一番上のプロセス監視ウィンドウに戻ります。ご覧のとおり、メモリ使用量情報の列SWAP、CODE、DATA、USED、RSan、RSfd、RSlk、RSshが表示されます。
デフォルトでは、 上 コマンドは、メモリ使用量情報をキビバイト単位で表示します。メビバイト、ギビバイト、テビバイト、ペビバイトなどの別の単位でメモリ使用量情報を表示したい場合は、それも実行できます。
異なるメモリユニット(キビバイト、メビバイト、ギビバイト、テビバイト、またはペビバイト)を切り替えるには、topを実行してを押します。 と 。
上 メモリ使用量情報はメビバイト単位で表示されています。
上 メモリ使用量情報はギビバイト単位で表示されています。
上 メモリ使用量情報はテビバイト単位で表示されています。
上 メモリ使用量情報はペビバイト単位で表示されています。
Linuxオペレーティングシステムでは多くのプロセスが実行されます。一番上のコマンドでは、それらすべてを一度に表示することはできません。あなたは長押しすることができます と プロセスのリストをナビゲートするための矢印キー 上 コマンドが表示されます。
topコマンドの出力を特定の列で並べ替えることもできます。
たとえば、どのプロセスが最も多くのスワップスペースを使用しているかを確認したいとします。これを行うには、を実行します 上 を押して NS 。
次に、キーボードの矢印キーを使用してSWAP列を選択し、を押します。 NS 。
の並べ替えフィールド 上 コマンドをSWAPに変更する必要があります。押す 何 プロセス監視ウィンドウに戻ります。
ご覧のとおり、スワップスペースを最も多く使用しているプロセスが最初に一覧表示されます。
構成したら 上 コマンド、あなたは押すことができます + の 構成をに保存するには toprc 構成ファイル。このように、再構成する必要はありません 上 あなたがそれを使うたびに。
htopを使用したメモリ使用量の確認:
htop と同じようにLinuxリアルタイムプロセスビューアです 上 。しかし htop 追加機能があります 上 ではない。の最も明白な新機能 htop 構文の強調表示とより優れたユーザーインターフェイスです。あなたは言うことができます htop 拡張された 上 。
以下のような 上 、 htop ほとんどのLinuxディストリビューションにはプリインストールされていません。しかし、そこにあるほとんどすべてのLinuxディストリビューションの公式パッケージリポジトリで入手できます。そのため、目的のLinuxディストリビューションに簡単にインストールできます。
インストールするには htop Ubuntu / Debianで、次のコマンドを実行します。
$sudoaptアップデート$sudoaptインストール htop -と
ノート: CentOS / RHELでは、 htop EPELリポジトリで入手できます。インストールする前に htop 、EPELリポジトリが必要です( epel-リリース パッケージ)CentOS / RHELシステムにインストールされています。
インストールするには htop CentOS 7 / RHEL 7では、次のコマンドを実行します。
$sudo yum installepel-リリース-と$sudo yum install htop -と
インストールするには htop CentOS 8 / RHEL 8では、次のコマンドを実行します。
$sudodnfインストールepel-リリース-と$sudodnfインストール htop -と
一度 htop がインストールされている場合は、次のコマンドで実行できます。
$htop
Htop 開始する必要があります。
頂上で、 htop 物理メモリとスワップの使用状況の概要を表示します。また、メモリとスワップの使用状況を素敵な棒グラフで示しています。
メモリとスワップの使用状況情報は、次の形式になっています。 中古 / 合計 。 htop は、メモリとスワップの使用状況情報を最もよく表す単位(キビバイト、メビバイト、ギビバイト、テビバイト、またはペビバイト)を自動的に決定します。
メモリとスワップの使用量バーは異なる色で表されます。色には意味があります。
各色が何を表すかを知るには、を実行します htop を押して NS のヘルプウィンドウに移動します htop 。
ご覧のとおり、緑色はさまざまなプログラム/プロセスで使用される物理メモリを表し、青色はバッファとして使用される物理メモリを表し、黄色はキャッシュメモリとして使用される物理メモリを表し、赤色は使用される物理メモリを表します。スペースを交換します。
メインに戻るには htop ウィンドウ、を押します 何 。
以下のような 上 、 NS htop プログラムは、Linuxシステムで実行されている各プロセスのメモリ使用量情報も表示します。 htop 各プロセスのメモリ使用量を最もよく表す単位(キビバイト、メビバイト、ギビバイト、テビバイト、またはペビバイト)を自動的に決定します。
デフォルトでは、 htop コマンドは、次のメモリ使用量情報を表示します。
VIRT / M_SIZE: これは、プロセスの仮想メモリのサイズです。仮想メモリは、プロセスで使用される物理メモリとスワップメモリの合計です。
RES / M_RESIDENT: これは、プロセスの常駐セットサイズです。常駐メモリは、プロセスが使用している物理メモリの量です。これは、テキスト+データ+スタックまたはM_TRS + M_DRSと同じです。
SHR / M_SHARE: これは、プロセスの共有メモリサイズです。これは、プロセスが使用しているメモリの量であり、他のいくつかのプロセスとも共有されます。
%MEM / PERCENT_MEM: プロセスが使用している物理メモリの割合。
あなたは設定することができます htop 次のようなメモリ使用量情報を表示するコマンド
コード/ M_TRS: これは、プロセスのコードサイズです。これは、プロセスの実行可能コード専用の物理メモリの量です。
DATA / M_DRS: これは、プロセスのデータとスタックサイズです。これは、プロセスによって予約されているメモリの量です。まだ物理メモリにマップされていない可能性があります。ただし、プロセスの仮想メモリ(VIRT / M_SIZE)には常に表示されます。
LIB / M_LRS: これは、プロセスのライブラリサイズです。これは、ライブラリコード(プロセス/プログラムによって使用される)が使用している物理メモリの量です。
ダーティ/ M_DT: これは、プロセスのダーティページのサイズです。バッファで変更されたセクション/ページはダーティページと呼ばれます。
これらのメモリ情報列を有効にするには、 htop を押して F2 。
次に、に移動します 列 から 設定 セクションで、前に新しい列を追加する列を選択します。 アクティブな列 セクションで、追加する列をから選択します 使用可能な列 セクションを押して、 列を追加します。
列をに追加する必要があります アクティブな列 セクション。
同様に、他のメモリ列(で始まる列)を追加します NS_ )。完了したら、を押します メインに戻る htop 窓。
ご覧のとおり、メモリ使用量情報の列が追加されています。
あなたはでプロセスを見ることができます ツリー表示 。このビューでは、プロセスは親子関係によって編成されています。
ツリービューに切り替えるには、を押します NS 。ご覧のとおり、プロセスは親子関係によって非常にうまく構成されています。このモードでは、親プロセスによって生成された子プロセスとそのメモリ使用量を確認できます。
ツリービューを終了するには、を押します NS また。デフォルトのビューに戻るはずです。
さまざまなメモリ使用量の列でプロセスを並べ替えることもできます。デフォルトでは、プロセスはCPU使用率(CPU%)でソートされています。
特定の列でプロセスを並べ替えるには、を押します F6 。
次に、プロセスを並べ替える列をから選択します。 並び替え セクションとを押します 。
プロセスを並べ替えます M_RESIDENT / 牛肉 デモンストレーション用の列。
ご覧のとおり、プロセスは常駐メモリ使用量によって適切にソートされています。
NS htop プログラムは多くのプロセスをリストします。これらのプロセスのすべてを、限られたウィンドウ/画面サイズで表示することはできません。しかし、あなたは押すことができます と プロセスリストを非常に簡単にナビゲートするための矢印キー。
smemを使用したメモリ使用量の確認:
のようなメモリ使用量チェックプログラム 上 、 htop、 などは、各プロセスの完全な共有メモリを示しています。つまり、メモリは一部のプロセスで共有されていますが、そのメモリを共有しているプロセスごとに、この使用済みメモリがカウントされます。そのため、ある種の誤ったメモリ使用量情報が得られます。
数学ではこんな感じですが
プロセスの物理メモリ使用量=共有メモリ使用量+非共有メモリ使用量できます これを回避し、メモリ使用量を正しく報告しようとします。共有メモリをその共有メモリを使用するプロセスの数で除算し、その結果をそのメモリを共有する各プロセスに追加します。したがって、メモリ使用量はうまく加算されます。合計メモリ使用量は、すべてのプロセスのメモリ使用量の合計になります。これは、 htop また 上 。
数学ではこんな感じですが
プロセスの物理メモリ使用量=((共有メモリの使用量/メモリを共有するプロセスの数)。+非共有メモリ
できます ほとんどのLinuxディストリビューションにはデフォルトでプリインストールされていません。ただし、ほとんどのLinuxディストリビューションの公式パッケージリポジトリで入手できます。
Ubuntu / Debianでは、インストールできます できます 次のコマンドを使用します。
$sudoaptアップデート$sudoaptインストールできます-と
CentOS / RHEL7では できます EPELパッケージリポジトリで入手できます。したがって、インストールするには、CentOS / RHEL7にEPELリポジトリを追加する必要があります できます 。
CentOS / RHEL 7では、インストールできます できます 次のコマンドを使用します。
$sudo yum installepel-リリース-と$sudo yum installできます-と
不幸にも、 できます CentOS / RHEL8の公式パッケージリポジトリまたはEPELリポジトリでは利用できません。コンパイルできるはずです。 できます ソースからダウンロードするか、 できます からのバイナリ smemの公式サイト 。
コンパイルしたい場合 できます ソースから、smemソースコードをダウンロードできます。 公式smemソースページ 。
ダウンロードしたい場合 できます コンパイル済みのバイナリファイルの場合は、からダウンロードできます。 smem公式ダウンロードページ 。
できます 各ユーザーのメモリ使用量を表示できます。
Linuxユーザーが使用するメモリの量を知るには、 できます 次のように:
$sudoできます-あなた
ここでは、 -に オプションは、そのユニットを示すために使用されます できます は、メモリ使用量情報を表示するために使用しています。
できます 次の単位を使用します。
K –キビバイト
M –メビバイト
G-ギビバイト
T –テビバイト
P-ペビバイト
NS -に オプションは、端末のウィンドウサイズに応じて出力列をスケーリングするために使用されます。このように、あなたはの出力を修正することができます できます 重要なテキストが切り取られた場合、非常に簡単です。
NS -u オプションは、ユーザーのメモリ使用量情報を表示するために使用されます。
ご覧のように、 できます 私のUbuntuマシンの各ユーザーのメモリとスワップの使用状況情報を報告しました。
できます は、次のユーザーメモリ使用量情報を示しています。
ユーザー: メモリ使用量が報告されるLinuxユーザー名。
カウント: ユーザーが現在実行しているプロセスの数。
スワップ: ユーザーが使用しているスワップディスク容量。
USS: これは、ユーザープロセスの一意のセットサイズの合計です。他のプロセスと共有されていないのは、ユーザーが所有するプロセスが使用している物理メモリの合計量です。
PSS: これは、ユーザープロセスの合計比例セットサイズです。これは、ユーザーが所有するプロセスが使用している物理メモリと均等に分割された共有物理メモリの合計量です。
RSS: これは、ユーザープロセスの常駐セットサイズの合計です。これは、ユーザーが所有するプロセスが使用している物理メモリと共有物理メモリの合計量です。のRSSメモリ使用量情報 できます のRSSメモリ使用量情報と同じです 上 また htop 。
デフォルトでは、 できます は、メモリ使用量情報を昇順(最低から最高)で表示します。メモリ使用量情報を降順(最高から最低)で表示する場合は、 -NS のオプション できます 次のように:
$sudoできます-カウル
ご覧のように、 できます 同じユーザーメモリ使用量情報を表示しました。しかし、降順で。
ユーザーの合計メモリ使用量情報を確認する場合は、次を実行します。 できます とともに -NS 次のようなオプション:
$sudoできます使って
ご覧のように、 できます 各列のすべての行の情報を追加し、最後に各列の合計メモリ使用量情報を表示します。
デフォルトでは、 できます は、メモリ使用量の情報をキビバイト単位で表示します。あなたが使用する場合 -に オプション、 できます メモリ使用量情報を表示するのに最適なユニットを自動的に選択します。
使用可能な物理メモリまたはスワップディスクスペースの合計に対するパーセンテージとしてメモリ使用量情報を表示する場合は、 -NS の代わりにオプション -に 次のようなオプション:
$sudoできます-ポー
ご覧のように、 できます ユーザーのメモリ使用量情報を、物理メモリとスワップディスクの合計容量のパーセンテージで表示します。
システム全体のメモリ使用量情報またはシステムメモリ使用量の概要を表示する場合は、次を実行します。 できます とともに -の 次のようなオプション:
$sudoできます-カウ
ご覧のように、 できます システム全体のメモリ使用量情報を表示します。
できます 次のシステム全体のメモリ使用量情報を表示します。
領域: メモリが使用されるシステムの部分。
中古: この領域に使用される物理メモリの量。
キャッシュ: この領域のキャッシュメモリとして使用される物理メモリの量。
非キャッシュ: キャッシュされていない、この領域に使用されている物理メモリーの量。
以前と同じように、あなたは使用することができます -NS システム全体の合計メモリ使用量情報も表示するオプション。
$sudoできます-注意深い
Linuxシステムで実行されているプロセスのメモリ使用量を確認することもできます。 できます 。
これを行うには、を実行します できます 次のように:
$sudoできます-kar
ご覧のように、 できます Ubuntuマシンで実行されている各プロセスのメモリ使用量情報を表示します。
できます 次のプロセスごとのメモリ使用量情報を表示します。
PID: プロセスのプロセスID。
ユーザー: プロセスを開始した、またはプロセスを所有しているユーザーのユーザー名。
指示: プロセスを開始するために使用されるコマンド。
スワップ: プロセスが使用しているスワップディスク容量。
USS: これは、プロセスの一意のセットサイズです。他のプロセスと共有されないのは、プロセスが使用している物理メモリの量です。
PSS: これは、プロセスの比例セットサイズです。これは、プロセスが使用している物理メモリと均等に分割された共有物理メモリの量です。
RSS: これは、プロセスの常駐セットサイズです。これは、プロセスが使用している物理メモリと共有物理メモリの量です。
プロセスが使用している各ライブラリファイルのメモリ使用量情報も確認できます。 できます 。
コンピュータの物理メモリにロードされている各ライブラリファイルのメモリ使用量情報を確認するには、次を実行します。 できます とともに -NS 次のようなオプション:
$sudoできます-kamr
できます 以下のスクリーンショットに示すように、コンピュータの物理メモリにロードされている各ライブラリファイルのメモリ使用量情報が表示されます。
できます は、次のライブラリごとのメモリ使用量情報を示しています。
地図: コンピュータの物理メモリにマップされているライブラリファイル。
PID: このライブラリファイルを使用しているプロセスの総数。
PSS: これは、ライブラリファイルを使用するプロセスの合計比例セットサイズです。これは、プロセスが(このライブラリファイルを使用して)使用している物理メモリと均等に分割された共有物理メモリの量です。
AVGPSS: これは、このライブラリファイルを使用するプロセスの平均比例セットサイズです。これは、(このライブラリファイルを使用して)各プロセス間で共有されている平均的な物理メモリです。 AVGPSS = PSS / PIDs(約)とも言えます。
vmstatを使用したメモリ使用量の確認:
vmstat Linuxでメモリ使用量をチェックするための別のプログラムです。とほぼ同じ情報を表示します / proc / meminfo ファイル。
メモリ使用量情報を表示するには、を実行します vmstat 次のように:
$vmstat -NS
vmstat 以下のスクリーンショットに示されているように、システム全体のメモリ使用量情報がキビバイト単位で表示されます。
vmstat は、次のメモリ使用量情報を示しています。
総メモリ: コンピュータの利用可能な物理メモリの合計。
使用メモリ: コンピュータの使用済み物理メモリの合計。
空きメモリ: コンピュータの合計空き物理メモリ。
トータルスワップ: 使用可能なスワップディスク容量の合計。
使用済みスワップ: 使用されたスワップディスクスペースの量。
無料スワップ: スワップディスクの空き容量はまだ空いています。
スワップキャッシュ: キャッシュとして使用されるスワップディスクスペースの量。
バッファメモリ: データをある場所から別の場所に移動するときにデータを一時的に保持するためのバッファとして使用される物理メモリの量。
アクティブメモリ: 使用されているが、他のプログラムで必要な場合は再利用できない物理メモリーの量。
非アクティブなメモリ: 使用されているが、必要に応じて他のプログラムで簡単に再利用できる物理メモリの量。
GNOMEシステムモニターを使用したメモリ使用量の確認:
GNOMEシステムモニターは、メモリ使用量、実行中のプロセス、およびディスク使用量を監視するためのグラフィカルソフトウェアです。 GNOME 3、Ubuntu MATE、Cinnamon、およびBudgieデスクトップ環境にプリインストールされています。
でメモリとスワップの使用状況情報を確認できます 資力 のタブ GNOMEシステムモニター 下のスクリーンショットでわかるように。
優れたリアルタイムメモリを表示し、過去60秒間の使用状況グラフを交換します。このグラフから、メモリとスワップの使用量が時間の経過とともにどの程度変化したかを知ることができます。
使用可能な物理メモリの合計、使用されている物理メモリの量、使用されている物理メモリの割合、およびキャッシュメモリとして使用されている物理メモリの量が表示されます。また、物理的なメモリ使用量の円グラフも表示されます。
また、使用可能なスワップディスクスペースの合計、使用されたスワップスペースの量、使用されたスワップスペースの量の割合、および適切なスワップ使用量の円グラフも表示されます。
の中に プロセス のタブ GNOMEシステムモニター 、コンピュータで実行されている各プロセスのメモリ使用量情報を確認できます。
プロセスのメモリ使用量に関する詳細情報を表示する場合は、タイトルバーを右クリック(RMB)して、 仮想メモリ 、 レジデントメモリー 、 と 共有メモリ 以下のスクリーンショットに示すように。
以下のスクリーンショットに示すように、プロセスの仮想(VIRT)、常駐(RES)、および共有(RSS)のメモリ使用量情報が表示されます。
このメモリ使用量情報は、 上 また htop 。
デフォルトでは、GNOMEシステムモニターはログインユーザーが所有するプロセスのみを表示します。システムのすべてのユーザーが所有するすべてのプロセスのリストを表示する場合は、ハンバーガーメニューをクリックします(
)を選択し、 すべてのプロセス 以下のスクリーンショットに示すように。
プロセスをツリービュー(親子関係)で表示する場合は、ハンバーガーメニューをクリックします(
)そしてチェック 依存関係を表示する 以下のスクリーンショットに示すように。
ツリービューでは、どのプロセス(親)がどのプロセス(子)を開始したかを、開始された順序で確認できます。また、各親プロセスが消費するメモリ量と、各子プロセスが消費するメモリ量も確認できます。
KSysGuardを使用したメモリ使用量の確認:
KSysGuardは、メモリ使用量を監視し、プロセスを実行するためのグラフィカルソフトウェアです。 KDEPlasmaデスクトップ環境にプリインストールされています。
でメモリとスワップの使用状況情報を確認できます システム負荷 のタブ KSysGuard 下のスクリーンショットでわかるように。
の中に プロセステーブル のタブ KSysGuard 、コンピュータで実行されている各プロセスのメモリ使用量情報を確認できます。
デフォルトでは、KSysGuardは、実行中の各プロセスの物理メモリと共有メモリの使用状況情報を表示します。
タイトルバーを右クリック(RMB)して、 列「仮想サイズ」を表示 と 「合計メモリ」列を表示 より多くのメモリ使用量情報を表示します。
ご覧のとおり、KSysGuardは、実行中の各プロセスの仮想メモリサイズ(VIRT)と合計物理メモリ使用量も表示するようになりました。
デフォルトでは、KSysGuardは、のすべてのユーザーが所有する実行中のすべてのプロセスを表示します。 プロセステーブル タブ。以下のスクリーンショットに示すように、KSysGuardの右上隅にあるドロップダウンメニューから、表示するプロセスを変更できます。
ツリービューの場合は、 すべてのプロセス、ツリー ドロップダウンメニューから。
ツリービューでは、どのプロセス(親)がどのプロセス(子)を開始したかを、開始された順序で確認できます。また、各親プロセスが消費するメモリ量と、各子プロセスが消費するメモリ量も確認できます。
システムレベルのプロセスのみを表示する場合は、[ システムプロセス ドロップダウンメニューから。これらのプロセスは通常、 根 ユーザー。
ユーザーレベルのプロセスを表示する場合は、[ ユーザープロセス ドロップダウンメニューから。これらのプロセスは通常、通常のユーザー(root以外)が所有します。
ログインユーザーが所有するプロセスのみを表示する場合は、[ 独自のプロセス 。
プロセスではなく、コンピューターで実行されているプログラムのみを表示する場合は、[ プログラムのみ ドロップダウンメニューから。コンピュータで実行されているアプリケーションプログラムのみが一覧表示されます。
結論:
この記事では、Linuxでメモリ使用量を確認する最も一般的な方法について説明しました。 Linuxシステムのメモリ使用量をコマンドラインおよびグラフィカルデスクトップ環境から確認する方法を示しました。のようなプログラムの使い方を説明しました 自由 、 上 、 htop 、 できます 、 vmstat 、 GNOMEシステムモニター 、 と KSysGuard Linuxのメモリ使用量を確認します。これらのコマンドとプログラムの出力形式についても説明しました。この記事では、Linuxのメモリ使用量チェックを開始し、Linuxのメモリ使用量チェックツールについての深い知識を得る必要があります。