pcmanfm을 사용하여 대용량 파일을 복사할 때 "메모리 부족" 오류 발생

pcmanfm을 사용하여 대용량 파일을 복사할 때 "메모리 부족" 오류 발생

lxde이것은 데비안 기반 배포판을 실행 하고 pcmanfm파일 관리자로 사용되는 오래된 컴퓨터입니다 . pcmanfm복사를 제외하고는 일반적으로 잘 작동합니다.매우대용량 파일(예: *.VOB압축되지 않은 DVD에 있는 파일) 글쎄, 사실 난 그게 내 능력을 사용할 거라 생각했어교환(3.5GB로 설정) 불행히도 스왑은 항상 약을 보여줍니다.12MB.
이것도 이렇다pcmanfm 소홀히 하다파일을 교환하시겠습니까? 불행하게도 이 기계의 RAM 모듈 중 하나에 오류가 있어서 이를 제거해야 했습니다. 따라서 현재 물리적 RAM은 1GB밖에 남지 않았습니다. :(. 하지만 스왑 문제가 올바르게 해결되면 문제가 되지 않습니다!

다음의 예 syslog:

[40398.719466] Out of memory: Kill process 21573 (compiz) score 2 or sacrifice child

대신, 다음 번에 무엇을 얻게 되는지에 따라(보통 등 compiz) 커널에 의해 가장 많은 리소스가 필요한 프로세스가 우연히 종료됩니다.dbus

pcmanfm에게 스왑 공간을 사용하도록 "알리는" 방법이 있습니까?

답변1

보다 일반적인 질문에 답변해 드리겠습니다.

스왑 공간을 사용하도록 프로세스에 "알리는" 방법이 있습니까?

리눅스 커널은 다음을 제공합니다./프로세스/시스템인터페이스 메모리 페이지(익명만 해당!)가 디스크로 얼마나 적극적으로 스왑되는지를 정의하는 속성입니다.

이것가상 머신 전환 가능성속성은 시스템별로 전역적으로 적용되지만 프로세스별로는 적용되지 않습니다. 이 값을 설정낮은가능한 한 교환을 피하고 싶다면. 시스템 프로세스가 오랫동안 휴면 상태인 경우 이 값을 늘려 공격적인 스와핑 동작을 통해 이점을 얻을 수 있습니다. 이 전역 속성은 도구로 사용 가능 하며 도구 /proc/sys/vm/swappinesssysctl조정할 수 있습니다 .

커널 2.6.24의 도입으로 cgroups더욱 세분화될 수 있습니다. 메모리하위 시스템. 사용 가능한 cgroup 계층 구조가 있다고 가정메모리서브시스템( /cgroups/mem)과 cgroup( /cgroups/mem/your_cgroup)이 연결되고 작업/프로세스( )가 정의됩니다 /cgroups/mem/your_cgroup/tasks. 그러면 바꿀 수 있어요교환성이 작업 세트는 다음과 같이 작동합니다.

cd /cgroups/mem/your_cgroup
echo 90 > memory.swappiness

이 cgroup에 프로세스를 자동으로 할당하려면 어떻게 해야 합니까? /etc/cgrules.conf파일에 간단한 규칙을 만들 겠습니다.

your_user:pcmanfm   memory  /your_cgroup

cgred그런 다음 이 파일은 자동 프로세스 분류를 위해 cgroup 규칙 엔진 데몬(서비스)에서 사용됩니다 .

자세한 내용은 다음을 확인하세요.Linux 커널 cgroup 문서.

답변2

두 번째 모니터로 컴퓨터(노트북)를 부팅할 때 Lubuntu 14.04에서 동일한 문제가 발생했습니다.

해결책은 컴퓨터가 시작될 때 두 번째 모니터를 자동으로 끄는 것입니다(/home/user/.config/lxsession/Lubuntu의 자동 시작 파일에서). vga를 사용하고 있기 때문에 xrandr --output VGA1 --off를 사용합니다. 두 번째 프레젠테이션에는 모니터가 사용되었습니다.

그런 다음 bash 파일을 호출하는 데스크탑 파일을 실행하고(약간 과잉일 수도 있음) xrandr을 내가 원하는 방식으로 설정합니다.

중요한 점은 하나의 모니터(기본 모니터)를 먼저 사용한 다음 두 번째 모니터를 시작해야 한다는 것입니다. 이렇게 하면 데스크톱 이미지 파일이 올바르게 사용되며 내 pcmanfm CPU%는 결코 높아지지 않습니다.

관련 정보