로드 평균이 최고조에 달한 프로세스를 확인하세요.

로드 평균이 최고조에 달한 프로세스를 확인하세요.

밤에 내 시스템의 로드 평균이 더 높은 원인을 찾으려고 시도하는 동안(logrotate와는 아무 관련이 없는 것으로 보임) 특정 간격으로 원시 파일을 쓰는 소프트웨어를 설치했습니다. 파일을 읽는 동안 프로세스 목록이 가만히 있는 것 같습니다. 어떻게든 샘플 사이를 오가며 눈에 띄는 항목을 확인하고 추가로 열(예: CPU 사용량)별로 정렬할 수 있습니까?

답변1

두 번째 질문과 관련하여 기본적으로 인쇄된 목록은 atopCPU 사용량을 기준으로 정렬됩니다. 상주 메모리 소비와 같은 다른 매개변수를 기준으로 정렬하려면 이렇게 하면 됩니다( man atop대화형 및 원시 파일 모드의 작동 방식을 알려줌).

첫 번째 질문과 관련하여 다음 작은 AWK 스크립트가 도움이 될 수 있습니다.

BEGIN {
  printline = "false"
}
{
   if (printline == "true") { print($0); printline = "false" }
   if ($1 == "PID") { printline = "true" }
}

이것을 실행 awk -f myScript.awk logFromAtop.log하면 각 간격의 맨 위 행이 표시되며 눈에 띄는 몇 행을 쉽게 볼 수 있습니다. (스크립트는 단순히 PID로 시작하는 줄을 찾아 다음 줄을 인쇄합니다.)

atop 버전에 따라 런타임 플래그를 기반으로 ASCII 또는 바이너리 원시 파일을 제공할 수 있습니다. 후자의 경우 atop자체적인 ASCII 버전을 얻을 수 있습니다(예: atop -r binary.raw > logFromAtop.log.

답변2

CPU 사용률을 보면 어떤 프로세스가 높은 평균 로드를 유발하는지 알 수 없습니다. 로드 평균은 프로세스가 실행되는 시간(R) 또는 I/O를 기다리는 시간(D)에 따라 달라집니다. 따라서 사용해야 하는 실제 옵션은 다음과 같습니다 s.

s 일정 특성을 표시합니다.

80 위치의 창 너비를 사용하면 각 프로세스에 대해 다음 필드가 표시됩니다: process-id,"실행 중" 상태의 스레드 수(R), "중단 가능 절전" 상태의 스레드 수(S), "무중단 절전" 상태의 스레드 수(D), 스케줄링 전략(일반 시간 공유, 실시간 루프, 실시간 FIFO), 좋은 값, 우선 순위, 실시간 우선 순위, 현재 프로세서, 상태, 종료 코드, 상태, 선택한 리소스의 비율 및 프로세스 이름.

80개 이상의 직위를 사용할 수 있는 경우 추가 정보가 추가됩니다.

일정 특성을 표시하도록 구성을 변경하면 범인을 찾을 수 있습니다.

답변3

atop인수를 사용하여 실행 -r한 후 로그 파일을 실행합니다.

그런 다음 atop런타임 시 ctrl+를 사용 F하여 다음 페이지를 보거나 ctrl+를 사용 B하여 이전 페이지를 볼 수 있습니다.

관련 정보