1

AWS Beanstalk에서 단일 인스턴스 작업자를 실행 중입니다. 업무 일마다 한 번씩 프로세스를 실행하는 단일 컨테이너 Docker입니다. 대부분 프로세스는 S3에서 많은 수의 작은 파일을 동기화하고 분석합니다.Elastic Beanstalk 실행 1 주일 후 높은 CPU로드

설치가 약 1 주일 정도 잘 수행되고이 스크린 샷과 같이 시간이 지나면 CPU로드가 선형 적으로 증가하기 시작합니다.

AWS Elastic Beanstalk CPU load chart

CPU 부하가 내 스케줄 프로세스를 늦추고, 상당한 수준에서 유지됩니다. 동시에, 내 최고의 자원 추적 컨테이너 내부에서 실행 (privileged 도커 모드를 활성화하기 위해) :

echo "%CPU %MEM ARGS $(date)" && ps -e -o pcpu,pmem,args --sort=pcpu | cut -d" " -f1-5 | tail 

단지 내 일상적인 프로세스가 실행되는 동안 변경 거의없는 CPU 부하를 (보여, 겉으로는 정확하게 그 당시의 시스템 부하를 반영).

이 "백그라운드"시스템로드의 근원을 놓치지 않은 점은 무엇입니까? 아무도 비슷한 동작을 보았는지 궁금하거나 실행중인 컨테이너 내부에서 추가 진단을 제안 할 수 있습니다.

지금까지 "백그라운드"로드를 제거하기 위해 매주 설정을 다시 시작했지만 각 다시 시작한 후 처음 실행 한 후 S3에서 1 백만개 이상의 작은 파일을 수집해야하기 때문에 차선책입니다 (이후 매일 실행하면 하루에 수천 개의 파일 만 추가됩니다.)

답변

0

프로필이 약간 이상합니다. 특히 그것은 선형 성장입니다. 거의 무언가가 누적되어 점진적으로 처리하는 데 오래 걸립니다. 특정 문제를 지적하기에 충분한 정보가 없습니다. 확인할 수있는 몇 가지 : 의도적으로 또는 캐시 또는 전송 폴더에 있는지

  • 당신은 어디서나 파일을 수집하고 있습니까? 시스템이 백그라운드 프로세스 (AV, 인덱스, 조각 모음, 중복 제거 등)를 실행하고 "많은 수의 작은 파일"이 누적되어 페이징되거나 비효율적으로 처리되어야하는 무언가가 될 수 있습니다.

  • 프로세스의 어느 부분에도 주간 명명 규칙 또는 집 유지 프로세스가 사용됩니까? 일주일이 지났을 때 갈등을 겪거나 일과 짐을 축적 할 수 있습니다. 즉 두 번째 주가 실제로 두 번째 주 데이터 인 첫 번째 &을 처리하고 있지만 완료하지는 않으므로 다음 날이 점차 악화됩니다. 부적절한 버블 정렬 프로세스가 완료되지 않았던 부분을 보았습니다. (데이터가 느리지 만 꾸준히 유입되어 완료 조건에 도달하지 못해 지속적으로 리셋되었습니다.) 어레이의 크기가 커짐에 따라 프로세스 요구가 점차 커졌습니다.

  • 주간 롤오버주기에 일부 로깅이 있습니까?

  • 추세에 이어 다른 주요 성능 메트릭이 있습니까? (네트워크, 디스크 IO, 메모리, 페이징 등)

  • 가양 성일 경우 고려하십시오. 높은 CPU 인 경우 CPU 동작, 캐시 사용, 디스크 IO, S3 전송 통계/로깅을 미러링하는 다른 메트릭이 있어야합니다.

RL

+0

이상한 것은 CPU 부하가 증가하면서 내가 어떤 매주 프로세스를 실행하고 거의 제로에 가까운/아웃 숙박에 네트워크가 없다는 것입니다. S3에서 동기화 된 파일은 도커 호스트 인스턴스의 SSD 드라이브에 남아 있습니다. CPU로드가 어디서 발생하는지 진단하기 위해 쉘 스크립트에서 실행할 수있는 다른 명령 세트가 있습니까? 어떻게 든 시스템 리소스를 먹는 프로세스가 식별되어야합니다 ... – Pavel

+0

나는 어떤 NIX 친구들과 이야기하고 일을 마치고 돌아올 것입니다. RL – Polymath

+0

가장 좋은 제안은 'top'이었고 더 정교한 모니터링 도구의 평가판 라이센스를 받았습니다. 상단이 좋지만, 너무 많이 얻을 것이라고 확신하지 못합니다. RL – Polymath