tencent cloud

Cloud Virtual Machine

Linuxインスタンス:メモリ使用率が高すぎる

PDF
フォーカスモード
フォントサイズ
最終更新日: 2025-09-08 17:41:06

現象の説明

Linux CVMインスタンスには、メモリの問題に起因する障害が発生します。例えば、システム内部サービスの応答速度が遅くなったり、サーバーがログインに失敗したり、システムがOOM(Out Of Memory)をトリガーしたりするなどです。

考えられる原因

インスタンスのメモリ使用率が高すぎることなどが原因と考えられます。通常、インスタンスのメモリ使用率が持続的に90%を超える場合は、インスタンスのメモリ使用率が高すぎると判断できます。

トラブルシューティングの考え方

1. 処理手順 を参照して、メモリ使用率が高すぎることが原因で問題が発生しているのかどうか判断してください。
2. その他のメモリ問題による典型的ケースの分析 を参照して、問題の原因を特定します。

処理手順

1. 関連操作 を参照して、メモリ使用率が高すぎないか確認してください。
メモリ使用率が高すぎる場合は、次の手順に進んでください。
メモリ使用率が正常な場合、その他のメモリ問題による典型的ケースの分析 を参照して、問題の原因をさらに特定してください。
2. システム内部でtopコマンドを実行した後、Mを押して、「RES」列と「SHR」列のプロセスがメモリを占有しすぎていないか確認します。
「いいえ」の場合は、次の手順に進んでください。
「はい」の場合は、プロセスタイプに応じて操作してください。詳細については、分析プロセス をご参照ください。
3. 以下のコマンドを実行して、共有メモリを占用しすぎているかどうか確認します。
cat /proc/meminfo | grep -i shmem
返された結果は、次のように示されます。


4. 以下のコマンドを実行して、回収不能なslabのメモリの占有が多すぎるかどうかを確認します。
cat /proc/meminfo | grep -i SUnreclaim
返された結果は、次のように示されます。


5. 以下のコマンドを実行して、メモリラージページがあるかどうか確認します。
cat /proc/meminfo | grep -iE "HugePages_Total|Hugepagesize"
返された結果は、次のように示されます。


HugePages_Totalの出力は0です。その他のメモリ問題による典型的ケースの分析 を参照して、問題の原因をさらに特定してください。
HugePages_Totalの出力が0でない場合は、メモリラージページが設定されていることを意味します。 メモリラージページのサイズは、HugePages_Total*Hugepagesizeです。hugepageが他の悪意のあるプログラム用に設定されているかどうか確認する必要があります。メモリラージページが不要になったことを確認した場合、/etc/sysctl.confファイルのvm.nr_hugepage設定項目にコメントを付けてから、sysctl -pコマンドを再実行してメモリラージページをキャンセルします。

関連操作

メモリ使用率の確認

異なるLinuxディストリビューションでは、freeコマンドの出力の意味が異なる可能性があるため、単純にfreeコマンドの出力情報からメモリ使用率を算出することはできません。以下の手順に従い、Tencent Cloudのメモリ監視を介してメモリ使用率を取得してください。
1. CVMコンソール にログインして、インスタンス管理ページに進みます。
2. インスタンスIDを選択し、インスタンス詳細ページに進み、監視タブを選択します。
3. 「メモリ監視」では、インスタンスのメモリ使用率を表示できます。下図のとおりです。



メモリ使用率の計算

メモリ監視でのメモリ使用率は、バッファとシステムキャッシュによって占有されているコンテンツを除いた、メモリの合計量に対するユーザーが使用したメモリ量の比率として計算します。計算プロセスは次のとおりです。 = (Total - available)100% / Total = (Total - (Free + Buffers + Cached + SReclaimable - Shmem))100% /Total = (Total - Free - Buffers - Cached - SReclaimable + Shmem)* 100% / Total
計算プロセスで使用されるTotalFreeBufferCachedSReclaimableおよびShmemのパラメータは、/proc/meminfoから取得できます。/proc/meminfoの例は次のとおりです。
1. [root@VM_0_113_centos test]# cat /proc/meminfo
2. MemTotal: 16265592 kB
3. MemFree: 1880084 kB
4. ......
5. Buffers: 194384 kB
6. Cached: 13647556 kB
7. ......
8. Shmem: 7727752 kB
9. Slab: 328864 kB
10. SReclaimable: 306500 kB
11. SUnreclaim: 22364 kB
12. ......
13. HugePages_Total: 0
14. Hugepagesize: 2048 kB
パラメータの説明は次のとおりです。
パラメータ
説明
MemTotal
システムのメモリ合計。
MemFree
システムの余剰メモリ。
Buffers
ブロックデバイス(block device)が占有するキャッシュページを意味します。直接読み取り/書き込みと、SuperBlockが使用するキャッシュページなどのような、ファイルシステムのメタデータ(metadata)を含みます。
Cached
page cache、tmpfsのファイルPOSIX/SysV shared memoryおよびshared anonymous mmapを含みます。
Shmem
共有メモリ、tmpfsなどを含みます。
Slab
カーネルslabアロケータによって割り当てられたメモリは、 slabtopで確認できます。
SReclaimable
回収可能なslabです。
SUnreclaim
回収不可能なslabです。
HugePages_Total
メモリラージページの合計ページ数です。
Hugepagesize
メモリラージページ1ページ分のサイズです。

その他のメモリ問題による典型的ケースの分析

上記の手順で問題を処理できない場合、またはCVMの使用時に以下のタイプのエラー情報が表示される場合は、以下のソリューションをご参照ください。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック