모든 형태의 쓰기 버퍼링 및 쓰기 캐싱을 비활성화합니다.

모든 형태의 쓰기 버퍼링 및 쓰기 캐싱을 비활성화합니다.

최근에 내 시스템이 불안정한 이유는 Linux가 쓰기를 버퍼링하고 있기 때문이라는 사실을 발견했습니다. Linux는 모든 종류의 모든 장치에 대해 이 작업을 수행하며, 오버플로될 때 얼마나 많은 피해를 입는지는 상관하지 않으며 OOM이 거의 사망합니다. 그들 모두. 작업 과정.

사용자 공간 대신 ​​시스템 전체에서 이 기능을 비활성화하려면 어떻게 해야 합니까? 이로 인해 많은 문제가 발생하고 있으며 이제 이 문제가 해결되었으면 합니다.

CPU: Intel i7-3820QM
RAM: 4x8 GiB DDR3-1600
GPU 0: Intel HD Graphics 4000
GPU 1: nVidia Quadro K2000M 2 GB (No drivers are present, so it's effective irrelevant.)

커널을 컴파일해야 한다면 그렇게 할 수 있으므로 도움을 주시면 매우 감사하겠습니다.

답변1

예를 들어 /etc/sysctl.d/disable_dirty_cache.conf(이름은 으로 끝나기만 하면 임의적임 .conf) 생성하고 다시 시작합니다.

vm.dirty_background_bytes = 0
vm.dirty_bytes = 0

테스트되지 않았으며 값을 4096 이상으로 늘리지 않으면 작동할지 확실하지 않습니다. 이는 쓰기 성능을 완전히 파괴하고 파일 조각화를 심각하게 증가시킬 가능성이 있습니다. 쓰기 버퍼는 멀티태스킹 운영 체제에 매우 중요합니다.

OOM은 실제로 실행 중인 모든 프로세스를 종료합니다.

예를 들어 근본적인 문제를 해결할 수도 있습니다.

sudo apt update
sudo apt install earlyoom
sudo systemctl enable --now earlyoom

관련 정보