USB 장치(카메라, 하드 드라이브, 메모리 카드)에서 파일을 복사할 때 시스템이 매우 느려집니다. 예를 들어 창을 닫고 싶을 때 마우스를 움직이면 마우스 커서가 움직이는 데 약 2초 이상이 걸립니다. 마지막으로 x 위로 커서를 이동하고 클릭하면 10초 이상 아무 일도 일어나지 않습니다. 모든 데스크탑 효과를 비활성화한 상태에서 이 작업을 시도했지만 문제가 지속됩니다.
소프트웨어: Linux Mint 9 KDE 하드웨어:
- ASUS SLI 마더보드
- 엔비디아 6600 GPU
- 2GB RAM
- 2GB 스왑
- AMD 애슬록스 X2 @ 3800+
나에게 있어 이 하드웨어는 USB를 사용하여 파일을 복사할 때까지 이 소프트웨어를 실행하는 데 아무런 문제가 없어야 합니다. 이 문제에 대한 해결책을 어디서부터 찾아야 합니까? 그래픽 드라이버가 문제의 일부일 수도 있다고 생각하지만 확실하지 않습니다.
답변1
하나 있는 것 같은데Linux 메모리 관리의 대형 페이지 문제. 이런 일은 거의 발생하지 않지만, 여러분이 관찰한 것처럼 들립니다.
이유
이것은 이 게시물에서 일어난 일에 대한 매우 단순화된 설명입니다.
운이 좋지 않으면 메모리 액세스를 실행하는 동안 프로세스가 중단됩니다. 이는 투명 거대 페이지가 활성화되면 메모리 액세스가 동기식 압축(주 메모리 조각 모음)을 트리거할 수 있기 때문입니다. 동기식은 압축 전에 메모리 액세스가 완료되지 않음을 의미합니다. 이것은 그 자체로는 나쁜 것이 아닙니다. 그러나 쓰기 저장(예: USB에 버퍼링된 데이터 쓰기)이 동시에 발생하면 압축은 쓰기 저장이 완료될 때까지 기다리지 않을 수 있습니다.
따라서 모든 프로세스는 느린 장치가 버퍼링된 데이터 쓰기를 완료할 때까지 기다리게 될 수 있습니다.
치유법
OP와 마찬가지로 주 메모리를 업그레이드하면 문제 발생을 지연시키는 데 도움이 될 수 있습니다. 그러나 이것이 선택 사항이라고 생각하지 않는 사람들에게는 두 가지 확실한 해결책이 있습니다. 두 가지 모두 커널 재컴파일을 포함합니다.
답변2
이것은 내 질문과 유사하게 들립니다(답변이 문제를 지적한 경우).
하지만 이론은 완전히 다르며 제가 사용한 솔루션은 귀하의 솔루션과 아무 관련이 없지만 훌륭하게 작동합니다.
저는 rsync를 사용하고 있으므로 --drop-cache 옵션만 사용하면 됩니다. (이렇게 하면 부작용으로 복사 속도가 느려집니다.)
답변3
실제로 작동하는 유일한 방법은 다음과 같습니다. Gnome, Nautilus의 USB로 파일 복사가 100% 또는 거의 100% 근처에서 중지됩니다.
고급 사용자 트릭을 시도하려면 /proc/sys/vm/dirty_bytes를 15728640(15MB)과 같은 값으로 설정하여 Linux에서 사용하는 버퍼 크기를 줄일 수 있습니다. 이는 애플리케이션이 미리 15MB 이상의 실제 진행 상황을 확보할 수 없음을 의미합니다.
한 가지 부작용은 이 설정으로 인해 컴퓨터의 데이터 쓰기 처리량이 낮아질 수 있다는 것입니다. 그러나 일반적으로 많은 양의 데이터를 쓸 때보다는 대량의 데이터를 쓸 때 프로그램이 오랫동안 실행되는 것을 볼 수 있습니다. 이는 도움이 됩니다. 데이터에 대해 혼란스러울 때. 프로그램은 작업을 마친 것처럼 보이지만 커널이 실제 작업을 수행할 때 시스템이 심하게 지연됩니다. dirty_bytes를 매우 작은 값으로 설정하면 사용 가능한 메모리가 부족하거나 갑자기 많은 양의 데이터를 쓰는 프로그램을 실행할 때 시스템이 응답하지 않는 것을 방지하는 데 도움이 될 수 있습니다.
하지만 너무 작게 설정하지 마세요! 커널이 1/4초 이내에 버퍼를 일반 하드 드라이브로 플러시할 수 있다는 대략적인 추정치로 15MB를 사용했습니다. 내 시스템이 "느린" 느낌을 받지 않게 해줍니다.