소개
이 문서에서는 StarOS 시스템에서 CPU/메모리/파일 사용의 기본값과 문제 발생 시 문제를 해결하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
사용되는 구성 요소
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
리소스 관리 하위 시스템은 시스템의 각 작업에 대해 리소스 제한 집합을 할당합니다. 각 작업의 리소스 사용량을 모니터링하여 제한 내에 있는지 확인합니다. 작업이 제한을 초과한 경우 Syslog 또는 SNMP(Simple Network Management Protocol) 트랩을 통해 운영자에게 알립니다. 이 문서에서는 작동 방식 및 추가 트러블슈팅을 위해 수집해야 하는 로그에 대해 설명합니다.
show task resources CLI(command line interface)의 출력에서 기본 정보를 확인할 수 있습니다.
할당된 리소스 제한은 사용자가 변경할 수 없습니다.
할당된 리소스 제한은 StarOS 버전에 따라 다릅니다.
시스템에 문제가 있을 때 발생하는 SNMP의 예입니다.
Mon Aug 26 11:32:19 2013 Internal trap notification 1221 (MemoryOver) facility sessmgr instance 16 card 1 cpu 0 allocated 204800 used 220392
Mon Aug 26 11:32:29 2013 Internal trap notification 1222 (MemoryOverClear) facility sessmgr instance 16 card 1 cpu 0 allocated 1249280 used 219608
Fri Dec 20 13:52:20 2013 Internal trap notification 1217 (MemoryWarn) facility npudrv instance 401 card 5 cpu 0 allocated 112640 used 119588
Fri Dec 20 14:07:26 2013 Internal trap notification 1218 (MemoryWarnClear) facility cli instance 5011763 card 5 cpu 0 allocated 56320 used 46856
Wed Dec 25 12:24:16 2013 Internal trap notification 1220 (CPUOverClear) facility cli instance 5010294 card 5 cpu 0 allocated 600 used 272
Wed Dec 25 12:24:16 2013 Internal trap notification 1216 (CPUWarnClear) facility cli instance 5010294 card 5 cpu 0 allocated 600 used 272
Wed Dec 25 17:04:56 2013 Internal trap notification 1215 (CPUWarn) facility cli instance 5010317 card 5 cpu 0 allocated 600 used 595
Wed Dec 25 17:05:36 2013 Internal trap notification 1216 (CPUWarnClear) facility cli instance 5010317 card 5 cpu 0 allocated 600 used 220
CPU 사용량 모니터링
CPUWarn SNMP 트랩은 prolet의 cpu 사용량이 할당된 양의 90%에 도달할 때 생성됩니다.
CPUWarn이 생성되면 CPUOver는 Proclat의 CPU 사용량이 경고된 값에서 할당된 값의 50%에 도달할 때 생성됩니다.
CPUWarn이 생성되기 전에 proclat의 cpu 사용량이 할당된 사용량에 도달하면 CPUOver가 생성됩니다.
사용량이 할당된 것의 50%로 돌아가면 CPUWarn/Over가 지워집니다.
예:
시설에 대한 시스템 할당이 60이면 값이 54에 도달하면 시스템은 SNMP 트랩(CPUWarn)을 생성합니다.
시설에 대한 시스템 할당이 60이므로, prolet의 cpu 사용량이 경고된 값에서 할당된 값의 50%를 초과할 경우, 이 시나리오에서 시스템 값이 84(54+30)에 도달하면 시스템은 SNMP 트랩(CPUOver)을 생성합니다.
메모리 사용량 모니터링
MemoryWarn은 proclat의 메모리 사용량이 할당에 도달할 때 생성됩니다.
MemoryOver는 proclat의 메모리 사용량이 할당된 + 15MB를 초과하거나 할당량의 2배에 도달할 때 생성됩니다.
사용량이 할당의 95%로 돌아가면 MemoryWarn/MemoryOver가 지워집니다.
예:
기능에 대한 시스템 할당이 60MB이면 60MB보다 큰 값에 대해 시스템은 SNMP 트랩 MemoryWarn을 생성합니다.
기능에 대한 시스템 할당이 60MB이므로 작업 메모리 사용률이 75MB에 도달하면 시스템은 SNMP 트랩 MemoryOver를 생성합니다.
파일 사용 모니터링
Files는 열린 파일 수 또는 프로세스에서 사용 중인 파일 설명자를 나타냅니다.
파일 사용에 대해 구현된 SNMP 트랩은 없지만 over/clear 상태에 대한 로깅 메시지가 생성됩니다.
오버로그는 proclat의 파일 사용량이 할당된 파일 + 할당된 파일의 10% 이상에 도달할 때 생성됩니다.
clear log는 prolet의 파일 사용량이 할당된 파일의 90%로 돌아갈 때 생성됩니다.
2013-May-28+14:16:18.746 [resmgr 14517 warning] [8/0/4440 <rmmgr:80>
_resource_cpu.c:3558] [software internal system syslog] The task cli-8031369 is over its
open files limit. Allocated 2000, Using 2499
작업 리소스 표시 상태
show task resources CLI 출력의 Status 필드에 다른 기준이 있습니다.
아래 그림에서 WARN(경고)은 경고이며 ALARM(경보)은 상태 초과입니다.
문제 해결
CPU 사용의 경우
시스템이 CPU와 관련된 SNMP 트랩을 생성하기 시작하면 활성 문제 중에 다음 정보를 수집합니다.
작업 리소스 표시
프록시가 경고/오버 상태로 전환되는지 확인
작업 리소스 최대 표시
현재 사용량이 아닌 최대 사용량 확인
CPUWarn/Over 이벤트가 있는지 확인
참고: 이 명령은 숨김/테스트 명령입니다. StarOs에서 테스트 모드를 활성화하고 시작하는 방법을 설명서를 참조하십시오.
이 명령은 서비스에 영향을 주지 않으며 프로덕션에서 실행할 수 있습니다.
show profile card <card number> cpu <cpu number> depth <value>
이것은 소위 배경 프로 파 일러입니다.
백그라운드 프로파일러는 항상 생산 시에도 일정한 시료 채취 기간이 1초인 실행.
우리는 어떤 PC가 카드/CPU/시설/인스턴스 등에 따라 CPU 자원을 소비하는지 알 수 있다.
기본값 1(예: 4)을 사용하는 대신 depth를 지정하는 것이 좋습니다.
메모리 사용
시스템이 메모리와 관련된 SNMP 트랩을 생성하기 시작하면 활성 문제 중에 다음 정보를 수집합니다.
작업 리소스 표시
프록시가 경고/오버 상태로 전환되는지 확인
작업 리소스 최대 표시
현재 사용량이 아닌 최대 사용량 확인
snmp 트랩 기록 표시
MemoryWarn/Over 이벤트가 있는지 확인
로그 표시
resmgr에서 보고한 경고/오류가 있는지 확인하십시오.
참고: 이 명령은 숨김/테스트 명령입니다. StarOs에서 테스트 모드를 활성화하고 시작하는 방법을 설명서를 참조하십시오.
이 명령은 서비스에 영향을 주지 않으며 프로덕션에서 실행할 수 있습니다.
show messenger procllet facility <name> instance <x> heap
프록시의 힙 사용량 확인
참고: 이 명령은 숨김/테스트 명령입니다. StarOs에서 테스트 모드를 활성화하고 시작하는 방법을 설명서를 참조하십시오.
이 명령은 서비스에 영향을 주지 않으며 프로덕션에서 실행할 수 있습니다.
show messenger procllet facility <name> instance <x> system heap
포함 프로세스에 대한 시스템 힙 정보 확인
팁: TAC에 서비스 요청을 보내기 전에 10분마다 CPU 관련 명령을 여러 번 출력하고 4번 출력하십시오.
파일 사용
OS 레벨의 실제 파일 제한은 StarOs의 파일 사용 제한보다 높게 설정됩니다.
작업 Diameter Proxy(diaproxy)의 경우, OS 레벨 제한은 8192입니다. 프로세스에서 최대 8192를 사용할 수 있지만 파일 제한은 StarOS에서 1000으로 설정됩니다.
asr5500:card3-cpu0# ps -ef | grep diam
root 5934 4555 0 Jul02 ? 00:07:52 diamproxy --readypipe 8 --limit_mode 8 --card_number 3 --cpu_number 0 --master_spc 3
asr5500:card3-cpu0# cat /proc/5934/limits | grep open
Max open files 8192 8192 files
[local]asr5500-2# show task resources facility diamproxy all
Friday July 11 10:05:54 JST 2014
task cputime memory files sessions
cpu facility inst used allc used alloc used allc used allc S status
----------------------- --------- ------------- --------- ------------- ------
3/0 diamproxy 2 0.3% 90% 22.83M 250.0M 216 1000 -- -- - good
8/0 diamproxy 1 0.4% 90% 22.71M 250.0M 69 1000 -- -- - good
CPU레벨 제한도 있으니 확인해 주시고 여유만 있으면 됩니다.
[local]ASR5500# show cpu info card 1 cpu 0
Card 1, CPU 0:
Status : Active, Kernel Running, Tasks Running
Load Average : 0.26, 0.39, 0.44 (1.78 max)
Total Memory : 32768M (16384M node-0, 16384M node-1)
Kernel Uptime : 3D 22H 11M
Last Reading:
CPU Usage All : 0.1% user, 0.3% sys, 0.0% io, 0.0% irq, 99.6% idle
Node 0 : 0.1% user, 0.3% sys, 0.0% io, 0.0% irq, 99.5% idle
Node 1 : 0.1% user, 0.2% sys, 0.0% io, 0.0% irq, 99.7% idle
Processes / Tasks : 185 processes / 29 tasks
Network : 0.326 kpps rx, 0.912 mbps rx, 0.208 kpps tx, 3.485 mbps tx
File Usage : 1792 open files, 3279141 available
Memory Usage : 1619M 4.9% used (1209M 7.4% node-0, 409M 2.5% node-1)
사용 가능한 값이 256 미만이 되면 다음 경고 메시지가 생성됩니다.
event 14516
user_resource_cpu_cpu_low_files(uint32 card, uint32 cpu, uint32 used, uint32 remain)
"The CPU %d/%d is running low on available open files. (%u used, %u remain)"
warning
software internal system critical-info