
저는 OpenBSD(5.6 amd64)를 새로 설치하여 작업하고 있습니다. Boost 라이브러리를 구축하려고 하는데 cc1plus의 메모리 부족 오류로 인해 상당수의 컴파일이 실패하고 있습니다.
스왑을 늘리면 이 문제를 해결할 수 있다는 내용을 다른 곳에서 읽었습니다. 그러나 나에게는 그것이 작동하지 않습니다. 현재 저는 4GB의 스왑을 설정했습니다. 그러나 그 중 어느 것도 사용되지 않습니다. Swapctl은 항상 표시됩니다.
total: 8390592 512-blocks allocated, 0 used, 8390592 available
컴파일이 실패하더라도 이는 동일하게 유지됩니다.
내 설치에 대해 언급해야 할 특이한 점이 있습니다. USB 스틱에 설치되었으며 Softraid0 방법을 통해 전체 디스크 암호화를 사용했습니다. 따라서 내 /dev/sd1b는 4g의 스왑이고, /dev/sd1a는 raid이고, /dev/sd2(암호화된 raid)는 스왑이 없다는 점을 제외하면 설치 프로그램에 의해 정상적으로 파티션됩니다.
내 질문은 컴파일러에 메모리가 부족하더라도 내 스왑 공간이 전혀 사용되지 않는 이유는 무엇입니까?
답변1
기본적으로 OpenBSD는 프로세스가 무한 메모리를 사용하는 것을 허용하지 않습니다. 이러한 제한은 에 정의되어 있습니다 /etc/login.conf
.
이러한 제한에 도달하면 OS 전체에 아직 많은 양이 남아 있어도 메모리 부족 오류가 발생합니다. 대부분의 경우 이것은 좋은 일입니다. 하나의 불량 프로세스가 모든 메모리를 빨아들여 시스템을 무릎 꿇게 만들 수는 없기 때문입니다. 그러나 때로는 방해가 되기도 합니다. 다행히 변경할 수 있습니다.
답변2
그룹 에 자신을 추가하면 관심을 끌 수도 있습니다 staff
. 해당 그룹의 메모리 제한은 다른 사용자 클래스보다 더 관대하게 설정된 것 같습니다.