가상 크기는 높지만 RAM 및 GPU 메모리 사용량이 낮은 프로세스의 단점

가상 크기는 높지만 RAM 및 GPU 메모리 사용량이 낮은 프로세스의 단점

내 프로세스 중 일부가 내 컴퓨터에서 많은 가상 크기를 차지하고 있는 것으로 나타났습니다. 나이해하다프로세스의 가상 크기는 실제로 사용하는 메모리, 자체적으로 매핑되는 메모리(예: X 서버의 그래픽 카드 RAM), 매핑된 디스크의 파일(주로 공유 라이브러리)의 합계입니다. 프로세스가 공유하는 기타 메모리. 즉, 가상 크기는 프로그램이 현재 액세스할 수 있는 메모리 양을 나타냅니다.

가상 크기(~117GB)는 많이 차지하지만 RAM은 거의 차지하지 않는 프로세스를 실행하고 있습니다.

여기에 이미지 설명을 입력하세요.

GPU 메모리가 부족합니다.

여기에 이미지 설명을 입력하세요.

디스크 I/O 부족:

여기에 이미지 설명을 입력하세요.

가상 크기가 큰 프로세스(RAM, GPU 메모리 및 디스크 I/O가 낮음)로 인해 잠재적인 부작용이 있습니까? 다른 프로세스의 속도를 늦출 수 있나요? 컴퓨터에는 32GB RAM이 있습니다.

답변1

일반적으로 말해서 나쁜 영향이 있어서는 안 됩니다. 그러나 Linux에서는 기본적으로 허용합니다.과도한 메모리 사용량. 이는 프로세스가 메모리를 요청하면 Linux가 "확실함"이라고 말할 것임을 의미합니다. 그런 다음 메모리(스왑 공간 포함)가 부족해지면 Linux는 메모리를 확보하기 위해 프로세스를 종료하기 시작합니다.

따라서 프로세스에 117GB가 할당되었지만 대부분을 사용하지 않는 경우 117GB의 가상 메모리가 표시됩니다. 그러나 프로세스가 갑자기 117GB를 채우려고 결정하면 Linux는 메모리가 부족해 종료됩니다.어쩌면 다른 프로세스가 있을 수도 있습니다.(여기서 나쁜 영향이 발생합니다.)

Linux 커널은 허용되는 오버커밋 양을 구성할 수 있습니다. 이를 수행하는 과정은 해당 링크에 설명되어 있지만 모든 것을 한 곳에 보관하기 위해 여기에도 설명하겠습니다.

Linux 커널 ≥ 2.5.30에는 이를 규제하는 두 개의 proc 파일이 있습니다. 우선, 가 있습니다 /proc/sys/vm/overcommit_memory. 여기에는 세 가지 값이 있을 수 있습니다.

  • 0: 커널이 얼마나 많은 오버커밋이 허용되는지 결정하도록 합니다.
  • 1:무제한 초과 구독 허용
  • 2: 를 기준으로 과잉 커밋을 허용합니다 /proc/sys/vm/overcommitment_ratio.

또 다른 proc 파일은 /proc/sys/overcommitment_ratio다른 파일이 로 설정된 경우 허용되는 메모리 오버커밋 비율을 나타냅니다 2. overcommit_memory로 설정 하면 Linux는 모든 스왑 공간과 RAM의 %를 커밋하도록 2허용합니다 .overcommitment_ratio

관련 정보