본문 바로가기
HP-UX/Operating System

[HP-UX] Swap/Dump Configuration

by 레이루이 2008. 5. 1.
반응형

1.1           Swap

3.1.1        Swap의 개요
 
Swap 공간은 가상 메모리 시스템이 paging process에 사용하도록 예약된 고속의 기억 장치 이다. 실제 메모리는 컴퓨터의 유한한 자원이다. 아주 많은 프로세스가 실제로 수행하거나 실행할 준비가 되어 있다 해도 어느 한 순간에 실제 메모리에 들어 갈 수 있는 프로세스 수는 제한되어 있다. 실제 메모리 요구가 높으면 프로세스의 일부가 디스크상의 swap공간으로 옮겨지고 실제 메모리 요구가 낮으면 프로세스의 일부가 swap영역에서 메모리로 다시 옮겨진다.
Vhand 데몬은 최근에 사용되지 않은 페이지를 찾아서 이들 페이지를 swap장치로 옮긴다. Statdaemon은 vhand가 메모리 요구에 맞을 만큼 충분히 빠르게 메모리를 비울 수 없다고 통지하면 swapper를 호출한다. 이때 vhand가 프로세스의 페이지를 swap 장치로 옮기고 swapper가 그 프로세스를 deactivation 시킨다.
 
3.1.2        Swap의 종류
a. Device Swap                 
오직 Swap 용도로만 사용되는 공간을 가짐. 주로 booting시 사용되는 Primary
Swap 과 일반 작업 시 사용되는 Secondary Swap으로 구분할 수 있다.
b. File System Swap                       
때에 따라서 Swap으로 또는 파일 시스템으로도 사용된다. Device Swap 보다
느리게 작동한다. Windows의 Temp 디렉토리 같은 역할.
        c. Pseudo-Swap   
시스템의 메모리가 아주 클 때 memory 의 일부를(최대 physical memory size
10%) swap으로 사용하여 시스템의 성능을 향상 가능함. Kernel parameter인
“swapmem_on”을 enable시켜야 사용 가능하다.
3.1.3        swap 영역 만들 때 성능 향상을 위한 고려 사항
- Device Swap을 만들 시엔 하나의 큰 swap 영역보다 서로 다른 디스크에 위치
한 두개의 (및 같은 성능)의 swap이 더 좋다.
- 한 디스크에 단지 한 개의 swap 영역 구성이 좋다. 즉 primary swap 이 위치
하고 있는 disk에 또 다른 swap 영역 구성은 좋지 않다.
- 여러 개의 swap 영역 구성 시 서로가 비슷한 size 여야 한다.
- 파일 시스템 swap을 만들 경우에는 access가 적은 disk 이며, 가장 빠른 디스크에 만드는 게 좋다
- Swap 영역의 우선 순위는 device swap 영역을 파일 시스템 영역보다 높게 설정
하고,같은 성능의 영역일 경우 동일한 우선 순위를 부여한다.
( 0 ~ 10, 0 이 가장 높은 순위)
 
3.1.4        Swap 만들기
   newfs 또는 SAM으로 공간을 만들고
# lvcreate –L 1024 /dev/vg01/secswap
ð      1GB size의 secondary swap 영역을 만든다.
   /etc/fstab에 반영
2 /etc/fstab 의 예
/dev/vg01/secsswap  swap  pri=1                0      0               # device swap
/dev/vg01/lvol2  /fileswap  swapfs  min=10,lim=4500,pri=2  0 0  # file swap
 
 
 
 

 
            
/sbin/swapon 명령 으로 구동 시킬수 있다.
  # swapon –a
ð      fstab에 등록된 모든 swap 영역을 enable 시킨다.
  # swapon /dev/vg01/secswap
ð      secswap 영역을 enable 시킨다.  
 

1.2            Dump

3.2.1        crash dump 의 개요
crash dump는 시스템이 비정상 종료 시 physical memory 에 load 되었던 page들을 이미지 형태로 추출한 것이다. 이것은 비정상 종료를 유발시킨 원인을 분석하는데 중요한 근거 자료로 사용될 수 있기 때문에 아주 중요한 의미를 가진다.
3.2.2        crash dump 영역 특징  
- 다른 덤프 영역을 특별히 지정하지 않으면, primary swap 영역이 사용된다.
- 시스템에 여러 개의 다른 덤프 장치를 구성할 수 있다.
- 덤프 장치로서의 논리볼륨(or 디스크 섹션)이 필요하다.
(논리볼륨은 contiguous하고, bad block relocation disable 해야 한다.)
- Swap 영역과 dump 영역은 share 가능하지만 별도의 dump 영역을 설정하는
것이 좋다. (fast booting을 위해서, dump data를 안전하게 보호하기 위해서)
 
n        11.X 에서의 새로운 기능
  
No
Prior to 11.X
11.X
1
Kernel에 구성 후 dump device 구성 가능
       /etc/fstab에 등록
       crashconf 명령어로 등록
ð       No rebooting
2
Full dump 만 가능
       full dump
       selective dump
       partial dump
