RAM 사용량이 급증하면 Ubuntu가 정지됩니다

RAM 사용량이 급증하면 Ubuntu가 정지됩니다

이 문제는 한동안 지속되었으나, 18.04에서 20.04로 업그레이드한 이후로 매우 자주 발생하는 것 같습니다(가끔씩 발생하지 않고 거의 매일 발생함).

어떤 일이 일어날 때마다 - RAM 사용량이 높아지는 것처럼 보입니다. (사람들이 디스크 I/O와 관련해 비슷한 문제를 설명하는 것을 본 적이 있지만 이는 사실이 아닌 것 같습니다.) - 시스템 경계선이 멈춥니다. 처음 1분 ​​동안은 시스템이 급격하게 흔들리고, 이제 불안한 마우스 커서를 움직여 문제를 일으키는 브라우저 탭이나 응용 프로그램을 빠르게 닫을 수 있는 짧은 기회가 있습니다. 그렇게 하지 않으면 이 시점에서 시스템이 거의 영구적으로 정지되고 상단 표시줄의 시스템 시계가 업데이트를 중지하며 무슨 일이 있어도 정지가 해제되지 않으므로 하드 리셋을 수행해야 합니다.

이전에는 Firefox에서 탭이 너무 많이 열려 있을 때 이런 일이 자주 발생했지만 이를 완화하기 위해 탭 제한 확장을 설치했습니다. 하지만 이런 일이 계속 발생합니다. 김프에서 더 큰 이미지를 작업할 때나 DeviantArt 재설계 또는 일부 비디오 사이트와 같이 무한 스크롤이 있는 일부 사이트를 탐색할 때 (가끔) 발생합니다. 김프에서 작업하던 픽셀 아트 작업에서 30분 정도 진행이 중단되었습니다.

이로 인해 내 시스템을 사용하기가 정말 짜증났습니다. 말하기 싫지만 듀얼 부팅을 사용하는 Windows 10이 더 안정적입니다. W10은 제가 사용한 최악의 운영 체제이기 때문에 의미가 있습니다.

다음은 inxi -F 덤프입니다.

System:
  Host: shino-ProLiant-ML310-G5p Kernel: 5.4.0-66-generic x86_64 bits: 64 
  Desktop: Gnome 3.36.4 Distro: Ubuntu 20.04.2 LTS (Focal Fossa) 
Machine:
  Type: Desktop System: HP product: ProLiant ML310 G5p v: N/A 
  serial: <superuser/root required> 
  Mobo: N/A model: N/A serial: N/A BIOS: HP v: W08 date: 10/25/2010 
CPU:
  Topology: Dual Core model: Intel Xeon E3120 bits: 64 type: MCP 
  L2 cache: 6144 KiB 
  Speed: 1995 MHz min/max: N/A Core speeds (MHz): 1: 1995 2: 1995 
Graphics:
  Device-1: AMD ES1000 driver: N/A 
  Device-2: NVIDIA G86 [Quadro NVS 290] driver: nvidia v: 340.108 
  Display: x11 server: X.Org 1.20.9 driver: nvidia 
  unloaded: fbdev,modesetting,nouveau,vesa resolution: 1440x900~75Hz 
  OpenGL: renderer: Quadro NVS 290/PCIe/SSE2 v: 3.3.0 NVIDIA 340.108 
Audio:
  Device-1: Generalplus type: USB driver: hid-generic,snd-usb-audio,usbhid 
  Sound Server: ALSA v: k5.4.0-66-generic 
Network:
  Device-1: Broadcom and subsidiaries NetXtreme BCM5715 Gigabit Ethernet 
  driver: tg3 
  IF: enp3s4f0 state: down mac: 9c:8e:99:35:15:80 
  Device-2: Broadcom and subsidiaries NetXtreme BCM5715 Gigabit Ethernet 
  driver: tg3 
  IF: enp3s4f1 state: up speed: 1000 Mbps duplex: full 
  mac: 9c:8e:99:35:15:81 
Drives:
  Local Storage: total: 1.82 TiB used: 594.46 GiB (31.9%) 
  ID-1: /dev/sda model: LOGICAL VOLUME size: 1.82 TiB 
RAID:
  Hardware-1: Hewlett-Packard Smart Array G6 controllers driver: hpsa 
Partition:
  ID-1: / size: 910.88 GiB used: 594.46 GiB (65.3%) fs: ext4 dev: /dev/sda5 
Sensors:
  System Temperatures: cpu: 40.0 C mobo: N/A gpu: nvidia temp: 68 C 
  Fan Speeds (RPM): N/A 
Info:
  Processes: 288 Uptime: 2h 17m Memory: 3.84 GiB used: 2.86 GiB (74.6%) 
  Shell: bash inxi: 3.0.38 

답변1

에서https://en.wikipedia.org/wiki/Memory_paging#Swappiness그것은 다음과 같이 말합니다:

Swappiness는 사용 가능한 메모리에서 메모리 할당 요청을 충족할 수 없을 때마다 시스템 페이지 캐시에서 페이지를 삭제하는 것과 반대로 런타임 메모리에서 스왑 아웃하는 데 부여되는 상대적 가중치를 제어하는 ​​Linux 커널 매개 변수입니다. 교환성은 0에서 200(포함) 사이의 값으로 설정할 수 있습니다.[18] 값이 낮으면 커널은 페이지 캐시에서 페이지를 제거하는 것을 선호하고, 값이 높을수록 커널은 "콜드" 메모리 페이지를 교체하는 것을 선호합니다. 기본값은 60입니다. 더 높게 설정하면 콜드 페이지를 다시 교체해야 하는 경우(예를 들어 유휴 상태였던 프로그램과 상호 작용할 때) 대기 시간이 길어질 수 있으며, 더 낮게 설정(0이라도)하면 파일이 제거된 경우 대기 시간이 길어질 수 있습니다. 캐시를 다시 읽어야 하지만 응답성이 더 높은 프로그램이 필요합니다. 스와핑을 하면 무작위 쓰기가 많이 포함되므로 HDD 속도가 더욱 느려질 수 있지만 SSD에는 이러한 문제가 없습니다. 확실히 기본값은 대부분의 작업 부하에서 잘 작동하지만 예상되는 작업에 대한 데스크톱 및 대화형 시스템은 설정을 낮추고 일괄 처리 및 대화형이 적은 시스템은 설정을 높이는 것이 필요할 수 있습니다.[19]

vm.swappinessUbuntu의 기본값 은 이므로 60더 낮은 값, 즉 10RAM의 비활성 페이지가 스왑에 덜 적극적이도록 하는 것이 좋습니다.

다음을 실행하여 10(.conf 파일에 아직 값이 설정되지 않은 경우):

echo "vm.swappiness = 10" | sudo tee -a /etc/sysctl.conf

설정이 이미 존재하는 경우 다음을 복사하고 붙여넣어 값을 다음으로 변경할 수 있습니다 10.

sudo sed -i "s/$(awk '/vm.swappiness/ {print $0}' /etc/sysctl.conf)/vm.swappiness\ =\ 10/" /etc/sysctl.conf

그런 다음 변경 사항을 활성화합니다.

sudo sysctl -p

또한 다른 값을 시도하여 자신에게 가장 적합한 것이 무엇인지 확인할 수도 있습니다.

도움이 되었기를 바랍니다!

관련 정보