소개
이 문서에서는 Cisco CPS(Policy Suit)의 높은 스왑 메모리 사용률 문제 해결 절차에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
참고: CPS CLI에 대한 루트 액세스 권한이 있어야 합니다.
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- CPS 20.2
- UCS(Unified Computing System)-B
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
Linux의 스왑 공간은 물리적 메모리(RAM(Random Access Memory))가 가득 찰 때 사용됩니다. 시스템에 추가 메모리 리소스가 필요하고 RAM이 꽉 차면 메모리의 비활성 페이지가 스왑 공간으로 이동합니다. 스왑 공간은 작은 양의 RAM이 있는 시스템에 도움이 될 수 있지만, 더 많은 RAM을 대체하는 것으로 간주되어서는 안 됩니다. 스왑 공간은 물리적 메모리보다 액세스 시간이 느린 하드 드라이브에 있습니다. 스왑 공간은 전용 스왑 파티션(권장), 스왑 파일 또는 스왑 파티션과 스왑 파일의 조합이 될 수 있습니다.
지난 몇 년 동안 권장 스왑량은 시스템의 RAM 용량과 함께 선형적으로 증가했습니다. 하지만 현대의 시스템에는 수백 기가바이트의 RAM이 포함되는 경우가 많습니다. 따라서 권장 스왑 공간은 시스템 메모리가 아니라 시스템 메모리 워크로드의 함수로 간주됩니다.
메모리 스왑은 다른 애플리케이션이나 프로세스에서 메모리를 사용할 수 있도록 현재 사용되지 않는 메모리 내용을 디스크로 바꾸는 메모리 재확보 방법입니다. 정확한 메모리 상태 또는 "페이지"가 디스크에 복사되어 데이터를 인접하고 나중에 쉽게 복원할 수 있습니다.
가상 메모리와 마찬가지로 스왑 공간은 보조 메모리입니다. 운영 체제(OS)에서는 프로세스의 추가 실행에 사용할 수 있는 물리적 메모리가 없을 때 사용합니다. OS에 메모리가 필요하지만 RAM이 가득 차면 비활성 페이지를 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.
Solution to High swap memory usage는 탄력성 이벤트 시 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
- 보존 기간을 업데이트한 후 다음 명령을 실행합니다.
systmctl start/stop/restart
#monit start carbon-cache
#monit start grafana-server
참고: 또는 명령 대신 명령을 사용할 수monit start/stop/restart 있습니다.
- 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
- 명령을 사용하여 필요한 권한을
chmod 777 resize.sh 추가합니다.
- 실행
./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이 있는지 확인해야 합니다. 이를 위한 쉬운 방법은 스왑 및 RAM에서 사용되는 것을 확인하기 위해free -m 실행하는 것입니다. 전원을 껐다가 켜면 임의의 시간(30초 정도)을 기다린 다음 작업을 완료할 시간을 제공한 다음 스왑 전원을 다시 켤 수 있습니다. 그러면 스왑 메모리 캐시가 지워지고 다시 활성화됩니다. 필요한 모든 명령은 다음과 같습니다.
1. 스왑 공간 사용량 확인: # free -m
2. 스왑을 비활성화합니다. # swapoff -a
약 30초 정도 기다립니다. 실행을 free -m실행하여 사용/사용 가능한 스왑의 양이 시간이 지남에 따라 감소하는지 확인합니다.
3. 스왑을 활성화합니다.# swapon -a