우분투 스압 메모리 (줄이기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개나 노는데 ㅂㄷㅂㄷ
(사비 털어서 메인 메모리 늘려? 하..)
댓글
댓글 쓰기