Linux의 메모리 사용량

Linux의 메모리 사용량

프로세스 메모리 사용량 제한을 설정하는 방법은 무엇입니까?

열린 파일 제한과 유사합니다 /etc/security/limits.conf.

ubuntu           soft    nofile          4096
ubuntu           hard    nofile          8192

예를 들어, eval1.1G 파일의 원시 json 데이터가 포함된 Python 스크립트를 실행하면 Python은 각각에서 실행되는 동안 전체 RAM을 소비하고 dict내 컴퓨터가 20~30분 동안 중단됩니다. 그후에:listjson.txt

# python read_data.py
Killed

우분투 시스템은 오늘날 매우 안정적입니다. 일시 중지 상태에서 다시 시작됩니다. 스왑 사용량이 8GB에 도달했습니다. RAM이 완전히 비어 있고 스크립트가 실행 중입니다.

killed내 스크립트가 이 제한을 구성할 수 있는지 알고 싶습니다 . 시스템을 이렇게 조정할 수 있나요? 현재 RAM 크기의 70% 이상을 차지하는 모든 프로세스는 종료되거나 중지됩니다.

답변1

동일한 파일을 사용하면 limits.conf다음을 제한할 수 있습니다.

  • data- 최대 데이터 크기(KB)
  • memlock- 최대 잠긴 메모리 주소 공간(KB)
  • rss- 최대 상주 세트 크기(KB)
  • as- 주소 공간 제한(KB)
  • stack- 최대 스택 크기(KB)

그래서 당신은 꽤 많은 일을 할 수 있습니다. 한계를 설정한 후 ulimit -a→를 사용하여 이 수준을 확인할 수 있으며, 이 프로그램을 사용하여 설정할 수도 있습니다. 사용하려면 limits.conf가 필요합니다 pam_limits.so.

마지막 것은 스크립트를 죽이는 것입니다. 나는 이것이 OOM 킬러일지도 모른다고 생각합니다. 실제 메모리를 모두 소모할 때 오작동하는 프로세스를 종료하는 Linux 커널의 기능입니다. ;) dmesgKiller가 사용되는지 확인하는 데 사용됩니다. 종료할 후보 프로세스와 종료된 프로세스에 대한 많은 정보가 있을 것입니다.

건배,

관련 정보