kswapd를 사용중인 프로세스를 어떻게 알 수 있습니까?


23

kswapd가 100 % CPU를 사용하는 것을 볼 수 있습니다 ... kswapd가 어떤 프로세스를 대신하여 사용되는지 어떻게 알 수 있습니까?


1
음. kswapd가 프로세스입니다. 커널을 대신하여 실행됩니다.
mailq

PT

2
@ mailq ... 예, 그러나 일부 사용자 공간의 메모리를 바꾸지 않습니까? 그렇다면 어떤 프로세스의 메모리가 그 순간에 스왑되고 있는지 어떻게 알 수 있습니까?
Deshawn

답변:


18

kswapd는 모든 프로세스에 물리적으로 사용 가능한 것보다 많은 메모리 요구에 응답하여 스왑 공간을 관리 합니다.

프로세스에 구애받지 않고 액세스 할 수있는 페이지와시기에만 관심이 있습니다 (물론 이것보다 더 복잡하지만 일을 단순하게 유지하려면 이러한 방식으로 볼 수도 있습니다).

따라서 실제 질문은 "kswapd가 항상 페이징해야하는 메모리에 가장 많은 부담이있는 프로세스"입니다.

'top'을 사용하고 메모리 사용 정렬 모드로 전환하면 가장 쉽게 대답 할 수 있습니다.


감사!. 터치 한 실제 페이지가 실제 페이지를 초과하거나 프로세스가 메모리를 할당했거나 SHM 영역을 매핑했지만 사용하지 않은 경우에만 skswapd 킥이 발생합니까? 즉, 사용 가능한 실제 메모리가 있지만 일부 프로세스가 유휴 상태 인 경우에도 문제가 발생하거나 예약 유지 및 예약 교환을 수행하거나 수행하지 않는 경우에만 해당됩니까?
Deshawn

알다시피, kswapd는 일반적인 상황에서 필요하지 않은 모든 페이지를 메인 메모리에서 제거합니다. 사용 가능한 페이지는 캐싱 또는 다른 프로세스에 사용될 수 있기 때문입니다. 즉, 다른 프로세스의 메모리 요청에 응답하여 페이지 이동 속도가 느려지는 것보다 사용하지 않은 오래된 페이지를 디스크에 이미있는 것이 좋습니다.
Paul

머신이 많은 스왑 공간을 사용해야하더라도 100 % CPU를 사용해서는 안됩니다. 이상하다.
Zaz

@Zaz 스와핑을 위해 CPU 처리 능력을 사용하는 것은 그리 많지 않습니다. IOWAIT로 인해 CPU가 100 % 사용되었습니다. 메모리를 디스크에서 교체해야 할 때마다 CPU는 CPU와 함께 기다려야합니다. IOWAIT이며 평균적으로 다른 작업을 수행하지 않습니다.
Paul

@Paul : 확실합니까? topIO 대기에 시간이 소비되지 않으며 시스템에서 거의 100 %의 시간이 소비되고 있다고 알려줍니다. 추가 정보 : 스왑 사용시 kswapd는 종종 100 % CPU를 사용합니다
Zaz

9

당신은 그것을 스크립트 할 수 있습니다 ..하지만 당신은 또한 상단을 통해 그것을 할 수 있습니다

실행 상단은 보도 O는 다음 페이지 다음 입력

이제 모든 프로세스가 스왑 사용량별로 정렬되어 있으며이를 사용중인 프로세스를 확인할 수 있습니다


2
O는 나에게 필터 옵션을 불러 온다. p를 누른 다음 엔터는 " 'include'필터 구분 기호가 없다"
Shadow

@Shadow 같은 문제, 대체 명령 unix.stackexchange.com/questions/128953/…
Björn

8

