AWS IoT Greengrass V2의 Lambda가 곧 죽기 때문에 할당된 메모리를 추가했습니다
14071 단어 AWSRaspberry PiLambdagreengrasstech
전제 조건
발생 현상(스토리지 할당을 늘리는 계기)
라떼 파이 위에 람보를 올려놓고 조금 있으면 죽어
라떼파에 들어가서 일지
/greengrass/v2/logs
를 보면 status가 broken이에요.2021-12-22T05:26:32.793Z [INFO] (lambda-function-lifecycle) com.aws.greengrass.status.FleetStatusService: fss-status-update-published. Status update published to FSS. {serviceName=FleetStatusService, currentState=RUNNING}
2021-12-22T05:26:32.798Z [INFO] (pool-2-thread-30) com.aws.greengrass.lambdamanager.UserLambdaService: Shutdown initiated. {serviceInstance=0, serviceName=lambda-function, currentState=BROKEN}
2021-12-22T05:26:37.182Z [INFO] (pool-2-thread-29) com.aws.greengrass.lambdamanager.LambdaRequestHandler: get-work-item. Get work operation got interrupted. {arn=arn:aws:lambda:ap-northeast-1:000000000000:function:lambda-function:48}
2021-12-22T05:26:37.612Z [INFO] (pool-2-thread-30) com.aws.greengrass.lambdamanager.UserLambdaService: generic-service-shutdown. {serviceInstance=0, serviceName=lambda-function, currentState=BROKEN}
lambda 로그2021-12-22T05:26:36.268Z [INFO] (pool-2-thread-21) lambda-function: Caught SIGTERM. Stopping runtime.. {serviceInstance=0, serviceName=lambda-function, currentState=BROKEN}
2021-12-22T05:26:37.586Z [INFO] (pool-2-thread-21) lambda-function: Tearing down overlay tmpfs mounts. {serviceInstance=0, serviceName=lambda-function, currentState=BROKEN}
vmstat
,io의bi는 매우 크다.즉, SD 카드에 대한 읽기가 많이 발생# vmstat 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 1 1280 95244 172028 423852 0 0 8930 15 1238 2658 16 15 59 10 0
1 1 1280 95276 172036 423608 0 0 16782 126 1744 4032 15 20 44 22 0
1 1 1280 96324 172036 423480 0 0 18354 1 1560 3543 14 19 40 27 0
람바다 사망의 원인
Lambda가 사용할 수 있는 메모리가 부족합니다!!
Greengrass를 이동하는 JVM(Java 가상기)의 메모리도 부족합니다!!
대응 방법(스토리지 할당 증가 방법)
다음 두 가지가 필요합니다.
JVM 메모리 할당 증가 방법
디버그를 만들 때
aws.greengrass.Nucleus
구성 요소 설정에 다음 내용을 추가하십시오. (통합 설정 표시줄에 쓰기)128MB
입니다.숫자를 변경하면 변경할 수 있습니다.{ "jvmOptions": "-Xmx128m" }
주의
인용하다
Lambda 메모리 할당을 늘리는 방법
두 가지 방법이 있다.그 중 한 쪽에서 실시하세요.본질적으로 둘 다 같다.
Lambda 어셈블리를 제작할 때(버전을 제작할 때) 설정
용기 파라미터의 비망록 크기를 늘리면 됩니다
디버그 시 구성 요소 설정을 통해 비망록 크기 지정
디버그를 만들 때, Lambda 구성 요소 설정에 다음 내용을 추가하십시오. (통합 설정 표시줄에 쓰기)
96MB
입니다.{"containerParams": {"memorySize": 96000}}
기타
greengrass 디버그 로그를 발표하는 방법
aws.greengrass.Nucleus
구성 요소의 설정에 다음 내용을 추가하면 디버그 로그가 출력되기 때문에 조사에 진전이 있을 것입니다.결합 설정
{"logging": {"level": "DEBUG"}}
감상으로 불리는 불평
https://dev.classmethod.jp/articles/greengrass-v2-lambda-compoent-broken/
Reference
이 문제에 관하여(AWS IoT Greengrass V2의 Lambda가 곧 죽기 때문에 할당된 메모리를 추가했습니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/ibaraki/articles/351f648e719ed0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)