pmap이 OOM 프로세스에서 중단됩니다.

pmap이 OOM 프로세스에서 중단됩니다.

검색해 보았지만 pmap에는 별로 없는 것 같아서 여기에 갑니다.

문제 해결을 위해 개발자에게 보낼 수 있는 데이터를 수집하기 위해 WebLogic 인스턴스와 함께 작동하는 스크립트가 있습니다. 지정된 인스턴스 PID의 pmap은 데이터 수집에 포함되지만 인스턴스가 스레드 차단, 대규모 OC를 발견하거나 실패 상태에 있을 때 pmap이 중단됩니다.

우리가 사용하고 있는 서버에는 시간 초과가 설치되어 있지 않기 때문에(설치할 수도 없음) pmap 프로세스를 45초 이하로 실행하고 실행되면 종료시키는 조건을 작성해 보았으나 실패하지 않았습니다. 영향을 받은 인스턴스의 후드 아래에 pmap이 여전히 걸려 있기 때문에 작동하는 것 같습니다.

코드는 다음과 같습니다.

echo "Running pmap for a maximum of 45 seconds..."
pmap -x $1 > /tmp/pmapdump.txt &
pmapPID=$!
sleep 10
 pmapRunning=$(pgrep -fl "${pmapPID}" |head -1 |awk '{print $1}')
if [ "${pmapRunning}" != "" ]; then
  sleep 30
  echo "The pmap appears to be stuck. This typically happens if the instance is in a failed state or has stuck threads."
  echo "Killing the pmap and moving on with the rest of the script..."
  kill -9 "${pmapPID}"
else
  :
fi

이것은 메인 스크립트에 의해 호출되며 이 스크립트를 생성하기로 결정하기 전처럼 프로세스를 종료하고 정지하지 않는 것을 제외하고는 올바르게 실행되는 것 같습니다.

이 문제로 어려움을 겪기 시작하면 어떤 도움이나 조언이라도 대단히 감사하겠습니다.

관련 정보