AWS에는 8개의 작업자 스레드가 있는 Linux 기반 클러스터가 있습니다.
운영 체제 버전(/proc/version에서 가져옴)은 다음과 같습니다.
Linux 버전 5.4.0-1029-aws (buildd@lcy01-amd64-021) (gcc 버전 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #30~18.04.1-Ubuntu SMP 10월 20일 화요일 11 : 2020년 09:25 UTC
작업자 ID 5가 최근 추가되었으며 우리가 보고 있는 문제는 작업자에 대한 쓰기 급증으로 인해 디스크 사용률이 높을 때 작업자의 데이터 디렉터리(/dev/nvme1n1p1)에 마운트된 디스크가 성능 저하를 보인다는 것입니다. sec 및 wMB/sec의 경우 이 작업자 스레드는 다른 7개의 작업자 스레드에 비해 훨씬 느립니다(이 에이전트의 IOPS 및 처리량이 약 40% 적음).
이 표의 데이터는 피크 시간 동안 동시에 시작하여 3시간 후에 끝나는 모든 에이전트에서 iostat -x를 실행하여 가져온 것입니다. 클러스터는 초당 약 2M개의 메시지를 처리합니다.
또 다른 이상한 동작은 ID 7의 에이전트가 다른 에이전트에 비해 버스트 쓰기 중 약 40% 더 높은 iops 및 처리량을 갖는다는 것입니다.
작업자 스레드 유형은 i3en.3xlarge이며 1개의 NVME SSD 7.5TB가 장착되어 있습니다.
작업 ID 5의 성능 저하(또는 에이전트 ID 7의 성능 저하) 원인이 무엇인지 아시나요?
이 문제로 인해 작업자 프로세스 ID 5가 높은 iowait 상태가 되고 일부 소비자 읽기가 지연에 멈춰 디스크에서 읽기를 수행하면 작업자 프로세스 ID 5에서 iowait가 약 70까지 올라가기 때문에 쓰기 작업이 많은 기간 동안 이 클러스터의 소비자가 지연됩니다. % 및 모든 소비자가 지연되기 시작하고 생산자도 브로커에서 허용되지 않는 버퍼링된 메시지로 인해 OOM을 경험하게 됩니다.