"vmstat"는 페이징 활동이 있음을 나타냅니다. 스와핑 프로세스를 식별하는 방법은 무엇입니까?

"vmstat"는 페이징 활동이 있음을 나타냅니다. 스와핑 프로세스를 식별하는 방법은 무엇입니까?

.ubuntu 를 사용하여 Ubuntu 16.04 노트북에서 페이징 활동을 볼 수 있는 시나리오가 있습니다 vmstat 1 100.

현재 로드의 크기로 인해 프로세스가 어느 정도 디스크로 스왑 아웃될 것으로 예상됩니다. 이는 괜찮습니다. 그러나 페이지 교환으로 이어지는 요인을 식별하고 싶습니다.항상(그림 참조 vmstat) 이는 메모리 할당이 향상될 수 있음을 나타낼 수 있기 때문입니다.

내 시스템 관리 기술은 약간 녹슬었지만 루트 셸에서는 편안합니다.

스왑 활동을 유발하는 프로세스를 식별하려면 어떤 명령을 사용해야 합니까?

답변1

성능 문제(예: 긴 CPU iowait 시간)의 경우 일반적으로 이러한 사항을 모니터링하는 것이 가장 좋습니다.시간이 지남에 따라사실 이후보다는 특히 단기 프로세스가 원인일 수 있는 경우 더욱 그렇습니다. Linux에서 대화형으로 사용할 수 있는 도구 중 하나는 다음과 같습니다.iotop(고유 링크) (다음 질문에 대한 답변도 참조하세요.디스크 I/O 추적에 대한 질문입니다.). 이 스크립트를 작성하거나(배치 모드) 대화식으로 실행할 수 있습니다 top. 예를 들어 커서 키를 사용하여 SWAPIN별로 정렬하거나 이 -o옵션을 사용하여 출력을 덜 복잡하게 만들 수 있습니다. Python ≥2.7이 필요하고 다양한 커널 구성 매개변수를 활성화해야 합니다( iotop's README또는 매뉴얼 페이지 참조).

/proclike 의 데이터를 사용하는 대신 다음을 사용하십시오 vmstat.iotoptaskstats, 이는네트워크 IPC커널에서 사용자 공간으로 직접 프로세스 통계를 효율적으로 제공합니다.

대부분의 Linux 버전에서 기본값은 "교환성"60으로 설정하면 시스템이 적당히 사용량이 많을 때 페이징 활동을 보는 것이 매우 정상입니다. 커널은 최근에 사용된 디스크 캐시 페이지를 지우는 대신 스왑을 위해 거의 사용되지 않는 프로세스 페이지를 선제적으로 작성합니다. (관련 매개변수가 있습니다. vfs_cache_pressure일부 캐싱 동작에 필요합니다. 조정될 수 있습니다.) 지속적인 페이징을 관찰하고 있다면 아마도 그 이상일 것입니다.

그렇지 않으면 교체 사용이 걱정된다면지금시간이 지남에 따라 커널 추적에서 프로세스별로 사용량을 교환합니다 /proc/PID/status. gawk(≥v4.0)을 사용하면 몇 가지 작업을 빠르게 수행 할 수 있습니다 .

gawk '/^Name:/{nm=$2} /^Pid:/{pid=$2} /^VmSwap:/{sw=$2} 
  ENDFILE{printf("%-24s %6i %6ikiB\n",nm,pid,sw)}' /proc/[0-9]*/status | 
sort -h -k 3

~에 따르면문서교체된 shmem(공유 메모리)은 여기에 포함되지 않지만, 이에 대해 신경 쓸 필요가 없기를 바랍니다.getswap.sh각본 : Eric Ljungström당신은 또한 그것을 사용할 수 있습니다, 더 고급 버전이 있습니다이 답변.

답변2

다음 명령을 시도해 보십시오:

 ps -eo pid,cmd,vsz

프로세스 ID, 실행된 명령 및 프로세스의 가상 메모리 크기(KiB)가 포함된 프로세스가 나열됩니다.

관련 정보