다시 로드하면 Linux mint에서 사용자가 시작한 프로세스가 중단됩니다.

다시 로드하면 Linux mint에서 사용자가 시작한 프로세스가 중단됩니다.

나는 오래된 노트북, 오래된 펜티엄 듀얼 코어(제 생각에는) 2.3GHz, Linux mint 17.3 --- Mate를 실행하고 있습니다.

노트북의 부하가 높을 때(예: 비디오 디코딩) 몇 초 동안 정지될 수 있지만, 시스템에서 사용자가 아닌 수동으로 시작한 일부(가장 자주 무작위) 프로세스(예: 데스크탑)가 시작된 프로세스가 충돌합니다. . 파일 쓰기 프로세스는 항상 작업을 완료하고 중단되지 않으므로 제대로 닫힌 것처럼 보입니다.

충돌이 발생하는 프로세스는 무작위이기 때문에 나열할 수 없지만 가장 일반적으로 그래픽이 아닌 프로세스는 중지됩니다. Firefox와 같은 것들은 결국 적은 양으로 끝나는 경향이 있습니다.

답변1

당신이 접할 수 있는 것은OOM 킬러이는 일반적인 Linux 메모리 관리 전략의 일부입니다. 메모리 관리자(Linux 커널)가 더 이상 사용자 공간 및 커널 프로세스에 메모리를 제공할 수 없는 경우 OOM 킬러는 알고리즘을 사용하여 각 프로세스에 대해 계산된 "불량" 값을 기반으로 하나 이상의 프로세스를 선택합니다.

사용자의 관점에서 이는 일반적인 데스크톱 환경과 같은 포그라운드 및 백그라운드 응용 프로그램을 모두 포함하여 프로그램의 "무작위"(비결정적) 충돌처럼 보입니다.

비디오 디코딩은 CPU 리소스를 많이 소모하지만 OOM 킬러를 유발하는 것은메모리필요하다. 비디오 디코더의 메모리 사용량을 줄일 수 있는 옵션이 있습니까(아마도 더 작은 버퍼를 사용하여)? 그 외에도 유일한 (실제) 방어는 사용 가능한 메모리 양을 늘리는 것입니다. 즉, 메모리를 물리적으로 업그레이드하거나 시스템에서 메모리를 소비하는 다른 프로세스를 사전에 종료할 수 있습니다.

메모리를 소비하는 프로세스 추적

이 명령을 사용하여 메모리를 많이 차지하는 프로세스를 추적할 수 있습니다 top -o %MEM. Linux Mint가 해당 구문을 top지원하지 않으면 직접 실행하고 및 키 를 사용하여 정렬 필드를 변경하세요 .-o %MEMtop<>

이 기술의 좋은 부작용은 화면의 처음 몇 줄에서 사용 가능한 메모리와 스왑 공간의 양을 확인할 수도 있다는 것입니다 top.

top - 14:13:43 up 5 days,  4:00,  4 users,  load average: 0.00, 0.02, 0.05
Tasks: 168 total,   2 running, 166 sleeping,   0 stopped,   0 zombie
%Cpu(s):  4.0 us,  1.0 sy,  0.0 ni, 95.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   2049988 total,  1231344 used,   818644 free,   358072 buffers
KiB Swap:  2095100 total,   217588 used,  1877512 free.   450268 cached Mem

프로세스를 직접 종료하세요.

그런 다음 이 정보를 사용하여 많은 메모리를 사용하는 원치 않는 프로세스를 선제적으로 종료(종료)할 수 있으므로 OOM 킬러가 중요한 항목을 종료하지 않습니다. 두 가지 방법:

  1. kill 12345다른 터미널을 입력하거나( 12345표시된 "PID"는 어디에 있습니까 top?)
  2. 에서 top을 누르고 k메시지가 나타나면 PID를 입력한 후 Enter두 번 누릅니다.

이는 설명이 필요하지 않지만 프로세스를 종료할 때는 주의하세요. 일반적으로 저장하지 않은 작업이 손실되지 않도록 Quit 명령을 사용하여 응용 프로그램을 정상적으로 종료하는 것이 가장 좋습니다.

관련 정보