Linux: 사용 가능한 메모리가 부족할 때 GUI 응답성을 유지합니다.

Linux: 사용 가능한 메모리가 부족할 때 GUI 응답성을 유지합니다.

방금 이 문제에 부딪혔습니다(이제 자체적으로 해결되었지만 약 5-10분 정도 걸렸습니다): 몇 분 전에는 이런 일이 일어날 수 있다고 걱정했지만 여전히 Linux가 캐싱을 위해 메모리를 최적으로 사용하고 필요할 때 캐시한다고 믿습니다. 다음과 같은 경우에 해제하세요.https://www.binarytides.com/linux-command-check-memory-usage/

여기서 문제는 캐시 및 버퍼 열입니다. 두 번째 줄은 4.6GB를 사용할 수 있음을 나타냅니다. 이는 첫 번째 줄의 사용 가능한 메모리에 버퍼 및 캐시 메모리의 양을 더한 값입니다.

Linux에는 필요할 때 메모리를 확보하고 사용할 수 있도록 성능을 향상시키기 위해 많은 양의 항목을 캐싱하는 습관이 있습니다.

어쩌면 GUI를 이런 작업이 필요한 중요한 프로세스로 간주하지 않는 것 같고 이제 마우스 커서 하나 이동에 약 1분 정도 소요됩니다. 일부 키보드 단축키는 여전히 잘 작동합니다. 즉, 키보드 조명을 변경하는 것은 즉시 작동하지만 현재 화면에서 Firefox를 닫는 Ctl-Q는 작동하지 않습니다.

Firefox로 전환하고 "정지"되기 전에 여러 페이지를 열 수 있었던 상황: 200Kb의 여유 메모리, 9GB의 버퍼/캐시, 문서 폴더의 여유 공간(파일 관리자에 표시됨): 3.4Gb. 시스템은 Linux Mint Live toram이며 swapoff.

이제 약 10분 후에 GUI가 다시 반응하며 이를 해결하는 방법에 대해 몇 가지 질문을 하고 싶습니다.

  1. 사용 가능한 메모리가 부족함에도 불구하고 Linux GUI의 응답성을 유지하는 방법은 무엇입니까? 보다 일반적으로 새로운 애플리케이션을 빠르게 시작할 수 있도록 일정량의 여유 메모리를 예약(또는 적극적으로 해제)하시겠습니까?
  2. 시스템이 신속하게(사람의 경우 즉시) 메모리를 확보할 수 있는지 아시나요?
  3. 구성에서는 시스템이 메모리를 확보하는 데 "도움"을 주기 위해 다른 터미널로 전환할 수 있도록 일부 리소스를 예약합니다.

방금 일반적인 질문을 읽었습니다(https://ux.stackexchange.com/questions/44684/why-dont-operating-systems-reserve-a-fixed-amount-of-resources-for-the-gui), 그러나 특정 시스템(Linux)에 대한 구체적인 답변을 주시면 감사하겠습니다.

추가됨: 비디오 플레이어를 실행하고 파일 관리자로 전환하면 시스템이 빠르게 다시 응답하는 속도가 매우 느려집니다. 시스템이 캐시된 9GB 메모리를 모두 확보하지 못할 수도 있다는 생각이 들기 시작했습니다. 하지만 3.4Gb도 괜찮을 수 있습니다. 즉, 시스템이 RAM으로 부팅할 수 있도록 Documents 폴더에 3.4Gb의 여유 공간이 있다는 의미일까요?

이제 약 30분이 지나도 시스템이 응답하지 않습니다. 비디오 플레이어가 재생할 파일을 캐시하려고 시도하여 사용 가능한 메모리를 차지하는 것 같습니다. Ctl-Alt-Fn을 사용해도 소용이 없었으므로 몇 시간 정도 기다리면 시스템이 다시 응답할 수도 있습니다. 끄는 것 외에 또 무엇을 할 수 있나요? sync; echo 1 > /proc/sys/vm/drop_caches다음번에 시스템 메모리가 부족할 때 시도해 보고 싶습니다 .

2를 추가하세요:

숙면을 취한 후(약 10시간) 시스템이 다시 응답하는 것을 확인했습니다. drop_caches별로 도움이 되지 않았기 때문에 일반 사용자 정책으로 돌아가서 웹 브라우저를 다시 시작하여 약 2GB를 확보했습니다.

커널이 차지하는 메모리 양과 커널에서 해제할 수 있는 메모리 양을 확인하는 방법에 대해 도움을 주십시오(분명히 내 시스템은 다시 응답했지만, 캐시를 삭제해도 캐시로 보고된 8GB는 해제되지 않았습니다 free).

브라우저를 다시 시작하기 전의 출력은 free -m웹에서 찾은 기사처럼 버퍼/캐시를 별도로 나열하지 않으므로 (더 자세한) 출력도 게시합니다 cat /proc/meminfo.

              total        used        free      shared  buff/cache   available
Mem:          15740        4508        2366        8453        8865        2474

MemTotal:       16118172 kB
MemFree:          528472 kB
MemAvailable:     475820 kB
Buffers:            1588 kB
Cached:          8939100 kB
SwapCached:            0 kB
Active:          6711540 kB
Inactive:        8440460 kB
Active(anon):    6621624 kB
Inactive(anon):  8402256 kB
Active(file):      89916 kB
Inactive(file):    38204 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:       6211412 kB
Mapped:          1534592 kB
Shmem:           8812568 kB
Slab:             203244 kB
SReclaimable:     106932 kB
SUnreclaim:        96312 kB
KernelStack:       18736 kB
PageTables:        93880 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     8059084 kB
Committed_AS:   23933660 kB
VmallocTotal:   34359738367 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:     1761344 kB
DirectMap2M:    14704640 kB
DirectMap1G:     1048576 kB

관련 정보