Ubuntu 15.10 이상을 사용 하는 경우, 특히 시스템에 스왑 파티션이없는 가상 머신 (예 : AWS EC2) 인 경우 버그 의 결과 일 수 있습니다 . 다른 배포판에 문제 있지만, 글을 쓰는 시점에 동일한 수정 프로그램이 보편적으로 작동하는지는 확실하지 않습니다.

임시 해결 방법 :

sudo ln -s /dev/null /etc/udev/rules.d/40-vm-hotadd.rules
sudo reboot

그러면 Xen 및 Hyper-V 가상 시스템에 대한 RAM / CPU 핫 애드 기능이 비활성화됩니다.


쿠분투 16.10의 시스템 에서이 문제가 발생하지 않았으며 이미 해결 방법이 이미 활성화되어 있습니다.
jeteon

@jeteon이 문제를 일으킬 수있는 여러 가지 문제가 있습니다. 이것은 특히 일반적인 것입니다.
Zenexer

네. 나는 echo 3 > /proc/sys/vm/drop_caches그것이 일어나기 시작하면 그것을 완화시키는 것을 발견했다 . 나는 현재 cron 작업에 대해 선제 적으로 명령을 내 렸으며 컴퓨터에서 멀리 떨어져있을 때 최소한 OOM 학살의 기간을 돕거나 제한하는 것처럼 보인다.
jeteon

6

kswapd어딘가에 버그가있는 것 같습니다 . 기존 커널에만 있습니다.

거의 매일은 kswapd가 더 큰 클러스터 (비 현재 커널이있는)의 일부 시스템에서 임의로 작동합니다. kswapd 프로세스 모두에서 100 % CPU. 다른 실행중인 프로세스 (ssh 셸 제외), 충분한 여유 RAM (700MB 이상) 및 사용 된 SWAP이 없습니다. 스왑 인도없고 스왑 아웃도 없습니다.

아직 특정 기계가 명중되고 다른 기계가 명중되지 않은 이유는 설명되어 있지 않습니다. 일반적으로 짧은 시간 내에 두 대 이상의 머신을 공격하기 때문에 완전히 임의적이지 않은 것 같습니다. 유휴 상태의 기계와 고압 상태의 기계는 효과에 덜 영향을받는 것처럼 보입니다. 따라서 작업 부하로 무언가를 수행해야하며 기계가 유휴 상태이거나 사용량이 많지 않은 경우에만 적중합니다.

문제가 발생하면 더 이상 도움이되지 않습니다. 모든 파일 시스템을 마운트 해제하는 것은 불가능합니다. kswapd여전히 100 % CPU를 유지합니다. SMP 커널에서 스핀 락 경쟁이 의심되지만 잘못되었을 수도 있습니다.

아마도 내 답변 serverfault.com/questions/316995/#493257 참조

노트:

  • 종료 프로세스가 어딘가에 중단되기 때문에 영향을받는 시스템을 재부팅하는 데 실패하는 경우가 종종 있습니다.
  • 인터넷에 직접 연결되어 있지 않습니다. 외국 원인은 거의 없습니다.
  • 우리는 영향을받지 않은 기계를 가지고 있기 때문에로드 관점에서 기계가 처리하는 작업 유형에 의존하는 것 같습니다.
  • 죄송합니다. 우리가하는 일과 이유에 대해 더 구체적으로 말할 수는 없습니다.
  • 그렇습니다, 나는 추측하고있다. 오늘날 매우 수수께끼 같은 효과가 있기 때문에

이것은 역사적입니다. RedHat가 확인 : NFS 클라이언트와 함께 커널 2.6.18-194.el5의 문제였습니다. 2012 년에 이미 수정되었습니다. 좀 더 자세한 내용은 본문의 링크 된 답변을 참조하십시오. 오늘 이걸 칠 경우 다른 원인 일 수 있습니다.
티노

1
일부 지역에서는 여전히 문제가됩니다. 나는 이러한 팝업의 톤을 보았습니다. 여기 , 그리고 여기 것은 몇 가지 예입니다.
trueCamelType
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.