리눅스 커널 2.6.38을 사용하고 있으며 4GB의 메모리를 할당하는 프로세스를 실행하고 있으며 4GB의 RAM을 사용할 수 있으므로 응용 프로그램을 실행할 때 약 0.5GB를 할당합니다 스왑 공간에서. 그러나 내 응용 프로그램은 매우 오랜 시간 동안 실행되며 스왑 공간의 데이터에 여러 번 액세스합니다. 4GB의 RAM과,리눅스 스왑 공간 메모리를 공개하지 않음
나는 리눅스 2.6.38를 실행하고 있습니다 :
(편집) 내가 뭐하는 거지 명확합니다.
응용 프로그램을 실행하지 않고 시스템은 약 500MB의 RAM을 차지합니다.
4GB의 메모리를 할당하고 할당 된 메모리를 탐색하여 해당 메모리의 값을 여러 번 변경하는 간단한 응용 프로그램을 만들었습니다 (반복 10 회 반복).
응용 프로그램을 실행하려면 스왑 공간이 필요합니다.
응용 프로그램을 실행할 때 스왑 공간이 계속 누적되고 몇 번의 반복 작업 후에 프로세스가 종료되고 프로세스가 종료됩니다.
프로세스가 종료 된 후 스왑 공간도 가득 찰 채로 남아 있습니다.
최근 커널에서 응용 프로그램을 테스트했는데 제대로 작동하지만 스왑 공간이 누적되지 않습니다.
이 커널 버전 (2.6.38)의 버그입니까? 그것에 대한 수정이 있습니까?
귀하의 질문은 분명하지 않지만 적어도 다음 중 하나 이상을 수행 할 수 있습니다 : 더 많은 메모리가있는 장치를 사용하고 한 번에 적은 메모리를 할당하고 추가 스왑 공간을 추가하십시오. 프로세스는 "swappiness"(https : //en.wikipedia.org/wiki/Swappiness) "을 사용하면 필요에 맞게 변경할 수 있습니다. – ti7