이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

"메모리 부족" 오류 해결하기

메모리 회수에 대한 일반적인 제안 사항

MATLAB®은 64비트 운영 체제에서 실행되는 64비트 응용 프로그램입니다. 이 소프트웨어는 사용 가능한 것보다 큰 메모리 세그먼트를 운영 체제에 요청할 때마다 메모리 부족(Out of Memory) 메시지를 생성합니다. 메모리 부족(Out of Memory) 메시지가 표시되면 효율적인 메모리 사용을 위한 전략 항목에서 다뤄지는 다음 기법 중 하나를 통해 사용 가능한 메모리를 최적화하십시오.

  • 요구 메모리 줄이기

  • 적절한 데이터 저장소 선택하기

  • 연속 메모리 사용하기

  • 사용한 메모리 반환 받기

메모리 부족(Out of Memory) 메시지가 계속 나타나면 다음 중 하나를 시도할 수 있습니다.

  • 가능하다면 데이터의 크기를 줄이도록 합니다. 예를 들어, 한 번에 사용되는 메모리 양이 적어지도록 큰 행렬을 몇 개의 작은 행렬로 분할합니다.

  • 큰 파일과 데이터 세트가 있는 경우 대용량 파일과 빅 데이터 항목을 참조하십시오.

  • MATLAB에서 액세스하는 메모리에 외부 제약 조건이 없는지 확인합니다. Linux® 시스템에서는 limit 명령을 사용하여 검토하십시오.

  • 스왑 파일 크기를 늘립니다. RAM의 두 배에 해당하는 스왑 공간으로 시스템을 구성하는 것이 좋습니다. 자세한 내용은 시스템 스왑 공간 늘리기 항목을 참조하십시오.

  • 시스템에 메모리를 더 추가합니다.

시스템 스왑 공간 늘리기

컴퓨터의 응용 프로그램에 사용할 수 있는 총 메모리는 물리적 메모리(RAM)와 디스크의 페이지 파일이나 스왑 파일로 구성됩니다. 스왑 파일은 매우 클 수 있습니다(예: 64비트 Windows®에서 512테라바이트). 운영 체제는 시스템이나 다른 프로세스의 요구에 따라 각 프로세스의 가상 메모리를 물리적 메모리나 스왑 파일에 할당합니다.

대부분의 시스템에서는 스왑 파일의 크기를 제어할 수 있습니다. 이를 수행하는 단계는 사용하는 운영 체제에 따라 다릅니다.

  • Windows 시스템 — Windows 제어판을 사용하여 시스템의 가상 메모리 페이징 파일의 크기를 변경합니다. 자세한 내용은 Windows 도움말을 참조하십시오.

  • Linux 시스템 — mkswap 명령과 swapon 명령을 사용하여 스왑 공간을 변경합니다. 자세한 내용을 보려면 Linux 프롬프트에서 man을 입력하고 그 뒤에 명령 이름을 입력하십시오.

macOS 시스템에서는 스왑 공간을 직접적으로 제어할 수 있는 인터페이스가 없습니다.

Linux 시스템에서 프로세스 제한 설정하기

프로세스 제한은 단일 프로세스(또는 응용 프로그램)가 처리할 수 있는 최대 가상 메모리 양입니다. 프로세스 제한은 다음을 수용할 수 있을 정도로 커야 합니다.

  • 처리할 모든 데이터

  • MATLAB 프로그램 파일

  • MATLAB 실행 파일 자체

  • 추가 상태 정보

64비트 운영 체제는 8테라바이트의 프로세스 제한을 지원합니다. Linux 시스템에서는 ulimit 명령을 사용하여 가상 메모리 등의 사용자 제한을 확인하고 설정합니다.

Linux 시스템에서 Java VM 비활성화하기

Linux 시스템에서 Java® JVM™ 없이 MATLAB을 시작하면 사용 가능한 작업 공간 메모리를 대략 400메가바이트 정도 늘릴 수 있습니다. Java JVM 없이 MATLAB을 시작하려면 명령줄 옵션 -nojvm을 사용하십시오. 이 옵션을 사용하면 가장 큰 연속 메모리 블록의 크기도 비슷하게 늘어납니다. 가장 큰 연속 메모리 블록의 크기가 늘어나면 가능한 가장 큰 행렬 크기도 늘어납니다.

-nojvm을 사용하면 개발 환경 전체 등 Java 소프트웨어에 종속된 많은 기능을 사용하지 못하게 되는 단점이 있습니다. -nodesktop 옵션을 사용하여 MATLAB을 시작하면 절약되는 메모리의 양이 많지 않습니다.

Windows 시스템에서 시스템 리소스 확보하기

MATLAB에는 Microsoft® Windows 시스템 리소스 처리 방식을 조작하는 MATLAB 함수가 없습니다. Windows 시스템은 이러한 리소스를 사용하여 글꼴, 창, 화면 객체의 상태를 추적합니다. 예를 들어, 여러 Figure 창이나 여러 개의 글꼴, 다수의 UI 컨트롤을 사용하면 리소스가 고갈될 수 있습니다. 시스템 리소스를 확보하는 한 가지 방법은 모든 비활성 창을 닫는 것입니다. Windows 시스템 아이콘은 계속 리소스를 사용합니다.

총 시스템 메모리가 제한 요인인 경우 다른 응용 프로그램과 서비스를 종료하면(예: Windows 시스템의 경우 msconfig 사용) 도움이 될 수 있습니다. 하지만, 프로세스 제한이 대체로 주요 제한 요인입니다.

참고 항목

관련 항목