테스트를 위해 RHEL에서 스왑 공간을 0으로 설정

테스트를 위해 RHEL에서 스왑 공간을 0으로 설정

나는 swappiness를 100으로 변경하고 malloc() 코드를 사용하여 내 rhel 시스템에서 swappi를 0으로 설정하려고 시도했지만 도움이 되지 않은 것 같습니다. 시스템 메모리 할당은 다음과 같습니다.

-bash-4.1$ cat /proc/meminfo
 MemTotal:       15331636 kB
 MemFree:        14552168 kB
 SwapTotal:      15826924 kB
 SwapFree:       15657580 kB

malloc 프로그램은 커널이 종료되기 전에 수천 번의 반복을 실행했습니다. 그러나 커널 로그 파일에는 명시적인 "프로세스 종료"나 다른 내용이 표시되지 않습니다.

dmesg이 코드 조각을 실행한 후 다음 명령을 사용하여 상태를 찾습니다.

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

 int main(int argc, char** argv) {
int max = -1;
int mb = 0;
char* buffer;

if(argc > 1)
    max = atoi(argv[1]);

while((buffer=malloc(1024*1024*1024)) != NULL && mb != max) {
    memset(buffer, 0, 1024*1024);
    mb++;
    printf("Allocated %d MB\n", mb);
}
return 0;
}

스왑을 매우 낮은 값이나 0으로 설정하는 더 좋은 방법이 있습니까?

답변1

다음 명령(루트로 실행)은 모든 스왑 공간을 비활성화하고 스왑 공간의 모든 것을 비활성화하기 전에 실제 RAM으로 이동합니다. 그러나 교체하지 않을 때보다 더 많은 메모리가 필요하게 되면 커널이 자체적으로 프로세스를 종료하는 것부터 본격적인 커널 패닉에 이르기까지 다양한 문제에 직면하게 될 수 있으므로 주의하십시오.

swapoff

관련 정보