스왑 성능 테스트


2

나는 일반적인 개념을 이해한다. swap memory,하지만 어떻게 든 프로그램을 빌드해야합니다. swap memory 성능 테스트를 위해 어디서부터 시작해야할지 모르겠다.

기본적으로, 나는 flash memory card 로 사용됩니다. swap space, 그렇게함으로써 성능이 어떻게 향상되는지 테스트하고 싶습니다. 여러 스레드가 동시에 실행되는 여러 프로세스를 얼마나 잘 처리하는지 테스트하기 위해 여러 스레드를 사용하는 간단한 프로그램을 만드는 것이 가장 쉽다고 생각했습니다. 문제는, 나는 단지에 대해 충분히 알지 못한다. swap (또는 내가 읽은 것에서 충분한 통찰력을 모았습니다) 어떻게이 쓰레드를 사용하도록 강제 할 수 있는지 알고 싶습니다. swap space.

누구나 내가이 문제에 접근 할 수있는 방법에 대해 확실한 제안을 한 적이 있습니까? 나는 이것을 64-bit linux OS, 아마도 Fedora 18.


1. 플래시 메모리를 스왑 용으로 사용하면 플래시 메모리가 매우 빨리 종료됩니다. Flash는 쓰기 횟수가 제한되어 있습니다. 2. OS가 정상적으로 작동하는 한 프로그램은 스왑으로 실행되지 않습니다. 사용중인 데이터가 RAM에로드되고 그 순간에 액세스 할 필요가없는 데이터가 스왑됩니다. 필요할 때 RAM으로 다시로드됩니다. 프로그램이 아니라 스왑되어야 할 것이 무엇인지 결정하는 OS입니다.
gronostaj

나는 플래시 장치의 수명에 대해 걱정하지 않는다. 이 작업 관련 및 스왑 사용을 위해 특별히 설정되어있는 플래시 장치를 테스트해야합니다. 이는 제품의 새로운 기능이며 성능에 대한 데이터를 필요로합니다.
cHam

답변:


0

나는 이것이 당신이하고 싶은 것을 아카이브하는 더 좋은 방법인지는 모르지만, 나는 이와 같은 C 코드를 사용했다.

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


#define MB(size) ( (size) * 1024 * 1024 )

int main(){
    char *p;
    if((p = (char *)malloc(MB(256))) != NULL){
            memset(p, "A", MB(256));
            sleep(300);
    }
}

gcc -o mhog mhog.c
echo 1 > /proc/sys/vm/overcommit_memory

이 방법으로 ./mhog 여러 번 실행하십시오.

./mhog &

서버 또는 컴퓨터의 메모리 부족 상황이 발생하면 사용 시작이 표시됩니다


좀 더 자세히 설명해 주시겠습니까? (주석보다 주석을 더 쉽게 따라 할 수 있습니다) 스왑 공간 사용 측면에서 어떻게 작동할까요? 귀하의 코드를 올바르게 이해한다면, 256MB를 char p에 할당 한 다음, memset이 무엇인지 모릅니다. while 루프가 아니라면 왜 잠을 자야합니까? 그리고 마지막으로, 나는 에코가 무엇인지 알지만 overcommit_memory의 의미는 무엇입니까? 진행중인 작업을 & amp; 일할 수있는 무언가를 얻는 것이 아닙니다. 나는 어느 쪽이든 응답을 평가한다.
cHam

memset () 함수는 s가 가리키는 메모리 영역의 처음 n 바이트를 상수 바이트 c로 채우고, 수면은 그런 식으로 사용되며, 문제는 종료되지 않고 메모리는 사용중인 채로 남아 있습니다. kvm 가상의 테스트를 수행했습니다. 512MB의 메모리, 1G 디 스왑을 가진 게스트, 나는 많은 정보를 줄 수는 없지만, overcommit_memory에 관해서는 리눅스 커널 문서를 확인하고, 글을 쓰고 잘 설명했다.
c4f4t0r
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.