저는 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
.
이러한 제한에 도달하면 전체 운영 체제를 위한 충분한 공간이 남아 있어도 메모리 부족 오류가 발생합니다. 대부분의 경우에는 악의적인 프로세스가 모든 메모리를 사용하여 시스템을 중단시킬 수 없기 때문에 문제가 없습니다. 그러나 때로는 방해가 될 수 있습니다. 다행히도 이를 변경할 수 있습니다.
답변2
staff
이 그룹에 자신을 추가하면 관심을 받을 수도 있습니다. 이 그룹의 메모리 제한은 다른 사용자 범주에 비해 더 느슨하게 설정된 것으로 보입니다.