3
Only root volume group 에만 dump device 구성 가능
Non-root volume group 에도 dump device 구성 가능
4
Savecore 명령어로 crash dump를 filesystem으로 save
Savecore 명령어 없어짐. 대신 savecrash와 crashutil 사용
5
Tape으로 crash dump를 백업 가능
Tape으로 direct하게 formatting 불가. Filesystem에 복사 후 백업 명령어(tar)를 이용하여 tape에 백업 가능
6
Disk의 starting point로부터 4GB이내에 위치해야 한다.
제약 사항 없음.
 
3.2.3        Crash dump device 크기
a. Full Dump 시
           Physical memory size + 10MB
b. Selective Dump 시
Physical memory size*0.25+10MB
    혹은
시스템의 load가 많을 때 “crashconf –v”로 확인한 결과 값
c. partial dump 시
partial dump는 full dump를 기초로 구성된 영역 안에서 dump가 저장된다.
physical memory가 32GB이고, dump device가 총 12GB가 구성되어 있다면, partial dump는 full dump 32GB 중에서 구성된 영역인 12GB가 저장된다.
 
3.2.4        Crash dump 구성
n        SAM을 사용하는 방법
n        HP-UX 명령을 사용하는 방법
       dump device 영역 생성
#lvcreate –C y –r n –L 2100 /dev/vg00/lvol9
       dump device 등록    
a.        fstab에 등록
#vi /etc/fstab
<defive file name> <mount point> <type> <options> <backup frequency> <pass number>
/dev/vg00/lvol10 …        dump defaults    0              0
                #crashconf -a
b.        command line에서 구성
#crashconf /dev/vg00/lvol9
c.         dump device가 root disk에 구성 시에는 BDRA영역을 update 한다.
                # lvlnboot –d /dev/vg00/lvol9
       dump type 설정
a.        selective dump 를 위한 memory class 정의
#crashconf –v 
(default로 구성된 selective dump의 memory calss를 확인)
#crashconf –I <in-mem-class > -e <ex-mem-class >
b.        full dump 구성
#crashconf –I all 
 or
#vi /etc/rc.config.d/crashconf
CRASH_INCLUDED_PAGES=”all”
         #/sbin/init.d/crashconf start
c.        dump disable
#crashconf –e all
 or
#vi /etc/rc.config.d/crashconf
CRASH_EXCLUDED_PAGES=”all”
         #/sbin/init.d/crashconf start
NOTE
crashconf로 수행하는 모든 구성 사항은 시스템이 rebooting 후 사라지게 되므로 영구적으로 구성 시에는 /etc/fstab 및 /etc/rc.config.d/crashconf 에 구성한다.
 
 

 
     
 
3.2.5        Crash dump 받기(saving) - savecrash / crashutil
n        savecrash – booting 시에 수행
savecore(prior to 11.x)와 비슷한 기능을 수행한다.
, dump device에서 filesystem으로 crash dump를 저장하고 shutdownlog
reboot message를 기록한다.
#vi /etc/rc.config.d/savecrash
    SAVECRASH=1    로 설정 (default 임)
Fast boot을 위해서 swap과 share하는 부분만 booting 시에 저장하고(즉,
dump device를 swap 영역과 share하기 때문에 부팅 후 swap activity에 의해
crash dump가 lost될 수 있다) 나머지 부분은 backgroup proces로 실행된다.
이 부분은 특히 부팅 후 crashutil을 이용해서 저장할 수도 있다.
n        crashutil – booting 후에 수행
- non-swap dump device에 있는 crash dump를 저장한다.
- Dump format을 다양하게 변경 시켜 분석 tool(q4 or adb)에서 사용 가능
하게 만든다.
 
 Crash Dump 구성 사례
▷ 시스템 사양 : V2600/32GB
▷ 고객 요구사항 : 시스템이 비정상 종료 시에도 시스템의 uptime을 최대한 보장
하면서 비정상 종료를 유발한 원인 분석
                 à Selective dump, 별도의 dump device 설정
       # lvcreate –C y –r n –L 4200 –n dump1 /dev/vg00
       # lvcreate –C y –r n –L 4200 –n dump2 /dev/vg01
ð      dump 영역으로 total 약 8GB를 확보
       # lvlnboot –d /dev/vg00/dump1
ð      root vg에 구성시 BDRA에 update 시킴
       # vi /etc/fstab
/dev/vg01/dump2 … dump defaults 0 0
       # crashconf –a
ð      dump2를 enable
       # crashconf –v
ð      dump device 구성 확인 및 selective dump 확인
       # vi /etc/rc.config.d/savecrash
SAVECRASH=0
ð      fast boot을 위해서 dump를 부팅 시에 save하지 않고 부팅 후 save한다.
      System panic 발생
          Crash dump는 dump device에 저장됨(store)
          System이 완전히 부팅 후 !!
       # savecrash –v –f
ð      /var/adm/crash에 dump가 저장(save)되어 있음
       # tar cvf /dev/rmt/0m ./var/adm/crash ./etc/shutdownlog
       HP RC로 Call 접수
 
[관련 화일들]
/sbin/init.d/crashconf      à /etc/rc.config.d/crashconf
/sbin/init.d/savecrash      à /etc/rc.config.d/savecrash
/etc/fstab
/etc/shutdownlog
/var/adm/crach
/sbin/crashconf
/sbin/savecrash
/sbin/crashutil
반응형