はじめに
このドキュメントでは、Cisco Policy Suit(CPS)を使用して、高スワップメモリ使用率の問題をトラブルシューティングする手順について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
注:CPS CLIへのルートアクセス権限を持っていることが推奨されます。
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- CPS 20.2
- ユニファイドコンピューティングシステム(UCS)-B
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
Linuxのスワップ領域は、物理メモリ(ランダムアクセスメモリ(RAM))の容量がいっぱいになると使用されます。システムにより多くのメモリリソースが必要で、RAMがいっぱいになると、メモリ内の非アクティブページはスワップ領域に移動されます。スワップ空間はRAM容量の少ないマシンで役立ちますが、より多くのRAMの代わりとして考慮する必要はありません。スワップ領域はハードドライブ上にあり、物理メモリよりもアクセス時間が長くなります。スワップ空間には、専用のスワップパーティション(推奨)、スワップファイル、またはスワップパーティションとスワップファイルの組み合わせを使用できます。
過去の数年間で、推奨されるスワップ領域の容量は、システムのRAM容量に比例して増加していました。しかし、最近のシステムには数百ギガバイトのRAMが含まれていることがよくあります。したがって、推奨されるスワップ領域は、システムメモリではなく、システムメモリワークロードの関数と見なされます。
メモリのスワップとは、現在使用されていないメモリの内容をディスクにスワップして、メモリを他のアプリケーションやプロセスで使用できるようにするメモリ再利用方式です。メモリの正確な状態または「ページ」がディスクにコピーされ、データが連続し、後で復元しやすくなります。
仮想メモリと同様に、スワップ領域はセカンダリメモリです。プロセスの実行に使用できる物理メモリがない場合に、オペレーティングシステム(OS)によって使用されます。OSでメモリが必要な状況が発生しても、RAMがいっぱいである場合、OSは非アクティブページをRAMからスワップメモリに移動します。
コンピュータに使用可能な空きスワップ領域があるかどうかを確認するには、freeコマンドを使用します。
[root@dc1-qns01 ~]# free -m
total used free shared buff/cache available
Mem: 15876 4918 7750 792 3207 9987
Swap: 4095 0 4095
[root@dc1-qns01 ~]#
問題
プロビジョニングされたモジュールがディスクを大量に使用する場合、スワップ使用率が高くなるのは正常な状態です。スワップ使用率が高い場合は、システムにメモリ不足が発生していることを示している必要があります。
このアラームは、仮想マシン(VM)で使用可能なスワップメモリが設定されたしきい値よりも低いときに生成されます。
また、復元力イベントが発生した時点で、pcrfclient01 VMでスワップメモリの高使用率が観察されます。pcrfclient VMのスワップメモリ不足の問題により、diagnostic.shの実行後に診断が失敗する。
Checking swap space for all VMs...
Checking swap memory usage on pcrfclient01...[FAIL]
Swap usage is 1835 MB. This will likely lead to a slowdown in your system!
Please ensure your memory is provisioned properly.
If systems memory usage is no longer high, you can reset swap with: swap2ram.sh
状態:pcrfclient VMのスワップメモリ不足の問題により、diagnostic.shの実行後に診断が失敗します。
CPSでの高スワップメモリ使用率の問題を解決する手順
アプローチ1:
高スワップメモリ使用率に対するソリューションは、復元力イベントの発生時にpcrfclient01 VMで観察されます。
1. pcrfclient VMにログインし、du -sh *コマンドを使用してディスクメモリを確認します。
2./var/lib/carbon/whisper/cisco/quantumのディレクトリでメモリの使用量を確認します。メモリ使用率の増加が確認される場合、問題は統計情報ファイルが原因です。
3. メモリを回復するには、統計(.wsp)ファイルを削除するか、VMディスクメモリを増やします。
4. メモリを回復するには、フォルダから統計情報を手動で削除するか /var/lib/carbon/whisper/cisco/quantum、次の手順を使用して統計情報を削除します。
df –hコマンドを実行して、ディスク領域を書き留めます。
- 次のコマンドを実行します。
#du -h --max-depth=0 /var/lib/carbon/whisper/cisco/quantum/qps
#monit stop grafana-server
#monit stop carbon-cache
#vi /etc/carbon/storage-schemas.conf
- ファイルの最後にある保存期間を90日から30日に更新します。その結果、保存期間が長くなります。
古い – リテンション:10s:1d、60s:90d
更新先 – リテンション: 10s:1d、60s:30d
- 保存期間の更新後、次のコマンドを実行します。
#monit start carbon-cache
#monit start grafana-server
注:または、monit start/stop/restartコマンドの代わりにsystmctl start/stop/restartコマンドを使用できます。
- resize.shという名前のファイルを作成し、これらを追加します。
chmod 777 resize.sh
#monit stop carbon-cache
#cd /var/lib/carbon/whisper/cisco/quantum/qps
#find ./ -type f -name '*.wsp' -exec whisper-resize --nobackup {} $1 \;
#chown -R carbon:carbon *
#monit start carbon-cache
#monit restart grafana-server
- コマンドを使用して、必要な権限を追加します。
- RUN
./resize.sh "updated_retention_value"
サンプルコマンド: #./resize.sh "10s:1d 60s:30d"
- スクリプトが完了したら、これらのコマンドを実行して、以前の結果と現在の結果を比較することでデータ量が減少したことを確認します。
#run df –h: disk space should reduce or less than previous result
#du -h --max-depth=0 /var/lib/carbon/whisper/cisco/quantum/qps
- Grafanaに過去30日間の統計情報が表示され、30日以内であることを確認します。(更新された保存期間は30日です)。
アプローチ2:
高スワップメモリ使用率を解決するための一般的な推奨事項。
システムのスワップメモリをクリアするには、単にスワップをオフにする必要があります。これにより、すべてのデータがスワップメモリからRAMに戻されます。また、この動作をサポートするRAMがあることを確認する必要があることを意味します。これを行う簡単な方法は、free -mを実行して、スワップとRAMで何が使用されているかを確認することです。いったん電源をオフにすると、操作が完了するまで任意の時間(30秒ほど)待機してから、スワップの電源をオンに戻すことができます。これにより、スワップ・メモリ・キャッシュがクリアされ、再び有効になります。必要なすべてのコマンドを次に示します。
1. スワップ領域の使用状況を確認します。 # free -m
2. スワップを無効にする: # swapoff -a
約30秒待ちます。free -mを実行して、使用または使用可能なスワップの量が、時間の経過とともに減少することを確認します。
3. スワップを有効にします。# swapon -a