Linux matrix 5.15.2-xanmod1-1 #1 SMP Wed, 17 Nov 2021 02:36:25 +0000 x86_64 GNU/Linux
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sda
├─sda1 btrfs swap 477dd81e-6a88-4987-b830-47bea1ec1f5d 0 87% /swap
└─sda2 btrfs root 2067df62-8ff6-4b52-9814-e4d5d8cf1577 55.3G 48% /
zram0 [SWAP]
total used free shared buff/cache available
Mem: 1.8Gi 1.2Gi 111Mi 56Mi 557Mi 446Mi
Swap: 5.5Gi 1.6Gi 3.9Gi
vm.swappiness = 10
따라서 내 문제는 시스템에 부하가 걸릴 때, 즉 Firefox에 너무 많은 탭이 열려 있거나 vscode와 Firefox를 동시에 실행하면 시스템이 매우 느려진다는 것입니다.
그런데 RAM 사용량을 확인해 보니 75%에 머물고 그 이상으로 올라가지 않습니다. 따라서 사용되지 않은 RAM의 25%가 있습니다.
교체하기 전에 더 많은 메모리를 사용하게 하려면 어떻게 해야 합니까?
답변1
첫째, 속도 저하가 full 때문이라고 가정 RAM
하지만 이것이 반드시 근본 원인은 아닙니다. 이론적으로는 숫자가 많거나 I/O
CPU가 너무 많을 것으로 예상하는 등 속도 저하를 유발할 수 있는 다른 원인과 병목 현상이 있어야 합니다. processes
원인이 메모리라고 판단하기 전에 먼저 다른 원인을 배제해야 합니다. 다음과 같은 명령을 사용할 수 있습니다 vmstat
.
$ vmstat -w 1
procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu--------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 120951240 9412 8313416 0 0 0 2 0 0 0 0 100 0 0
0 0 0 120951248 9412 8313416 0 0 0 0 143 210 0 0 100 0 0
0 0 0 120950980 9412 8313416 0 0 0 20 116 238 0 0 100 0 0
0 0 0 120950980 9412 8313416 0 0 0 0 180 315 0 0 100 0 0
0 0 0 120951232 9412 8313416 0 0 0 0 145 285 0 0 100 0 0
( ) 또는 ( ) 섹션 아래에 상대적으로 높은 숫자가 표시되면 swap
시스템이 메모리 페이지를 교체하고 있음을 나타낼 수 있습니다. 값이 낮으면 속도가 느려지는 데 다른 이유가 있을 수 있습니다. , 또는 ).si
swap in
so
swap out
RAM
swap
procs
io
cpu
swap in/out
에 더 높은 값이 있다고 가정하면 vmstat
병목 현상이 실제로 RAM
채워지고 있음을 나타냅니다.
swappiness
에서 나온 설명입니다리눅스 커널 문서:
교환성
이 컨트롤은 커널이 메모리 페이지를 얼마나 적극적으로 교환하는지 정의합니다. 값이 높을수록 공격성이 증가하고, 값이 낮을수록 교환량이 감소합니다. 값이 0이면 사용 가능한 페이지 및 파일 지원 페이지 수가 해당 영역의 최고 수위 표시보다 작아질 때까지 스왑을 시작하지 않도록 커널에 지시합니다.
기본값은 60입니다.
먼저, swappiness
값( 10
)이 기본값( 60
)보다 훨씬 낮다는 점에 유의하세요.
firefox
탭이 많이 있다고 가정해 보겠습니다 . 대부분은 유휴 상태이고 많이 사용되지 않습니다. 낮 으면 swappiness
기계는 가능한 한 많은 데이터를 RAM에 유지하려고 시도하며 RAM이 나올 때까지 교체를 피합니다.진짜새 페이지를 위해 일부 메모리를 비워야 합니다. 이는 시스템이 필요할 때만 스왑을 시작하고 너무 늦게 시작하여 이전 메모리 페이지가 스왑될 때까지 약간의 지연이 발생할 수 있음을 의미합니다.
이 값 이 swappiness
더 높으면 시스템은 이전 메모리 페이지와 사용 가능한 메모리 페이지를 더 자주 조기에 교체하여 새 페이지에 더 많은 메모리를 사용할 수 있도록 합니다. 이 탭에 다시 액세스하면 디스크에서 RAM으로 메모리가 페이징되므로 속도가 느려질 수 있지만 이러한 탭을 자주 사용하지 않으므로 스왑 상태로 유지하고 새 프로세스를 위해 저장하는 것이 더 많은 여유 메모리를 확보하는 것이 좋습니다. 페이지.
swappiness
메모리가 한계에 도달할 때뿐만 아니라 오래되고 사용되지 않는 메모리 페이지를 더 자주 교체하도록 페이지 수를 늘리는 것이 좋습니다 .