AWS Beanstalk에서 단일 인스턴스 작업자를 실행 중입니다. 업무 일마다 한 번씩 프로세스를 실행하는 단일 컨테이너 Docker입니다. 대부분 프로세스는 S3에서 많은 수의 작은 파일을 동기화하고 분석합니다.Elastic Beanstalk 실행 1 주일 후 높은 CPU로드
설치가 약 1 주일 정도 잘 수행되고이 스크린 샷과 같이 시간이 지나면 CPU로드가 선형 적으로 증가하기 시작합니다.
CPU 부하가 내 스케줄 프로세스를 늦추고, 상당한 수준에서 유지됩니다. 동시에, 내 최고의 자원 추적 컨테이너 내부에서 실행 (privileged 도커 모드를 활성화하기 위해) :
echo "%CPU %MEM ARGS $(date)" && ps -e -o pcpu,pmem,args --sort=pcpu | cut -d" " -f1-5 | tail
단지 내 일상적인 프로세스가 실행되는 동안 변경 거의없는 CPU 부하를 (보여, 겉으로는 정확하게 그 당시의 시스템 부하를 반영).
이 "백그라운드"시스템로드의 근원을 놓치지 않은 점은 무엇입니까? 아무도 비슷한 동작을 보았는지 궁금하거나 실행중인 컨테이너 내부에서 추가 진단을 제안 할 수 있습니다.
지금까지 "백그라운드"로드를 제거하기 위해 매주 설정을 다시 시작했지만 각 다시 시작한 후 처음 실행 한 후 S3에서 1 백만개 이상의 작은 파일을 수집해야하기 때문에 차선책입니다 (이후 매일 실행하면 하루에 수천 개의 파일 만 추가됩니다.)
이상한 것은 CPU 부하가 증가하면서 내가 어떤 매주 프로세스를 실행하고 거의 제로에 가까운/아웃 숙박에 네트워크가 없다는 것입니다. S3에서 동기화 된 파일은 도커 호스트 인스턴스의 SSD 드라이브에 남아 있습니다. CPU로드가 어디서 발생하는지 진단하기 위해 쉘 스크립트에서 실행할 수있는 다른 명령 세트가 있습니까? 어떻게 든 시스템 리소스를 먹는 프로세스가 식별되어야합니다 ... – Pavel
나는 어떤 NIX 친구들과 이야기하고 일을 마치고 돌아올 것입니다. RL – Polymath
가장 좋은 제안은 'top'이었고 더 정교한 모니터링 도구의 평가판 라이센스를 받았습니다. 상단이 좋지만, 너무 많이 얻을 것이라고 확신하지 못합니다. RL – Polymath