우분투 스압 메모리 (줄이기x 늘리기o)

개요


회사 컴퓨터 코어가 20개입니다. (다다익코어)
하지만 make -j`nproc` 으로 core를 다쓰면서 컴파일 하면 메모리 사용량이 죽죽 올라가서 결국 스압메모리까지 쓰는 경우가 발생합니다.
위 그림의 아래 그래프를 보면 초록색 스압이 거의 꽉 차 있는 것을 볼 수 있습니다.
메모리가 16GB 임에도 말이죠. (다다익메모리)
컴파일 자체가 메모리 쓰기가 빈번하다보니 스압에 쓰기 시작하면 시스템 전체가 버벅거리며 거의 못쓸 상황까지 갑니다.
하...

늘려서 해결


# swap 비활성
$ sudo swapoff -v /swapfile
# swap 을 16GB 로 조정
$ sudo fallocate -l 16G /swapfile
#권한 설정
$ sudo chmod 600 /swapfile
#swap file 만들기
$ sudo mkswap /swapfile
#swap file 활성화 : 리부티하지 않아도 swap file이 활성화 된다.
$ sudo swapon /swapfile
미친척하고 스왑을 16GB로 늘려봤습니다. SSD가 1TB 짜리거든요.
이왕 늘렸으니 컴파일러 -j 옵션도 nproc 다 줘버렸습니다.
make -j`nproc`
오?
차라리 이게 낫네요!
아래 없애서 해결은 안하기로 했습니다!

없애서 해결



스압 비우기

일단 스압을 비워야죠.

sudo swapoff -a && sudo swapon -a

뚝 떨어진 것을 볼 수 있습니다. swapoff로 비우고, swapon으로 swap 기능 다시 살리구요. 뭐 별거 없죠.

컴파일시 nproc 개수 조정

컴파일할때 -j 옵션의 숫자가 너무 커서 생긴 일이니, swap 이 안생길 정도로 조정해주면 되겠죠.

저는 nproc - 7 로 하니까 스압 메모리가 잡히는 일이 없어지네요. 그럼 코어가 7개나 노는데 ㅂㄷㅂㄷ

(사비 털어서 메인 메모리 늘려? 하..)


댓글

이 블로그의 인기 게시물

WSL2 Ubuntu 20.04 및 네트워크 설정

리눅스 멀티코어를 사용하는 tar 압축/해제

git pull 을 했더니 branch가 갈라지는 경우