리눅스 메모리 부족 문제 해결 방법
리눅스 메모리 부족 또는 리눅스 swap 메모리 부족 문제를 해결하는 방법에 대해서 설명드리도록 하겠습니다.
리눅스에서 메모리 용량이 부족할 경우 리눅스 swap 파티션을 사용하게 됩니다. 하지만 swap 파티션 또한 용량이 부족할 경우 프로그램 실행이 되지 않거나 out of memory 문제 또는 Cannot allocate memory 등의 문제가 발생할 수 있습니다. swap 파티션 용량을 조절 할 수도 있지만 이번 글에서는 간단히 리눅스 swap 파일 추가하여 리눅스 메모리 부족 문제를 해결해 보도록 하겠습니다.
리눅스 메모리 부족 문제 해결 방법
메모리 용량 및 swap 확인
시스템에서 소스코드 빌드를 하거나, 프로그램 설치, 실행하는 과정에서 물리 메모리, swap 용량이 충분하지 않을 경우 문제가 될 수 있습니다.
swap 용량 확인
현재 할당된 swap 파일 또는 swap 파티션의 swap 용량을 확인하기 위해서 아래의 명령어를 실행합니다.
$ sudo swapon -s
메모리 용량 확인
만약, 위의 명령의 실행결과가 없다면 swap 파티션 또는 swap 파일이 없는 겁니다.
아래의 명령어를 실행하여 전체 메모리 용량 및 사용 가능한 메모리 용량을 확인 할 수 있습니다.
$ sudo free -m
total used free shared buff/cache available
Mem: 486 45 117 1 323 409
Swap: 0 0 0
swap 파일 만들기
메모리 부족 문제가 발생했을 경우, 가장 좋은 방법은 물리 메모리를 추가하는 것입니다.
하지만 물리 메모리를 직접 추가하기 어려운 경우 swap 파티션을 생성하거나 용량을 늘리는 방법으로 문제를 해결 할 수 있습니다. swap 파티션을 추가하거나 크기를 조절하는 방법은 아래의 글을 참고해 주시기 바랍니다.
이번 글에서는 swap 파티션의 용량을 늘리거나 추가하는 대신, 간편하게 swap 파일을 추가하는 방법으로 메모리 부족 문제를 해결하도록 하겠습니다.
swap 파일 생성
아래의 명령어를 실행하여 swap 파일을 생성하고 권한을 설정합니다. 아래의 명령어는 4G 크기의 swap 파일을 생성하는 명령어 입니다. 용량 또는 파일이름은 원하시는데로 변경하여 실행하셔도 됩니다.
$ sudo fallocate -l 4G /swapfile
$ sudo chmod 600 /swapfile
swap 파일 설정
그리고 아래의 명령어를 실행하여 위에서 생성한 파일을 swap 파일로 초기화하고, swap 파일로 지정합니다.
$ sudo mkswap /swapfile
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=4f511657-bfc2-420d-a798-fa9e9d5f1b0a
$ sudo swapon /swapfile
swap 확인
swapon 명령어를 이용하여 swap 장치를 확인하면, 정상적으로 swap 파일이 사용중인것을 확인 할 수 있습니다.
$ sudo swapon -s
Filename Type Size Used Priority
/swapfile file 4194300 0 -1
그리고 free 라는 명령어로 메모리 여유공간을 확인하면, swap 의 여유공간이 함께 확인되는 것을 알 수 있습니다.
$ sudo free -h
total used free shared buff/cache available
Mem: 486M 45M 114M 1.7M 326M 410M
Swap: 4.0G 0B 4.0G
환경 설정
위의 명령어로 설정한 경우, 재부팅되면 swap 파일이 적용되지 않습니다. 따라서 /etc/fstab 파일을 수정하여 부팅시 자동으로 swap 파일이 사용되도록 설정합니다. 아래의 내용을 /etc/fstab 파일에 추가하면 재부팅 후에도 swap 파일이 사용되게 됩니다.
/swapfile none swap sw 0 0
( 본문 인용시 출처를 밝혀 주시면 감사하겠습니다.)