높은 스왑 환경을 위한 커널 미세 조정

높은 스왑 환경을 위한 커널 미세 조정

저는 8GB RAM Dell XPS13 9343을 소유하고 있습니다. RAM 용량이 이 컴퓨터의 가장 큰 문제입니다. CPU가 더 많은 RAM을 지원함에도 불구하고 펌웨어 수정으로 더 큰 RAM을 재납땜하는 것도 메인보드 설계로 인해 옵션이 아닙니다. 그래서 이 컴퓨터를 여전히 유용하게 만들기 위해 M.2 SATA 디스크를 더 빠른 M.2 NVMe 디스크로 교체하고 2개의 추가 스왑 파일을 추가했습니다.

인터넷 탐색을 위한 표준 구성은 8GM RAM + 8GM 스왑 파티션이고, 필요에 따라 ext4/(루트)에 두 개의 추가 스왑 파일이 있습니다. 이는 총 32GB 스왑을 포함한다는 점을 언급할 가치가 있습니다. 암호화된 LUKS + LVM에서 이는 컴퓨터가 꺼질 때 RAM이 노출되는 것을 원하지 않기 때문에 의도적인 것입니다.

이 설정은 일반적으로 작동합니다. 많은 양의 메모리(일반적으로 Java + 브라우저 기반 콘텐츠, 때로는 단일 가상 머신)를 활성화하면 두 스왑 파일을 모두 켜고 필요한 모든 앱이 시작된 후 총 로드는 20을 초과하지 않습니다. % CPU 및 총 디스크 I/O는 20M/s를 초과하지 않습니다.

이제 질문 부분: 가끔 전체 솔루션 - 일주일에 한 번, 일주일에 몇 번씩 메모리 집약적인 작업을 사용하면 불안정하거나 신뢰할 수 없게 됩니다. 때로는 재부팅됩니다. 일부 하드웨어 문제로 인한 커널 패닉인지 확실하지 않지만 그래픽 카드 버퍼가 덜 손상됩니다. 1초 이내에 컴퓨터가 다시 시작됩니다. Dell의 펌웨어 덕분에 UEFI가 NVMe 디스크를 인식하지 못하고 부팅 단계에서만 rEFInd를 USB에 넣어야 하기 때문에 kdump-tools를 사용하여 커널 패닉을 디버깅할 수 없습니다. 때때로 CPU 로드가 증가하고 백그라운드에서 음악을 재생할 때 X11과 함께 끊김 현상이 발생하기 시작합니다.

괜찮은 하드웨어가 아니기 때문에 일부 부분이 예상되지만 이 로드가 오디오 버퍼에 영향을 미칠 수 있다는 걱정이 되므로 이를 보다 안정적으로 만드는 방법을 찾고 있습니다. IMHO 로드는 해당 시스템을 만들지 않고 사용자 공간 앱에만 영향을 주어야 합니다. 광범위한 문제.

나는 Ubuntu를 사용하고 있으며 대기 시간이 짧은 커널이 있다는 것을 알고 있지만 파일 설명자의 양이나 일부 할당과 관련된 것과 같이 런타임에 앞뒤로 전환할 수 있는 가벼운 솔루션을 먼저 테스트할 수 있는지 궁금합니다. cgroup을 통한 우선순위?

답변1

스왑은 항상 매우 비효율적이며 이에 대해 할 수 있는 일이 많지 않습니다. 시도해 볼 수 있는 두 가지 옵션이 있습니다.즈람그리고zswap. 둘 다 RAM을 사용하여 스왑을 좀 더 유용하게 만듭니다.

Zram을 사용하면 메모리에서 스왑을 생성할 수 있습니다. 스왑으로 사용할 새 블록 장치를 생성하지만 여기에 저장된 페이지는 압축되어 약 50%의 압축률을 달성할 수 있습니다(따라서 zram에서는 2GiB 스왑). 디스크의 4GiB 스왑과 대략 동일하며 훨씬 빠릅니다.) 여러 개의 스왑 장치를 가질 수 있으므로 zram에서 더 작은 스왑을 가질 수 있으며 디스크에서 더 높은 우선 순위와 더 큰 스왑을 가질 수 있습니다.

Zswap은 zram과 유사하지만 디스크의 스왑을 위한 캐시일 뿐입니다. zswap에 저장된 페이지는 zswap이 용량에 도달할 때만 압축되어 디스크에 기록됩니다.

답변2

그렇게 많은 SWAP 공간이 필요하다면 더 나은 PC를 구입하는 것이 좋습니다.

SSD 디스크는 성능 저하가 더 빨리 발생하기 때문에 SWAP으로 사용되는 것을 절대 좋아하지 않습니다.

문제에 대해 말하면 설치 및 활성화 earlyoom- 배포판에 따라 다르므로 어떻게 할 수 있는지 말할 수 없습니다.

답변3

"무거운" 애플리케이션을 위한 RAM이 부족하므로 더 가벼운 배포판이 필요합니다.

답변4

참고로 제 경우에는 시스템이 최종적으로 로드되고 속도가 느려져 더 이상 충돌이 발생하지 않더라도 최신 커널로 업그레이드한 후 Linux/ubuntu 커널의 일부 버그로 인해 이러한 문제가 발생했습니다. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1906107

관련 정보