[질문] Fedora 코어 3과 8에서는 High Memory를 사용할 수 없나요?
안녕하세요?
DMA 설정을 위한 HIGH MEMORY 할당에 문제가 있어서 질문드립니다.
지금 제가 쓰고 있는 리눅스는 페도라 코어 3인데요,
/boot/config-2.6.9-1.667 을 열어보면,
아래와 같이 HIGH MEMORY 옵션이 제대로 켜져 있습니다.
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_HIGHMEM=y
CONFIG_HIGHPTE=y
하지만,
free 명령어를 사용해서 메모리를 살펴보면,
아래와 같이 High 가 0 임을 알 수 있습니다.
[...]$ free -lm
total used free shared buffers cached
Mem: 2025 1365 659 0 13 1228
Low: 2025 1365 659
High: 0 0 0
-/+ buffers/cache: 123 1901
Swap: 2039 0 2039
혹시나 하는 마음에,
친구가 사용하는 페도라 코어 8을 살펴보니까,
마찬가지로 High 가 0 이었습니다.
다만 페도라 코아 6를 보면,
아래와 같이 HIGH MEMORY 가 할당이 되어 있습니다.
[...] free -lm
total used free shared buffers cached
Mem: 1010 996 14 0 17 763
Low: 882 868 14
High: 127 127 0
-/+ buffers/cache: 215 795
Swap: 2102 0 2102
이게 도대체 어떻게 된건가요?
제가 잘못 알고 있는건가요?
리눅스에서 HIGH MEMORY를 사용하기 위해서는 /boot/밑에 커널을 열어서,
HIGH MEMORY 옵션을 키면 된다고 알고 있는데,
지금 제가 쓰고 있는 페도라 코아 3에서 HIGH MEMORY를 사용하기 위해서는 어떻게 해야 할까요?
그리고 한가지 질문더~!!
/boot/config-2.6.9-1.667 안에 있는 내용을 수정하면,
예를 들면,
CONFIG_HIGHMEM4G=y => CONFIG_HIGHMEM64G=y
이러면,
커널 컴파일을 새로 해야 적용이 되나요??
답변 부탁드립니다.
해당 옵션은 4G
해당 옵션은 4G 이상의 메모리를 인식시키기 위한 옵션입니다. 그리고 님이 보는 파일은 커널 빌드시의 설정 값인데요.
아마 해당의 차이는 서버의 archtecture 의 차이가 아닐까 살짝 의심해 보고 싶군요. HIGHMEM 이 0 인 서버가 x86_64 시스템이 아닌가 싶은데요.
x86_64 시스템은 아닙니다.
그냥 일반적인 p4 3.0G입니다;;;
다른건 모르겠고...
CONFIG_HIGHMEM4G=y => CONFIG_HIGHMEM64G=y
에서 일단 커널 설정이 변경되면 '당연히' 재 컴파일해야합니다..
이건 확실치 않지만...
그리고 4G에서 64G로 바꿀수 없을겁니다...
현재 32bit 컴퓨터에서 사용할 수 있는 최대 크기가 4G입니다..
64G 로 바꾸려면.. 몇bit 컴퓨터여야 할까요?
단순 예..
아~ 우선,
제가 예를 들었던 것은 단순한 예고요,
실제로 4G에서 64G로는 바꾸지 않지요.
근데 FC3 커널을 보면 2개가 있는데,
하나는 2.6.9-1.667이고,
다른 하나는 2.6.9-1.667smp 인데,
이 두가지의 차이점을 모르겠어요.
제가 CONFIG_HIGHMEM64G=y 라고 언급했던 것은,
[...~]$ cat /boot/config-2.6.9-1.667smp | grep "CONFIG_HIGHMEM"
# CONFIG_HIGHMEM4G is not set
CONFIG_HIGHMEM64G=y
CONFIG_HIGHMEM=y
라고 되어 있어서 예를 든 것이지요.
smp 는..
SMP(symmetric multiprocessing) 입니다..
멀티프로세싱이 가능하도록 커널 옵션이 설정된 후 빌드되었을 경우..
레드햇에서 붙여 놓은 버전 내임이죠...
멀티코어나 멀티스레드를 지원하는 CPU를 사용할때 이 옵션으로 된 것을 하나더 빌드해서..
등록하더군요...
Mem = Low + High 2025 = 2025
Mem = Low + High
2025 = 2025 + 0
??
이건 무슨 뜻이지요??
Mem = Low + High
2025 = 2025 + 0
32bit/2G에서 high 0 인
32bit/2G에서 high 0 인 것은 이상하군요. 설정 파일의 egrep -i 'zone|high' 한 것을 올려봐 주세요.
32bit/1G 이상이면,
16M ZONE_DMA
896M ZONE_NORMAL (low)
그 이상은 ZONE_HIGHMEM (high)에 위치하는 것으로 알고 있습니다.
zone??
[...~]$ cat /boot/config-`uname -r` | egrep -i 'zone|high'
CONFIG_X86_HIGH_ENTRY=y
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_HIGHMEM=y
CONFIG_HIGHPTE=y
# CONFIG_DEBUG_HIGHMEM is not set
ZONE은 처음 보는건데요?? ^^;;;
페도라코어 3에서 커널이 두개??
2.6.9-1.667
=>
[....~] cat /boot/config-`uname -r` | grep "CONFIG_HIGHMEM"
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_HIGHMEM=y
2.6.9-1.667smp
=>
[....~] cat /boot/config-`uname -r` | grep "CONFIG_HIGHMEM"
CONFIG_HIGHMEM64G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_HIGHMEM=y
댓글 달기