OS/Log2004. 9. 20. 19:06
반응형
서버상태 확인 - sar
  등록일 : 2002년 12월 05일 18:27
조회수 : 2 글쓴이 : 주인장
아래의 내용은 man 페이지를 기초로 한것입니다. 
잘못번역된 부분이 많을수도 있으므로 참고만 하세요 
sar 명령어에는 많은 기능들이 있는것 같습니다. 우리가 일반적으로 시스템을 check 
하기위해서사용되는 top,ps,vmstat,netstat ...등과 같이 잘쓰면 아주 효율적인 명령어 
가 될것 같습니다. 

이 내용을 보시는 분들께서는 자기 시스템의 man 페이지를 꼭 참고하시길 바랍니다. 
아래의 내용중 잘못된 부분이있으면 메일(somajeje@hotmail.com)로 알려주시길 바랍니다. 


[ 설 명 ] 

    sar - 시스템의 활동정보를 수집,리포팅 또는 저장하는 기능을한다. 
            sar 명령어는 OS 에서 일어나는 활동수치를 누적시켜 표준 출력으로 기록한다.   


[ 옵 션 ] 

    1. -A : 모든 관련정보를 출력한다. 

    2. -b : I/O 와 transfer 의 통계를 백분율로 출력한다.  

            * tps :  물리적 디스크에서 발생되어진 초당 전송량   
                        여기서 전송은 물리적 디스크에 요청한 I/O 이다 
                        
            * rtps : 물리적 디스크로부터 발생된 초당 읽기 총 요청 횟수 
          
            * wtps : 물리적 디스크로부터 발생된 초당 쓰기 총 요청 횟수 

            * bread/s : 드라이브 안의 블럭에서 초당 읽은 데이타의 총합 
                              블럭은 부정확한 사이즈의 블럭이다. 

            * bwrth/s : 드라이브 안의 블럭에서 초당 쓰여진 데이타의 총합 

    4. -B : 페이징 통계를 출력한다. 

            * pgpgin/s :  디스크로부터 초당 paged in 된 page 의 총 수 
            * papgout/s : 디스크에 초당 paged out 된 page 의 총 수 
  
    5. -c : 새롭게 만들어져 활동하고있는 프로세스를 출력한다. 

    6. -e hh:mm:dd : 리포트의 종료시간을 설정한다,기본 ending time 은 18:00:00 이다. 
             시간표시형식은 24시간 format 을 사용해야한다. 이 옵션은 -f 또는 -o 옵션과 함께 
             사용되어져야한다. 

             예제] [root@soma]# sar -e 09:00:00 -f  

             Linux 2.4.9-34 (redsoma)        10/25/2002 

            12:01:00 AM       CPU     %user     %nice   %system     %idle 
            12:11:00 AM       all      0.00      0.00      0.01     99.99 
            12:21:00 AM       all      0.00      0.00      0.01     99.98 
            12:31:00 AM       all      0.00      0.00      0.01    100.00 
            12:41:00 AM       all      0.00      0.00      0.01     99.99 
            -------------------생    략----------------------- 
            07:31:00 AM       all      0.00      0.00      0.01     99.99 
            07:41:00 AM       all      0.00      0.00      0.01    100.00 
            07:51:00 AM       all      0.00      0.00      0.00    100.00 
            08:01:01 AM       all      0.00      0.00      0.02     99.98 
            Average:          all      0.02      0.00      0.01     99.96 

            설명] /var/log/sa/sa## 파일에서 09:00:00 까지의 기록들만 출력하였다. 


    7. -f  filename : filename 으로부터 기록을 출력한다. 
                          filename 은 -o 옵션을 사용해서 생성된파일과 같은 종류의 파일이다. 
                          기본 데이타 filename은 /var/log/sa/ad## 파일 들이다. 
                          -f 옵션과 -o 옵션은 함께 사용할수 없다. 

    8. -h : 언제 테이타를 파일로부터 읽었는지를 나타낸다. 이것의 출력 형식은 프로세싱 
             명령어인 awk 처럼 쉽다. 출력은 tab으로 컬름이 구분되어 이루어졌다. 컬름은   
             다음과 같다. hostname,interval value,timestamp,device name,field name and value 
             로 구성되어 있다. 

    9. -i interval : 몇초간격으로 테이타를 출력할것인가를 결정한다. 

    10. -n DEV | EDEV | SOCK | FULL : 네트워크통계를 출력한다. 
              
         * DEV : Network Device의 결과로 부터의 통계 

             - IFACE : Network Interface 이름 
             - rxpck/s : 초당 받은 패킷수 
             - txpck/s : 초당 전송한 패킷수 
             - rxbyt/s : 초당 받은 bytes 
             - txbyt/s : 초당 전송한 bytes 
             - rxcmp/s : 압축된 패킷을 초당 받은 수 
             - txcmp/s : 압축된 패킷을 초당 전송한 수 
             - rxmcst/s : 초당 받은 다중 패킷 수 

          * EDEV : Network Device 의 에러 통계 

             - IFACE : Network Interface 이름 
             - rxerr/s : 초당 불량 패킷을 받은 수 
             - txerr/s : 패킷전송중 초당 발생한 에러 수 
             - coll/s : 패킷전송중 초당 발생한 충돌 수 
             - rxdrop/s : 리눅스 buffer 의 부족으로 패킷을 받는도중 초당 drop 된 패킷 수 
             - txdrop/s : 리눅스 buffer 의 부족으로 전송중 초당 drop 된 패킷 수 
             - txcarr/s : 패킷전송도중 초당 발생한 carrier-error 수 
             - rxfram/s : 패킷을 받는도중 초당 발생한 frame alignment 에러 수 
             - rxfifo/s : 패킷을 받는 도중 초당 발생한 FIFO overrun 에러 수 
             - txfifo/s : 전송된 패킷중 초당 발생한 FIFO overrun 에러 수 

          * SOCK : Socket 의 통계 

             - totsck : 총 사용된 socket 수 
             - tcpsck : 현재 사용중인 TCP sockets 수 
             - udpsck : 현재 사용중이 UDP sockets 수 
             - rawsck : 현재 사용중인 RAW sockets 수 
             - ip-frag : 현재 사용중인 IP fragments 수 

         * FULL : 모든 종류의 Keywords(DEV,EDEV,SOCK) 내용을 출력한다. 

    11. -o filename : 파일을 읽어서 binary 형태로 저장한다. 
                      
             예제] [root@soma]# sar -o soma -i 1 5 
                       
             확인] [root@soma]# sar -f soma 
                      Linux 2.4.9-34 (redsoma)        10/25/2002 

                      02:59:19 PM       CPU     %user     %nice   %system     %idle 
                      02:59:20 PM       all      0.00      0.00      2.00     98.00 
                      02:59:21 PM       all      0.00      0.00      1.00     99.00 
                      02:59:22 PM       all      0.00      0.00      1.00     99.00 
                      02:59:23 PM       all      0.00      0.00      1.00     99.00 
                      02:59:24 PM       all      0.00      0.00      1.00     99.00 

                      Average:           all      0.00      0.00      1.20     98.80  

            설명] 1초 간격으로 5 개의 결과치를 soma라는 파일로 저장했다. 이를 확인하는 
                     옵션으로 -f 옵션을 사용해서 저장한 내요을 출력하였다. 


     12. -r : 메모리 & 스왑 공간의 이용 통계를 출력한다. 

  
          * kbmemfree : 사용가능한 총 메모리의 양(kbytes) 
           
          * kbmemused : 사용중인 총 메모리의 양(kbytes), 커널에서 사용중인 메모리는 제외 
      
          * %memused : 사용된 메모리의 % 

          * kbmemshrd : 시스템에서 공유메모리로 사용된 총 메모리의 양 (kbytes) 

          * kbbuffers : 커널에서 buffer 메모리로 총 사용된 메모리의 양 (kbytes) 

          * kbcached : 커널에서 cache data 로 사용된 총 메모리의 양(kbytes) 

          * kbswpfree : 사용가능한 스왑공간의 양 (kbytes) 
  
          * kbswpused : 사용된 스왑공간의 양 (kbytes) 

          * %swpused : 사용된 스왑공간의 %  

    13. -R : 메모리 통계 

          * frmpg/s : 시스템에서 초당 자유로워진 memory pages 의 양 
                          페이지의 크기는 시스템 아키텍쳐에따라 달라지며 보통 4K / 8K 이다. 

          * shmpg/s : 시스템에서 초당 더해진 memory pages 의 양 

          * bufpg/s : 시스템에서 초당 buffer 에 추가적으로 더해진 memory pages 의 양 

    14. -s hh:mm:ss : 명령어를 실행시킬 시작시간을 설정한다. 
                              이 옵션은 파일로부터 데이트를 읽을때만 사용가능하다 ( 옵션 -f ) 

           
             예제] [root@soma]# sar -s 17:01:00 soma 
  
             설명] soma 라는 파일에 저장된 데이타중에 시간이 17:01:00 이상인것들만 출력한 
                      다. 여기서 soma 라는 파일은 -f 옵션을 사용해서 만든 파일이다. 

      
     15. -u : CPU 사용 통계 

           * %user : 사용자 레벨(application level) 에서 실행중일때의 CPU 사용률 (%) 
        
           * %nice : 사용자 레벨(appliaction level) 에서 nice 가중치를 준 CPU 사용률(%) 
  
           * %system : 시스템레벨(kernel) 에서 실행중일때의 CPU 사용률(%) 

           * %idle : CPU가 쉬고있는 시간의 % 


     16. -v : 커널테이블 & 파일 에서 inode 의 상태를 출력한다. 

           * dentunusd : Directory cache 에서 사용되고있지 않은 cache entries 

           * file-sz : file handles 의 사용양 
  
           * %file-sz : 리눅스 커널에서 할당가능한 최대 파일핸들의 수에대한 파일핸들의 사 
             용된 퍼센트(%)      
           
           * inode-sz : inode handles 의 사용양 

           * super-sz : 커널에의해 할당된 super block handles 의 수 

           * %super-sz : 리눅스가 할당 가능한 최대 슈퍼블럭핸들에대한 실제로 할당되어진 
             슈퍼블럭핸들의 퍼센트(%) 
  
           * dquot-sz : Disk quota entryes 의 수 

           * %dquot-sz : 최대할당가능한 disk quota entries 에 대한 실지로 할당된 entries의 
              퍼센트(%) 

     17. -w : 시스템의 switching 활동 현황 출력 

           * cswch/s : 초당 context switching 의 수 

     18. -W : swapping 의 통계 출력 

           * pswpin/s : 초당 swap in 된 수 
           * pswout/s : 초당 swap out 된 수 


위의 내용중에는 다소 설명이 부족한 부분이많습니다. 
이는 메모리관리/프로세스관리 와 같은 부분을 좀더 공부를 하시면 이해하시는데 도움이 
될거라 생각합니다. 

저역시 위의 내용을 보면서 다른 관련서적들을 통해서 이해를할수 있었습니다. 
워낙 모르는 부분이 많아서....................ㅠ.ㅠ 

반응형

'OS > Log' 카테고리의 다른 글

Perflib Error None 1008  (0) 2006.06.08
[펌] 유용 싸이트 모음*:..:*  (0) 2004.06.02
[펌] RAID란..?  (0) 2004.06.02
Posted by [PineTree]
OS/LINUX2004. 9. 20. 19:05
반응형

1. sysstat 웹 사이트 http://perso.wanadoo.fr/sebastien.godard/

 

2. sar는 redhat 7.x 에 기본 들어있는 sysstat 패키지에 있는 프로그램이다. sar 프로그램은 시스템의 다양한 활동에 대하여 모니터링을 할 수 있는데 모니터링 대상이 상당히 넓은 편이다. 기본값은 CPU 활동에 대한 통계를 출력한다. sar는 각종 활동에 대한 통계를 다른 프로그램을 이용하여 파일로 저장하고 통계치를 출력할 수 있는 기능을 제공한다.

 

3. sar에서 모니터링 가능한 항목은 다음과 같다.

 

- I/O 전송량
- 페이징
- 프로세스 생성 숫자
- 블락 디바이스 활동
- 인터럽트
- 네트워크 통계
- run 큐 및 시스템 부하 평균
- 메모리와 스왑 공간 활용 통계
- 메모리 통계
- CPU 이용도
- 특정 프로세스에 대한 CPU 이용도
- inode, 파일, 기타 커널 테이블에 대한 상태
- 시스템 스위칭 활동(context switch)
- 스와핑 통계
- 특정 프로세스 통계
- 특정 프로세스의 자식 프로세스 통계
- TTY 디바이스 활동

 

4. sar 설정하기

 

# cat /etc/cron.d/sysstat
# run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib/sa/sa1 1 1
# generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib/sa/sa2 -A

 

sa1 는 매10분마다 시스템모니터링한 결과를 /var/log/sa/saxx 파일에 바이너리 형태로 기록한다. xx는 기록하는 날짜이다. sa2 -A 는 23시 53분에 바이너리 파일을 읽어서 사람이 편하게 볼 수 있도록 보고서를 만든다. /var/log/sa/sarxx 형태로 기록된다. sa1 에서 5 3 이라고 해놓으면 매 10분마다 실행을 하면서 5초동안 3번을 기록한다는 뜻이다. 그러면 매10분마다 15번의 기록이 남는다. sa2 에서 -A는 모든 데이터를 보는 것인데 실제로는 자신에게 필요한 내용만 옵션을 이용하여 뽑아서 보는 것이 편할 것이다.

man 페이지의 예를 참고하면 된다.

 

# 8am-7pm activity reports every 10 minutes during weekdays.
0 8-18 * * 1-5 /usr/lib/sa/sa1 600 6 &
# 7pm-8am activity reports every an hour during weekdays.
0 19-7 * * 1-5 /usr/lib/sa/sa1 &
# Activity reports every an hour on Saturday and Sunday.
0 * * * 0,6 /usr/lib/sa/sa1 &
# Daily summary prepared at 19:05
5 19 * * * /usr/lib/sa/sa2 -A &

 

서비스에 따라 다르겠지만 sa2 에서 자세히 보아야 할 부분들은 다음과 같다. -r 메모리 및 스왑 스페이스 사용현황, -u CPU 활용량, -W 스와핑 상황. -q load average

 

# sar -ruW -f sa27 3600  -> 메모리, cpu, 스왑 레포트를 sa27에서 만들며 3600초(1시간) 기준으로 만든다.
# sar -r -f sa25 1800 -s 08:00:00 -e 19:00:00 -> 오전 8시부터 저녁 19시가지 30분간격으로 메모리 모니터링

 

sar -r -f sa07 | awk 'NF > 0' | grep -vi linux | grep -v memfree | grep -vi average | awk '{printf "%s %s => used : %d / buffer : %d / cached : %d / used-buffer-cache : %d MB\n", $1,$2,$4, $7, $8, $4-$7-$8}' => 메모리 확인하는 경우 스크립트를 이용해 쉽게 확인

 

스왑아웃

 

- vmstat를 이용하여 CPU와 I/O 활동을 모니터링할 수 있는데 vmstat에서 나오는 첫 줄은 부팅 이후의 각 통계치에 대한 평균값을 보여주므로 무시하고 두 번째 줄부터 통계를 보면 된다. vmstat에서 중요한 것은 procs 영역의 b 필드이다. r은 현재 실행중인 프로세스 수이고 b는 인터럽트가 불가능한 sleep 상태에 있는 프로세스로 I/O 처리를 하는 동안 블럭 처리된 프로세스이며 w는 강제로 스왑아웃된 프로세스 수이다. si와 so는 스왑인, 스왑아웃을 말한다.

 

- 스왑아웃이 지속적으로 발생한다면 메모리가 부족한 것이다. 그러나 일정 간격을 두고 주기적으로 스왑아웃이 발생하는 것은 정상적인 일이다. BSD 시스템에서는 비상호 대화적인 작업을 스왑아웃 한다. 현재 실행하고 있는 프로그램에서 스왑아웃이 계속 발생한다면 프로그램이 멈출 수도 있으며 심각하게 메모리가 부족하다는 것을 의미한다. 스왑아웃필드(so)는 항상 0에 가까워야 한다. 그렇지 않다면 프로세스들은 가상 메모리를 놓고 경쟁하게 되며 시스템은 페이징 상태가 된다. 페이징 활동은 심각한 가용 메모리(free)의 부족과 직접적인 관련을 가지며 간접적으로는 시스템의 높은 CPU 사용 시간 비율(sy)과 관련이 있다. 프로세스가 시작할 때 항상 이미지와 데이터를 page-in 해야 하므로 page-in 열에서 높은 숫자가 항상 심각한 것은 아니라는 사실은 기억하고 있어야 한다.

 

- 시스템에서 사용하는 시간이 지나치고 높으면(50퍼센트 이상) 디스크 I/O에서 문제가 있을 가능성이 크다. 시스템 전체의 부하가 높은데 CPU에서 휴지시간(idle time, id 항목)이 일반적으로 10퍼센트를 넘는다면 I/O나 메모리에 문제가 있을 가능성이 크다. 휴지시간(id)이 항상 0이라면 CPU를 100퍼센트 사용하고 있는 상태이다. CPU의 기능을 최대한 활용하는 것은 좋은 현상이다. 그런데 항상 100퍼센트로 활용중인 상태라면 어떤 작업이 계속 축적되고 있다는 것이며 CPU가 과부하를 가진다는 의미한다. 이 때는 CPU를 계속 사용하고 있는 프로세스를 찾아야 하며 디스크의 활동이 분산되지 않았다면 I/O 작업을 효율적으로 분산시켜야 한다.

 

- 대부분의 사용자가 vmstat에서 si, so(스왑인, 스왑 아웃)를 주로 보고 id가 넉넉하면 시스템에 무리가 없는 것으로 생각한다. 이는 시스템의 상황에 대해서 잘못 파악할 가능성이 많은 것으로 b의 수치가 높은 경우 I/O작업을 위해 CPU가 계속 대기 상태로 있는 경우이다. 이런 경우에는 디스크 I/O 문제를 확인해야 한다.

반응형

'OS > LINUX' 카테고리의 다른 글

[펌] NFS설정하기 (Linux -> HPUX)  (0) 2005.02.15
[펌] 리눅스 표준 디렉토리 구조  (0) 2004.11.24
[펌] sar (system activity reporter)  (0) 2004.09.20
[펌] NFS(Network File System)  (0) 2004.09.10
VI Editor  (1) 2004.06.02
Posted by [PineTree]
OS/LINUX2004. 9. 20. 19:01
반응형

CPU

 

[sar -q ] 프로세스에 대한 정보

 

SunOS fqrc 5.7 Generic_106541-19 sun4us    06/04/04

17:58:37 runq-sz %runocc swpq-sz %swpocc
17:58:42     1.0      20
17:58:47
17:58:52
17:58:57     5.0      20
17:59:02

Average      3.0       8

 

runq>3 또는 %runocc > 90 또는 runq > 10

-> CPU 부하가 높다.

 

일반적으로 runq-sz가 2보다 크고 동시에 %runocc 가 90이상이라면 CPU에 대한 부하가 커지고 response가 저하될수도 있다.

이것은 CPU할당을 기다리는 프로세스가 매우 많아 시스템의 response 에 미치지 못함을 나타낸다.

 

swpq 가 2보다 큰 경우는 메모리 부족을 생각할수 있다.

 

runq-sz 메모리상에서 실행가능한 프로세스의 실행큐 수

%runocc 실행큐가 점유되어 있는 시간의 비율

swpq-sz 스왑아웃되어 있는 실행가능한 프로세스의 실행큐수

%swpocc 스왑아웃되어 있는 실행큐가 점유되어 있던 시간의 비율

 

메모리

 

[sar -r] 빈메모리 정보에 대해서 리포트


18:08:37 freemem freeswap
18:08:42    2913  6228086
18:08:47    2964  6339745
18:08:52    2963  6352258
18:08:57    2964  6352335
18:09:02    2965  6352335

실제 freemem 산정방법

freemem(2913) x pagesize(8192) = 23863296 byte (23Mbyte)

 

실제 freeswap 산정방법

freeswap(6228086) x blocksize(512) = 3188780032 (3.2Gigabyte)

 

freemem값이 작다 ->

메모리 부족가능성

 

메모리 부족문제는 -q,-g,-w,-u 옵션의 결과도 비교해서 조사한다.

freemem이 작은 경우는 메모리 부족의 가능성이 있다. 이 값이 대단히 작은 경우에는 sar -k f로 커널 메모리 leak 가 발생하지 않도록 체크가 필요하다.

sar -r 로 표시된 freemem치에 여유가 있어도, swap -s 커맨드로 표시되는 available block 값이 0이하로 되면 swapping 영역부족이 발생할 우려가 있다.

 

freemem 유저 프로세스가 사용가능한 페이지의 평균치 (4K byte or 8k byte)

freeswap 프로세스의 스와핑에 이용 가능한 디스크 블록수 (512 byte)

 

 

[sar -p]: pagein 상황리포트 


18:12:38  atch/s  pgin/s ppgin/s  pflt/s  vflt/s slock/s
18:12:43    0.00    0.00    0.00  134.99  283.30    0.00
18:12:48    0.00    0.00    0.00  117.50  248.11    0.00
18:12:53    0.60    0.00    0.00  293.84  382.50    0.00
18:12:58    0.40    0.00    0.00  181.11  353.68    0.00
18:13:03    0.40    0.20    0.20  157.34  316.47    0.00

Average     0.28    0.04    0.04  176.95  316.81    0.00

 

vflt/s > 50 ->

메모리 부족 및 메모리 Inode 부족가능성

 

vflt/s는 유효한 page address 를 가상공간내에서 발견하지 못한 경우에 발생한다.

vflt/s 가 50이상이로 sar -g 결과, pgfree/s 가 5 이상인 경우 메모리가 부족할 가능성이 있다.

이것은 비어있는 페이지를 찾는데 시간이 걸리기 때문이다.

또한 sar -u,sar -w 및 sar -r 을 사용하면 메모리가 bottleneck 쌍태로 되어있지 않은가를 확인할

수있다.

 

평가기준

 

atch/s 메모리내의 페이지를 재요구함으로써 해소되는 페이지 결함(fault)수/초

pgin/s 페이지인 요구의 평균 수 /초

ppgin/s 페이지인 된 평균 페이지 수 /초

pflts/s 보호 에러에 기인한 페이지 결함(fault)수/초

vflt/s 어드레스 변환 페이지 fault 수 /초

slocak/s 물리 I/O를 요구하는 software lock 에 의한 fault 수/초

 

[sar -g]: pageout 상황리포트 

 

18:13:43  pgout/s ppgout/s pgfree/s pgscan/s %ufs_ipf
18:13:48     0.00     0.00     0.00     0.00     0.00
18:13:53     0.20     0.20     0.20     0.00     0.00
18:13:58     0.40     0.60     0.20     0.00     0.00
18:14:03     0.20     0.60     0.60     0.00     0.00
18:14:08     2.98     6.36     4.57     0.00     0.00

Average      0.75     1.55     1.11     0.00     0.00

 

pgfree/s > 5 or pgscan/s >5 ->

메모리 부족가능성이 있다.

 

sar -g 커맨드는 Pageout 상황을 리포트 한다.

pgfree/s 나 pgscan/s 가 5를 초과하는 경우는 메모리 부족가능성

 

페이지 데몬은 메모리의 내용을 디스크 장치에 쓰고 해방할 수 있는 메모리르 찾는다.

이 데몬은 빈 메모리량이 적어짐에 따라 빈번하게 동작하게 되며, 시스템의 실행 프로세스의 대부분이 페이징 동작에 점유되어 버림으로써 Bottleneck 이 된다.

이 경우는 sar -p, sar -u, sar -r 과 sar -w 등으로 메모리 부족을 판단하면 된다.

 

pgout /s 시스템에 요구된 페이지 아웃의 평균요구수/초

ppgout/s 페이지아웃된 평균 페이지수/초

pgfree/s 페이지데몬에 의해 freelist에 추가된 평균논리 페이지수/초

pgscan/s 페이지 데몬에 의해 스캔된 평균논리 페이지수/초

%ufs_ipf 메모리상의 빈 페이지로부터 i노드를 획득한 비율

 

swapping & process switch

 

[sar -w] 페이지아웃상황을 리포트

18:18:54 swpin/s bswin/s swpot/s bswot/s pswch/s
18:18:59    0.00     0.0    0.00     0.0     335
18:19:04    0.00     0.0    0.00     0.0     313
18:19:10    0.00     0.0    0.00     0.0     275
18:19:15    0.00     0.0    0.00     0.0     297
18:19:20    0.00     0.0    0.00     0.0     298

Average     0.00     0.0    0.00     0.0     303

 

swpot/s > 1.0 -> 

메모리 부족

 

swpot/s 가 1을 초과한 경우는 시스템은 심각한 메모리 부족 상태인 것을 나타낸다.

그러나 이 결과만으로는 bottleneck 의 측정이 불가능하므로 다시 sar -g , sar -r 등의 결과를 고려한다.

이 결과 메모리 부족이 확실한 경우는 버퍼 공간의 삭감 또는 메모리의 증설이 필요하다.

버퍼공간을 줄임으로써 메모리상에 존재할 수 있는 페이지를 제한할 수가 있으므로 프로세스에 메모리를 할당할 수 있게 된다. 그러나 스왑아웃이 빈번히 발생하고 있는 경우는 메모리의 증설이 필요하다.

또, pswch/s 가 클수록 프로세스 스위치에 의한 오버헤드가 커지는 것을 알수있다.

 

swpin/s  swapin의 횟수/초

bswin/s swapin에의해 전송된 page수/초

swpot/s swapout의 횟수/초

bswot/s swapout을 위해 page 전송된 블록수/초

pswch/s 프로세스 스위치 횟수/초

 

디스크

 

[sar -d] 디스크 사용상황

18:22:26   device        %busy   avque   r+w/s  blks/s  avwait  avserv

18:22:27   fd0               0     0.0       0       0     0.0     0.0
           nfs1              0     0.0       0       0     0.0     0.0
           sd0               2     0.0       1      15     0.0    17.1
           sd0,a             0     0.0       0       0     0.0     0.0
           sd0,b             0     0.0       0       0     0.0     0.0
           sd0,c             0     0.0       0       0     0.0     0.0
           sd0,d             0     0.0       0       0     0.0     0.0
           sd0,e             0     0.0       0       0     0.0     0.0
           sd0,f             2     0.0       1      15     0.0    17.1
           sd1               0     0.0       0       0     0.0     0.0

%busy > 60 -> 디스크 부하가 크다.

%busy 값이 특정 디스크에 편중되어 있다. -> 디스크의 부하가 편중되어 있다.

 

%busy 가 60을 초과한 경우는 그 디스크 장치의 부하가 매우 높은 상태임을 나타낸다.

또한 %busy 가 각 디스크 장치간에 편중되어 있는 경우는 특정 디스크 장치에 대한 부하가 높은 상태임을 알수 있다. 이 경우는 디스크 장치상의 각 파일 시스템의 구성을 변경하여 특정 디스크에 부하가 집중되지 않도록 디스크내의 데이터를 다른 디스크에 분산시키는 것이 가능한가 검토해 볼 필요가 있다.

 

또한 sar -g, sar -p 등을 실행한 결과 페이징이 자주 발생한다면 메모리 증설하여 디스크 장치에 대한 입출력 동작을 감소시키도록 한다.

 

%busy 값이 적고 avserv가 큰 경우에는 시스템이 정기적으로 sync를 실행한 결과, 변경된 블록의 디스크에 쓰기(write)를 지연없이 실행하고 있다고 생각한다.

 

%busy 디바이스가 전송요구 서비스에 소비한 시간의 비율

avque 실행을 기다리고 있는 요구의 평균수

r+w/s 디바이스에 대한 read/write 의 전송횟수/초

blks/s 디바이스에 전송된 블록수/초 (512바이트/블록)

avwait 전송요구가 queue상에서 기다리고 있는 평균시간(milisecond)

avserv 전송요구가 디바이스로부터 서비스를 받은 평균시간(milisecond)

 

 

시스템 호출

 

[sar -c] 시스템 호출 발생상황

 

일관되게 exec/s > fork/s x3 ->

환경변수 PATH의 내용이 효율적이지 않다.

 

1회의 읽기/쓰기 전송바이트 <  8Kbyte ->

시슽ㅁ 호출 발행을 위한 오버헤드가 커진다.

 

일관되게 exec/s 가 fork/s 의 3배 이상인 경우는 환경변수 PATH의 순서가 자주 사용하는 순서로 되어 있는 가를 조사할 필요가 있다. 단 exec/s 는 쉘 스크립트 실행의 경우에 증가한다.

일반적으로 read와 write 시스템 호출의 합계는 시스템 호출총수의 약 절반이 된다.

단, 그 비율은 시스템이 실행하는 동작에 비해 크게 다르다. 1회당 전송 바이트수가 8K 바이트보다 작은 경우, read와 write 시스템 호출의 발행을 위한 오버헤드가 커진다.

이러한 경우는 큰 파일을 작은 단위로 액세스하고 있는 할당의 유무를 조사하여 액세스 크기를 8K 바이트 이상으로 하는 편이 낫다.

 

전송바이트 계산식

read 전송바이트 수 = rchar/s / sread/s

write 전송바이트 수 = wchar/s / swrit/s

 

scall/s 발행된 전체 시스템 호출수/초

sread/s read 시스템 호출 발행횟수/초

swrit/ write 시스템 호출 발행횟수/초

fork/s fork시스템 호출 발행횟수/초

exec/s exec 시스템 호출 발행횟수/초

rchar/s read 시스템 호출이 전송한 문자수 (바이트수) /초

wchar/s write 시스템 호출이 전송한 문자수 (바이트수) /초

 

 

 

 

반응형

'OS > LINUX' 카테고리의 다른 글

[펌] NFS설정하기 (Linux -&gt; HPUX)  (0) 2005.02.15
[펌] 리눅스 표준 디렉토리 구조  (0) 2004.11.24
[펌] sar 이용하여 시스템 모니터링하기  (0) 2004.09.20
[펌] NFS(Network File System)  (0) 2004.09.10
VI Editor  (1) 2004.06.02
Posted by [PineTree]
OS/SOLARIS2004. 9. 11. 00:22
반응형
안녕하세요..

The NFS Distributed File System의 설정방법에 대해서 알아보겠습니다.

참고 자료는 Sun Solaris8 System Administration을 참조 했고
테스트는 Sparc Solaris 8버전을 사용했습니다.

**** NFS server 설정 ****

데몬

mountd : /usr/lib/nfs/mountd : NFS client가 mount를 요청시 mountd 데몬이 서버의 공유된
마운트 포인터(file handle)를 넘겨줌 -> /etc/rmtab공유하는 목록 저장

nfsd : /usr/lib/nfs/nfsd : 마운트된 이후에 정보를 핸들할수 있도록 해줌
statd : /usr/lib/nfs/statd : NFS file시스템의 상태정보를 저장
lockd : /usr/lib/nfs/lockd : 서버이상시 락을 건다
nfslogd : /usr/lib/nfs/nfslogd : nfs server 로깅데몬

* statd, lockd는 함께 NFS locking서비스를 제공한다 이는 서버 crashes가 발생시
클라이언트가 다시 파일을 사용할수 있도록 빨리 재 Connection이 되도록 한다.
두 대몬은 /etc/init.d/nfs.client 스크립트로 실행가능.

* nfsd,mountd는 /etc/init.d/nfs.server 스크립트로 실행가능

파일

/etc/dfs/dfstab : 부팅시 공유할 곳을 지정
/etc/dfs/sharedtab : 현재 공유하고 있는 곳을 저장
/etc/dfs/fstypes : mount명령을 사용시 -F nfs 옵션을 사용하지 않아도 되도록함
/etc/rmtab : 현재 어떤 host가 share된 자원을 공유하고 있는지를 저장(hostname : fsname)
/etc/nfs/nfslog.conf
/etc/default/nfslogd
/etc/nfs/nfslogtab

명령어

share : 공유
unshare : 공유해제
shareall : /etc/dfs/dfstab내의 share된 리스트를 참조하여 전부 마운트시킴
unshareall : /etc/dfs/sharetab내의 현재 공유된 리스트를 참조하여 전부 언마운트시킴
dfshares : 공유할 자원이 있는지를 확인
dfmounts : 공유한 자원이 있는지를 확인



**** NFS Client 설정 ****

데몬
statd, lockd

파일
/etc/vfstab
/etc/mnttab
/etc/dfs/fstypes

명령어
mount
umount
mountall umountall
dfshares
dfmounts

**** 테스트 ****

테스트목적 : client가 server측 man페이지를 사용할수 있도록 세팅


-서버세팅-

기본적으로 /etc/dfstab파일내 공유할 폴더를 지정
ex)share -F nfs -o ro /usr/share/man
주. dfstab파일내 공유할 폴더를 지정하지 않고 nfs.server를 실행시
NFS service was not started because /etc/dfs/dfstab has no entries.
이런 메세지와 함께.. 중요 서버데몬(mountd,nfsd)이 실행이 안됨

1. 우선 디렉토리를 공유한다.
#share -F nfs -o ro /usr/share/man
(shareall해도 됨)

2. 공유확인
#share
/usr/share/man ro

3. 데몬들이 떠있나 확인
#pgrep -l lockd
#pgrep -l mountd
#pgrep -l nfsd
#pgrep -l statd

4. 데몬들이 살아있지 않으면 실행시켜준다.
#/usr/lib/nfs/lockd
#/usr/lib/nfs/mountd
#/usr/lib/nfs/ufsd
#/usr/lib/nfs/statd

* 참고로 스크립트를 사용해서 데몬을 실행해도 된다.
#/etc/init.d/nfs.server start

-클라이언트세팅-

1. 서버에서 어떤 자원을 공유하고 있나 확인
#dfshares solaris201
RESOURCE SERVER ACCESS TRANSPORT
220.xxx.xxx.xxx:/usr/share/man 220.xxx.xxx.xxx - -

-> /etc/hosts에 solaris201이 명시되어 있어야한다. 목록에 없으면
#dfshares 220.xxx.xxx.xxx

2. 데몬들이 떠있나 확인
#pgrep -l lockd
#pgrep -l statd

3. 데몬들이 살아있지 않으면 실행시켜준다.
#/usr/lib/nfs/lockd
#/usr/lib/nfs/statd

* 혹은 스크립트를 실행
#/etc/init.d/nfs.client start

4. man페이지 테스트
#man ls

5. man페이지 디렉토리를 다름 이름으로 바꾼다.
#mv /usr/share/man /usr/share/man.old

6. man페이지 테스트
#man ls

7. 디렉토리생성
#mkdir /usr/share/man

8. 마운트
#mount -F nfs solaris201:/usr/share/man /usr/share/man

9. man페이지 테스트
#man ls

반응형
Posted by [PineTree]
OS/LINUX2004. 9. 10. 22:35
반응형

NFS(Network File System)

1. what's NFS

1980년대 중반에 SUN에서 개발되어 현재 여러 운영체제에서 지원되는 서비스로 서버의 리소스를 클라이언트 상에서 마치 지신의 리소스를 사용하는 것과 같이 사용할수 있게 제공되어 지는 것이다. NFS가 일단 설치되면 클라이언트 상의 사용자들은 마치 자신의 시스템에 있는 것처럼 서버의 파일 시스템에 파일들을 읽거나 쓸 수 있다.

2. 관련 파일들

 

Server

Client

Commands

share / unshare
shareall / unshareall
dfmounts
/etc/init.d/nfs.server

mount / umount
mountall /umountall -r
dfshares
/etc/init.d/nfs.client

Files

/etc/dfs/dfstab /etc/dfs/fstypes
/etc/dfs/sharetab
/etc/rmtab

/etc/vfstab
/etc/dfs/fstypes
/etc/mnttab

Daemons

/usr/lib/nfs/nfsd
/usr/lib/nfs/mountd

/usr/lib/nfs/statd
/usr/lib/nfs/lockd

Automounter

없음

/usr/sbin/automount

 

3. Configuring the NFS Server

Manual Sharing

# share /usr/share/man ; command line에서의 사용

# /etc/init.d/nfs.server start ; server daemon 기동

  • Automatic Sharing

    # vi /etc/dfs/dfstab

    share -F nfs /usr/share/man

    ; run level 3로 들어갈 때마다 이 file을 참조

    # dfmounts ; /etc/rmtab의 내용을 참조하여 display

    ; /etc/rmtab : server의 resource를 mounting하는 client의 table



4. Configuring the NFS Client

  • Manual Mounting

    # mount venus:/usr/share/man /usr/share/man

    ; client의 /usr/share/man이 mount point

    ; mount point는 empty라야 함

  • Automatic Mounting

    # vi /etc/vfstab

    venus:/usr/share/man - /usr/share/man nfs - yes -

    ; run level 2로 들어 갈 때마다 이 file을 참조

    # umount /usr/share/man ; mount를 해제

5. Commaind Reference for NFS Server

  • # share [ -F nfs ] [ -o options ] [ -d description ] pathname

    /etc/dfs/dfstab : share command는 share된 모든 file resource들에 대한 정보를 이 file에 기록

    -F nfs : command line에서는 필요 없다.(default remote file sytem type)

    remote file system type : /etc/dfs/fstypes 참조

    -o options : rw=client[:client] ; read-write

    ro=client[:client] ; read-only

    root=client[:client] ; root access

    anon=0 ; 어느곳에서나 UID 0으로 access 한다.

    -d description : file resource를 설명하는 comment

    : share command (argument 없는)가 실행되면 display

    -pathname : file resource의 path name

    <Example> # share -F nfs -o root=seven:indy,rw=sun /usr/share/man

  • # unshare [ -F nfs ] pathname

    ? /etc/dfs/sharetab에서 해당 resource를 삭제

    -F nfs : share와 동일

    -pathname : unshare될 file resource path name

    <Example> # unshare /usr/share/man

  • # shareall [ -F nfs ]

    /etc/dfs/dfstab에 있는 share command의 list를 실행

    -F nfs : nfs type으로만 제한

  • # unshareall [ -F nfs ]

    /etc/dfs/sharetab을 참조, share된 resource를 unshare한다.

    -F nfs : nfs type으로만 제한

6. Commaind Reference for NFS Client

  • # umount [ -F nfs ] server:pathname mount-point
  • # mountall -r [ -F nfs ]

    /etc/vfstab 참조

    -r : remote resource로만 제한할 경우

    -F nfs : remote에 rfs type과 같은 resource와 nfs resource가 함께 존재 할 경우 nfs type으로만 제한할 경우 사용

  • # umountall -r [ -F nfs ]

    /etc/vfstab 참조

    -r, F nfs : mountall과 동일

  • # dfshares server-name ; share된 resource를 display
  • # mount [-F fs_type] [options] [-o options] special directory

 

-F fs_type

-p

-v

-V


-m

-r

-o

파일 시스템 타입을 지정한다. 디폴트 ufs (nfs, hsfs, swap)

/etc/vfstab 파일에 넣을수 있도록 현재 설치된 화일 시스템의 리스트를 모두 출력한다.

장황한 형태로 현재 설치된 파일 시스템의 리스트를 모두 출력한다.

모든 디폴트 설정을 포함하여 주어진 명령을 확장하고 그 결과를 출력한다. 그러나 실재로 실행하지는 않는다. 시스템 디폴트 설정이 복잡할 때 mount 명령을 검증하는데 유용하다.

파일 시스템을 설치하지만 /etc/mnttab에 출력하지 않는다.

파일시스템을 읽기 전용으로 설치한다.

-o 플래그 뒤의 매개변수는 -F 플래그 뒤에 오는 파일 시스템 타입에 따른 옵션이다. 파일시스템에 타른 옵션들은 ,로 구분하여 여러 개 지정할수 있다.

options

<UFS>

f

n

rw|ro

nosuid

remount


/etc/mnttab에 기록을 하지만 실제로 파일 시스템을 설치하지는 않는다.

파일 시스템을 설치하지만 /etc/mnttab에 기록하지 않는다.

파일 시스템을 읽기/쓰기(default)나 읽기 전용으로 설치한다.

이 파일 시스템 내에서는 setuid 프로그램들의 실행을 허용하지 않는다.

읽기 전용으로 설치된 파일 스스템에 대해 임시로 읽기-쓰기 access 용으로 다시 설치한다.

<NFS>

rw|ro

setuid|nosuid

remount

intr|nointr

soft|hard

fg|bg

retry=n

rsize+n

wsize=n

timeo=n

retrans=n


파일 시스템을 읽기-쓰기(default)나 읽기 전용으로 설치한다.

이 파일 시스템 내에서는 setuid 프로그램들의 실행을 허용하지 않는다. (default : 허용)

읽기 전용으로 설치된 파일 시스템에 대해 임시로 읽기-쓰기 access용으로 다시 설치한다.

설치가 완요되기를 기다리는 프로세스를 키보드 인터럽트로 중단 가능(불가능)하게 만든다. (default : 허용)

soft는 NFS 서비스가 응답하지 않을 때 에러를 리턴함을 의미하고, hard는 응답이 있을때까지 계속 재시도 함을 의미한다.

첫 번째 설치시도가 실패시 수행할 작업방법(default : fg)

설치가 실패하였을 때 재시도 회수 (default : 1000)

n 바이트의 읽기 버퍼 크기를 사용한다.

n 바이트의 쓰기 버퍼 크기를 사용한다.

NFS 타임 아웃 간격을 n/10초로 지정한다.

NFS 전송 각각을 최대 n번 재시도 한다.


7. Automounter

소프트웨어로 사용자가 Server에서 SHARE된 디렉토리 안으로 이동할 때 자동으로 마운트되고 일정기간(5분 정도) 사용하지 않으면 그 디렉토리를 언마운트 시켜주는 시스템 서비스이다.

NFS를 통해 원격으로 설치된 파일시스템들은 각 시스템의 /etc/vfstab에 수록된다.
그런 디스크와 파일 시스템의 수가 증가하면 모든 호스트의 파일 시스템 목록을
관리하기가 어렵기 때문에 문제가 발생한다.

또 NFS가 여러 곳에 설치되면 기계의 의존성이 증가한다.
과부하로 Server의 성능이 저하되면, 그곳으로부터
파일시스템의 설치하고 있는 모든 호스트의 성능이 떨어진다.

정전과 같은 사고로부터 복구 하는데에는 심각한 문제가 있다.
모든 호스트가 일시에 부팅하려고 하면,
서로 다른 호스트가 가지고 있는 파일 시스템을
기다리기 때문에 데드록이 발생하거나 오랜 시간 동안 지연될 수 있다.

AUTOMOUNT는 NFS 클라이언트상의 어떤 사용자 프로그램이 Automounter에 의해서
Control되는 Remote 파일이나 디렉토리의 Access를 필요로 할 때,

Local Automounter Daemon (/usr/sbin/automount)은 Mount될 파일 자원에
대한 파일 Handle을 얻기 위해 Server의 Mount Daemon(/usr/lib/nfs/mountd)을 접촉한다.

그 때, Local Mount Process는 파일 Handle을 Mount된 자원의 다른 정보와 함께
/etc/mnttab에 추가한다. Mount가 완료된 후, Local Kernel은 파일 자원을
Access할 때마다 이 파일 handle을 사용한다.

  • Automount Script

    /etc/auto_master

    mount-point map-name [ options ]

    ; mount-point : mount point의 full path name 또는 partial path name

    ; map-name : direct 또는 indirect map의 name

    ; options : gener3l option

    Master map 또는 Direct map의 내용이 변경되면, 기존 automount daemon을 kill하고 다시 시작해야 한다.

# /etc/init.d/nfs.client stop | start

# more /etc/auto_master

/net -hosts -nosuid

/- /etc/auto_direct ; DIRECT MAP

/home /etc/auto_home ; INDIRECT MAP


/net -hosts -nosuid

; hosts database(/etc/inet/hosts)에 있는 각 host가 share시킨 resource를

/net/host 디렉토리 밑에서 이용 가능하게 한다.

; /etc/inet/hosts내에 "mars"라는 host가 등록되어 있고, 어떤 사용자가 다음과 같이 #cd /net/mars 라고 type하면, "mars"가 share시킨 파일 시스템은 /net/mars아래로 mount된다.

/- /etc/auto_direct ; DIRECT MAP

; /- 는 mount point의 full path name을 direct map에 정의하였음을 Automounter에게 말해 준다.

# cat /etc/auto_direct

key [ options ] location(server path)

/usr/frame -ro,soft mars:/export/unbundled

/usr/share/man -ro,soft earth:/usr/share/man,saturn:/usr/share/man


/home /etc/auto_home ; INDIRECT MAP

; /etc/auto_home에 list된 모든 mount point는 /home 아래로 mount된다.

# cat /etc/auto_home

key [ options ] location(server path)

lister -ro mars:/export/home/lister

kryten reddwarf:/export/home/kryten

** Mount point는 /home/lister, /home/kryten

Client의 각 사용자의 home 디렉토리를 Server에 위치시키는 예

# vi /etc/auto_home ; file 수정

* mars:/export/home/&

; * (wildcard character) : 모든 key 값 (client의 모든 user)

; & (substitution character) : 현재의 key값을 &위치에 대치

; Client의 /home/username은 Server의 /export/home/username을 Mount

; 네트워크상의 각 사용자가 어? host에서 Login해도 Home 디렉토리는 동일 Hard disk의 위치로 Login하기 위해서는 각 Host는 동일 auto_home Map 을 갖고 있어야 하고 각 Host의 /etc/passwd home 디렉토리가 같아야 한다.

반응형

'OS > LINUX' 카테고리의 다른 글

[펌] NFS설정하기 (Linux -&gt; HPUX)  (0) 2005.02.15
[펌] 리눅스 표준 디렉토리 구조  (0) 2004.11.24
[펌] sar 이용하여 시스템 모니터링하기  (0) 2004.09.20
[펌] sar (system activity reporter)  (0) 2004.09.20
VI Editor  (1) 2004.06.02
Posted by [PineTree]
APPLICATION/DNS2004. 6. 2. 05:38
반응형
DNS 설정 및 BIND 소스 설치
 

1. http://domain.nic.or.kr/에서 도메인 등록

⼗ 등록할 도메인 chambong.co.kr

⼗ 1차 네임서버 203.234.28.139

⼗ 2차 네임서버 168.126.63.1(2) // 코넷 네임서버 이용!








2. DNS 서버용 데몬 - BIND 소스 설치

[1] 자신의 리눅스 시스템에 BIND가 설치되어 있다면 제거한다.

# rpm -qa | grep bind

bind-x.x.x

bind-utils-x.x.x

# rpm -e bind-x.x.x

# rpm -e bind-utils-x.x.x

# rpm -qa | grep caching

caching-nameserver-x.x.x

# rpm -e caching

# rpm -qa | grep bind

#

# rpm -qa | grep caching

#

[2] http://www.isc.org/products/BIND/에서 Current release 확인 후 소스를 /usr/local/src 에 다운 받아 푼다.

[3] 소스 컴파일

# pwd

/usr/local/bind

# ls

Makefile src/

# cd src

# pwd

/usr/local/bind/src

# make clean

# make depend

# make allchambonglinux Guide 1.0

# ls .s*

.settings .systype

# rm -rf .settings

# make install

[4] 아래 디렉토리 필히 확인!

# ls

include/ lib/

make install 명령을 내리면 /usr/local/bind 디렉토리에 Library 와 Header 파일이, 그 외는 /usr/bin, /usr/sbin 에 설치됨! 데몬파일은 /usr/sbin/named 파일로 설치됨!

현재 이 상태에서는 /etc/named.conf 파일이 없기 때문에 데몬을 구동하지 못한다. 따라서 이 파일을 생성해 주고 필요한 정보를 입력해 주어야 한다.

파일위치 ftp://ftp.rs.internic.net/domain/ 에서 named.ca, named.cache, named.root 중 하나만 /var/named/ 디렉토리에 다운로드 한다. 2 ~ 3달에 한번씩 업데이트 여부를 확인한다(여기서는 named.ca를 사용함).








3. DNS 설정

[1] 네임서버 설정(확인)

#vi /etc/resolv.conf

search chambong.co.kr

nameserver 203.234.28.139 // 기본값

nameserver 168.126.63.1


[2] /etc/named.conf(BIND 8.X 이상에서의 설정 파일)

# vi /etc/named.conf

options {

directory "/var/named"; // 웹호스팅을 위한 베이스 디렉토리

dump-file "/var/tmp/named_dump.db"; // Dump 파일 디렉토리

statistics-file "/var/tmp/bamed.stats"; // 접속통계를 담아두는 파일

pid-file "/var/run/named.pid"; // 프로세서 ID 정보 기록경로

};

// 필요하지 않은 로그파일의 삭제를 위한 설정

logging {

category lame-servers { nulll; };

category cname { nulll; };

category response-checks { nulll; };

category notify { nulll; };

};

// 캐쉬 파일을 위한 설정

zone "." IN {

type hint;

file "named.ca";

};

// localhost(내부 접속용)를 위한 설정

zone "0.0.127.in-addr.arpa" IN {

type master;

file "named.local";

};

// Forward Zone 파일

zone "chambong.co.kr" IN {

type master;

file "zone-chambong.co.kr";

};

// Reverse Zone 파일

zone "28.234.203.in-addr.arpa" IN {

type master;

file "zone-28.234.203";

};


[3] /var/named/named.ca

편집할 필요가 없음!

[4] /var/named/named.local

# vi /var/named/named.local

@ IN SOA localhost. root.localhost. (

1997022700 ; Serial

28800 ; Refresh

14400 ; Retry

3600000 ; Expire

86400 ) ; Minimum

IN NS localhost.

; IP -> 이름 변환

; 1은 localhost(127.0.0.1)의 마지막 부분!

1 IN PTR localhost.


[5] Forward Zone 파일 설정 - /var/named/zone-chambong.co.kr

# vi /var/named/zone-chambong.co.kr

// www.chambong.co.kr ns.chambong.co.kr mail.chambong.co.kr study.chambong.co.kr

@ IN SOA ns.chambong.co.kr. root.chambong.co.kr. (

2000011504 ; Serial

28800 ; Refresh

14400 ; Retry

3600000 ; Expire

86400 ) ; Minimum

IN NS ns.chambong.co.kr.

IN MX 10 mail.chambong.co.kr.

ns IN A 203.234.28.139

mail IN CNAME @

www IN CNAME @

study IN CNAME @


[6] Reverse Zone 파일 설정 - /var/named/zone-28.234.203

# vi /var/named/zone-28.234.203

@ IN SOA ns.chambong.co.kr. root.chambong.co.kr. (

2000011504 ; Serial

28800 ; Refresh

14400 ; Retry

3600000 ; Expire

86400 ) ; Minimum

IN NS ns.chambong.co.kr.

; IP -> 이름 변환

; 139는 IP(203.234.28.139)의 마지막 부분!

139 IN PTR www.chambong.co.kr.

139 IN PTR ns.chambong.co.kr.

139 IN PTR mail.chambong.co.kr.

139 IN PTR study.chambong.co.kr.










4. 네임서버 테스트

[1] BIND 시작 [종료, 재시작]

# ndc start [stop, restart]

[2] 네임서버 테스팅

# nslookup

Default Server: ns.chambong.co.kr // 3 [1] 의 기본값의 네임서버

Address: 203.234.28.139

> www.chambong.co.kr

Server: ns.chambong.co.kr

Address: 203.234.28.139

name: www.chambong.co.kr

Address: 203.234.28.139

> exit

#

 

 

추가

 

OS기동시에 bind 를 기동 하자

# vi /etc/rc.local ## bind 9 if [ -f /usr/local/bind9/sbin/named ]; 
then /usr/local/bind9/sbin/named -u bind -c /etc/named.conf echo "bind 9.2.1 start" fi 
반응형

'APPLICATION > DNS' 카테고리의 다른 글

DNS 서버 정보  (0) 2011.05.16
DNS 서버 설정 검사하기  (0) 2009.09.17
[펌] DNS 셋팅  (0) 2004.06.02
Posted by [PineTree]
OS/SOLARIS2004. 6. 2. 05:38
반응형

유닉스 계열 컴퓨터에서의 DNS 서버 설정은  거의 비슷합니다.

bind 라는 소프트웨어를 사용하는데..
이 소프트웨어를 설치하면 돌아가는 데몬이 in.named 라는 데몬입니다.
솔라리스에는 전체설치를 하시면 이 소프트웨어는 기본 설치 되어 있습니다.

이 데몬은 시스템 부팅시에 /etc/named.conf 파일의 존재 여부에 따라 시작이 결정됩니다.

일단 DNS 의 구성 파일부터 살펴 봅시다.
dns 구성 파일 종류
/etc/named.conf  -> dns 환경 설정 파일
/var/named/zoneinfo -> dns 이름을 iP 로 바꿔주는 데이터 파일
/var/named/revzone -> IP 를 dns로 바꿔주는 데이터 파일
/var/named/localzone -> loopback dns 파일
/var/named/named.root -> root name server 기록 파일

할이야기가 많은데 .. 천천히 가보죠..

먼저.. /etc/named.conf 파일부터 봅시다.

전제조건
====================================================================

= 1.  domain name 은 sunsol.net 으로 한다.
= 2. IP 주소 권한 영역은  : 211.108.174.0 ~ 255 으로 한다.
= 3. 주석문은 #, /*, */ 이다 하지만 ';' 는 문장의 끝을 뜻하는 문자이다. 주석과 마찬가지로 해석된다.
= 4. /var/named 를 미리 만들고 이곳은 dns 데이터 파일의 저장 장소로 한다.
= 5. Name Server 는 ultra30 번으로 하고 IP 주소는 211.108.174.30 이다.
= 6. named.root 파일은 ftp://ftp.rs.internic.net/domain/named.root 에서 다운받기로 한다.  
===================================================================

1. /etc/named.conf
- dns 환경 설정 파일로 dns 데이터 파일이 저장될 위치와 각 파일이름 등을 정의한다.
-
-  내용..


# vi /etc/named.conf
options {
directory "/var/named";  # dns 파일들이 저장될 위치 정의
pid-file "/etc/named.pid"; # in.named 프로세스의 pid 값을 저장하고 있는 파일 정의
};

zone "sunsol.net" in {    # sunsol.net zone 을 정의 한다. : 도메인이름 -> IP로
        type master;       # 현재 이 서버의 역할 master 로 역할한다.  
        file "sunsolnet";    # 이 파일이름은 sunsolnet 이다.
};
zone "174.108.211.in-addr-arpa" in { #  IP 를 도메인 이름을 바꾸어줄 IP 영역대 정의
        type master;
        file "invsunsol";             # 파일이름은 invsunsol 이다.
};
zone "0.0.127.in-addr.arpa" in {  # loopback 도메인 설정
        type master;
        file "loopback";           # 파일이름은 loopback 이다.
};
zone "." in {
        type hint;
        file "named.root";    # 내 도메인 안에 있지 않은 도메인네임을 질문할 최상위 도메인 서버정보를 담고 있는 파일 설정
};



- 위에서 정의하는 파일은 모두  /var/named 라는 공간에 저장된다는 사실을 주의 하자.. 그러면 /var/named 는 여러분이 미리 만들어 주어야 한다.
- 이렇듯 named.conf 파일은 반드시 /etc/ 디렉토리 아래에 위치해 있어야 하며.. 각 영역 파일들의 위치를 정의하고 있다.


2. /var/named/sunsolnet 파일

- 다음은 sunsol.net 이라는 도메인이 가지고 있는 host에 대해 외부에 이름을 알려줄 수 있는 IP 어드레스를 지칭한다.


# vi /var/named/sunsolnet
sunsol.net.     IN  SOA  ultra30.sunsol.net. root.ultra30.sunsol.net. (
        20011107        ;    시리얼 넘버, 호스트를 추가한다거나 아이피를 수정할 때 마다 이 값은 반드시 증가해야 한다.
        10800           ;   재전송 타이머 초 단위 현재 표기되어 있는 시간은 12시간
        3600            ;   재시도 타이머 초단위 현재 표기값은 한시간
        604800          ;  만기 값   초단위 현재 표기값은 1주
        86400           ;  캐시에 저장된 값을 유지할 시간 현재 표기값 하루
)
; Name Servers

sunsol.net.     IN  NS  ultra30.sunsol.net.    # ultra30 호스트를 Name Server 로 둔다.

;Host Addresses
; 여기서부터 호스트에 대한 IP 주소 정의 즉, 여기에 정의한 값을 이 DNS 서버에서 관리한다.

localhost.sunsol.net.   IN  A  127.0.0.1         
ultra30.sunsol.net.     IN  A  211.108.174.30
ultra20.sunsol.net.     IN  A  211.108.174.20
ultra3.sunsol.net.      IN  A  211.108.174.13

; Aliases
; 위 호스트 에 대한 별명(CNAME) 즉, ultra20번은 ultra20.sunsol.net 이기도 하며 www.sunsol.net 이기도 하다.

www.sunsol.net.         IN  CNAME  ultra20.sunsol.net.
ftp.sunsol.net.         IN  CNAME  ultra3.sunsol.net.   


 

- 기타 사항
  IN : Internet class
  A : 뒤에 나오는 데이터 타입을 정의 IP 주소가 오는 것을 볼 수 있다.
- 주의 : 반드시 도메인 명 뒤에는 . 을 찍어 주어야 한다. 그래야 완전한 도메인 명이 성립된다.


3. /var/named/invsunsol 파일


# vi /var/anmed/invsunsol
174.108.211.in-addr.arpa.  IN  SOA   ultra30.sunsol.net. root.ultra30.sunsol.net. (
        20011106        ;  앞의 zone 파일과 같습니다.
        10800           ;
        3600            ;
        604800          ;
        86400           ;
)


; Name Servers
; 이부분은 Name 서버의 IP 주소를 도메인 네임으로 바꾸는부분입니다.

30.174.108.211.in-addr.arpa.       IN  NS  ultra30.sunsol.net.

;PTR records
; 이부분 은 각 IP 주소를 도메인 네임과 일치시키는 부분입니다.
; 앞의 sunsolnet 파일과 같은 항목이 들어가 있어야 합니다.
30.174.108.211.in-addr.arpa.    IN  PTR  ultra30.sunsol.net.
20.174.108.211.in-addr.arpa.    IN  PTR  ultra20.sunsol.net.
13.174.108.211.in-addr.arpa.    IN  PTR  ultra3.sunsol.net.



- 위의 파일은 IP 로 질의가 들어왔을 때 도메인 네임을 되돌려 주는 부분입니다. 그러므로 나오는 항목은 sunsolnet 존 파일과 동일해야 합니다.

4. /var/named/loopback


# vi /var/named/loopback
0.0.127.in-addr.arpa.  IN  SOA  ultra30.sunsol.net. root.ultra30.sunsol.net.
(
        20011107 ;
        10800   ;
        3600    ;
        604800  ;
        86400   ;
        )
; Nameservers
; 자기자신의 루푸백 도메인을 가리키는 곳입니다.
;여기서는 자기자신의 값만 정의 되어 있으면 됩니다.

1.0.0.127.in-addr.arpa.   IN  NS ultra30.sunsol.net.

:
1.0.0.127.in-addr.arpa. IN  PTR  localhost         


 

5. /var/named/named.root

- 원래 DNS 서버는 자기자신이 담당하고 있는 영역 이외의 부분은 자료로서 가지고 있지 않습니다. 위의 영역에 해당하지 않는 도메인은 named.root 파일에 정의된 root 도메인 서버로 질의를 넣어 결과값을 얻고 그 얻은 내용은
cache 파일에 저장합니다. 캐쉬파일에 넣어두는 기간은 앞에 설명드렸던 타이머에 의해 정의 됩니다.
- 이 파일은 수정을 하지 않습니다. 이 파일은 internic 에서 관할하고 있는 nameless root 서버의 위치를 정의하고 있으므로 아래 주소에서 다운 받아 옵니다.
- ftp://ftp.rs.internic.net/domain/name.root


# vi /var/named/named.root
이 항목은 내용이 굉장히 많습니다. 따로 표기 하지 않겠습니다.
위 주소에서 다운 받으시기 바랍니다.
이 파일은 원래 3달에 한번씩 internic 에서 다운 받도록 권장하고 있습니다.
하지만 그럴 필요는 없습니다. root DNS 서버가 바뀌는 일은 거의 없으니까요..

6. DNS 서버 설정
위의 작업이 다 완성 되면 네임 서버를 자기자신으로 맞추어 줍니다.


# vi /etc/resolv.conf
domain sunsol.net
nameserver 211.108.174.30

 

7. in.named 구동


#  /etc/init.d/inetsvc stop
#  /etc/init.d/inetsvc start

 

8. 확인
# nslookup
- 이 명령을 내린후 아무런 에러 없이 작동 되면 완성된 겁니다.

 

 

========= 끝으로 =====================

DNS 작업은 일일이 수작업으로 해야 하는 만큼 부담이 많이 됩니다.

물론 Windows 같은 경우야 마우스로 클릭하면 되는 작업이지만 유닉스는 그렇지 않습니다.
이게 IPv6 로 완전히 바뀔 경우 DNS 수작업으로 한다는 것은 거의 불가능에 가까워 집니다.. 물론 그에 대비한 툴이나 bind 버전이 새로 갱신되겠지만.. 128bit 의 IP 주소를 일일이 손으로 적는다고 해보십시오..ㅡㅡ;  거의 죽음입니다. ㅡㅡ;

암튼.. 한번이상의 에러를 겪을 겁니다. 될 수 있으면 위 내용을 출력하셔서 꼼꼼히 따라해보시기 바랍니다. 아니면 파일로 카피해서
복사해 넣고 자기 환경에 맞게 수정해도 상관없습니다.

편한대로 하시기 바랍니다. .
참고로 DNS 설정은 여기까지 이지만.. 나중에 에러를 보시려면

/var/adm/messages 파일을 유심히 살펴보시기 바랍니다.

tail -f /var/adm/messages 파일을 보시면 /etc/init.d/inetsvc 를 구동 시킬 때 마다. 오류 위치가 나타납니다..
일일이 어디서 오류가 났는지.. 찾아 다니는 수고를 줄일 수 있죠..^^;

 그럼.. 이만..

==========================================================

반응형
Posted by [PineTree]
APPLICATION/DNS2004. 6. 2. 05:37
반응형

Bind9 설정에서 네임서버 셋팅에 대해 정리 해봅니다.

 

root shell> vi /etc/resolve.conf

 

nameserver 네임서버로 지정한 호스트의 ip를 적어 줍니다.

호스트의 등록은 도메인 등록기관에서 행하실수 있습니다..

 

/wq: 저장하고 빠져 나옵니다. 

 

root shell>vi /etc/name.conf

 

zone 화일을 구성하는곳입니다.

마스터 네임서버에 대한 설정을 적습니다.

 

본인의 Ip 를 211.345.567.890

인버스 ip를 지정한다 ..211.xxx.1.2라면 ... 1.xxx.211 이런식으로 꺼꾸로 쓴다..마지막 2는 뺀다.

IP 대역폭을 정하는 곳이다.

 

zone "567.345.211.in-addr.arpa" IN { type master; file "네임서버명.rev"; allow-update { none; };};

IP대역을 세팅한다...

 

zone "네임서버도메인" { type master; file "도메인.zone"; allow-update { none; }; };

정도 로 해주시면 됩니다..

 

도메인이 추가될때마다 여기서 설정을 해주시면 됩니다...도메인추가시는

 

zone "도메인네임" { type master; file "도메이네임.zone"; allow-update { none; }; };

정도로 추가해주시면 됩니다.

 

root shell> cp /var/named/localhost.zone /var/named/네임서버도메인.zone

기본 정보를 카피하여 편집합니다.

 

root shell>vi /var/named/네임서버도메인.zone

 

$TTL 86400
@       IN      SOA     ns.xxxx.xxx.   webmaster.xxx.xxx.  ( 
                                      20040422   ; Serial
                                      10800      ; Refresh
                                      3600       ; Retry
                                      3600000     ; Expire
                                      43200      ; Minimum
                                      )
;NameServer Setting Hun~ hahaha

        IN      NS      ns.xxxx.xxx.
        IN      A       211.33.xxx.xxx
        MX      10      mail

        IN      HINFO   "INTEL Pentium  "redhat"


; Host name & Infomations

 ns                          IN       A            211.33.xxx.xxx
 www                      IN       CNAME        @
 mail                        IN       A            211.33.xxx.xxx

 

 

 

mail 설정과 ns 및 www를 잡아 주었다 ..

여기서 www부분의 CNAME 를 지정해 주지 않게 되면 name.conf화일에서 도메인을 2번 설정해주어야 한다.. www.xxx.xxx 와 xxx.xxx 이렇게 하는 수고를 덜기 위해서 이다..

 

MX10 mail 부분은 zone 화일을 도메인을 추가시마다 작성하지 않고 자동으로 잡기 위해서

이러한 설정을 사용하였으며 .. 서브도메인을 사용하거나 기타 도메인의 특성을 살릴려면.

zone 화일을 따로 만들기를 권한다.

 

본인의 name.conf 형식은

 

zone "nameserver.net" { type master; file "nameserver.zone"; allow-update { none; }; };

 

zone "도메인1.com" { type master; file "nameserver.zone"; allow-update { none; }; };

 

zone "도메인2.com" { type master; file "nameserver.zone"; allow-update { none; }; };

 

....이런식으로 zone 화일을 하나만 두고 쓴다 ..그러나

 

zone "도메인3.com" { type master; file "xxx.zone"; allow-update { none; }; };

의 경우가 있는데 이는 언급한 바와 같이 서브 도메인이나 기타 설정이 상이할경우에 쓴다...

 

 

네임서버명.rev 화일을 만들어 보기로 한다.

네임서버명.rev는 처음에 셋팅했던 name.conf에서 설정해주었다...

 

root shell> cp/var/named/localhost.rev /var/named/네임서버명.rev

 

$TTL 86400
@       IN      SOA     ns.xxx.xxx. webmaster.xxx.xxxt.  ( 
                                20040422 ; Serial
                                10800      ; Refresh
                                3600       ; Retry
                                3600000     ; Expire
                                43200      ; Minimum
                                )
; Name Server
 
                    IN      NS      ns.xxx.xxx.
                    IN      MX 10   mail

  166             IN      PTR    xxx.xxx.

 

 

여기서 PTR 부분에 아까 생략했던 IP의 마지막 부분을 적어 준다..

또 같은 대역에서 다른 서비스를 하고 있는 IP가 있다면 여기서 셋팅한다.

 

 166             IN      PTR    xxx.xxx.

 160             IN      PTR    ftp.xxx.xxx.

 

이런식이다..

 

이것으로 nameserver의 허접한 ^^;; 강의 였지만 세팅을 마무리 지어보기로 한다 ^^;;;

 

참...마지막으로 nameserver 에 세팅되었다고 끝나는것이 아니다..

 

APACHE에 설정을 잡아 주어야 도메인들이 연결되는것이다.

 

NameVirtualHost xxx.xxx.xxx.xxx  # 이곳에 자신의 호스트인 IP를 적는다.

 

<VirtualHost xxx.xxx.xxx.xxx>
        ServerName 도메인주소 
        ServerAdmin webmaster@xxx.xxx
        ServerAlias www.xxx.xxx

        DocumentRoot /home/xxx/public_html
</VirtualHost>

 

이렇게 마무리까지 지어 준다면 ...

 

만약 2차 도메인이 있다면 2차 도메인 부분도 ..세팅해준다.

 

<VirtualHost xxx.xxx.xxx.xxx>
        ServerName 2차도메인주소 
        ServerAdmin webmaster@xxx.xxx
        DocumentRoot /home/xxx/public_html
</VirtualHost>

 

 

/wq 하고 나오면 ...네임서버의 셋팅은 어느정도 마무리 되었다고 본다

----끝-----

반응형

'APPLICATION > DNS' 카테고리의 다른 글

DNS 서버 정보  (0) 2011.05.16
DNS 서버 설정 검사하기  (0) 2009.09.17
[펌] DNS 설정 및 BIND 소스 설치  (0) 2004.06.02
Posted by [PineTree]
OS/SOLARIS2004. 6. 2. 05:37
반응형
   1) 도메인 등록

   2) /etc/named.conf

   3) /var/named/* file create

   4) 정리 및 테스트

----------------------------

한 개의 서버에 ftp, mail, www 서비스를 할려고 할 때 DNS서버 세팅에 관한 것을 다루도록 하겠다.

(1) 도메인 등록

http://domain.internetnames.co.kr/main/main.asp에서 도메인을 등록한다.
예를 들어
domain           : nuxschool.orgt
name server1 : ns1.nuxschool.org  (203.247.51.32)
name server2 : ns2.nuxschool.org  (203.247.51.33)
라고 가정하자

(2) /etc/named.conf 파일을 생성하자

/etc/named.conf 파일이 기존에 존재하지 않는다. 생성하자.

# vi /etc/named.conf
options  {
         directory   "/var/named";
};

zone "." in {
      type hint;
      file "named.root";
};

zone "nuxschool.org" in {
      type master;
      file "nuxschool.zone";
};

zone "51.247.203.in-addr.arpa" in {
      type master;
      file "nuxschool.rev";
};

zone "0.0.127.in-addr.arpa" in {
      type master;
      file "loop.back";
};

(3) /var/named/*  file들을 만들자

/var/named/named.root
/var/named/nuxschool.zone
/var/named/nuxschool.rev
/var/named/loop.back
위의 파일들을 만들자

(3-1) /var/named/named.root 파일을 다운바다자

named.root파일을 다운받자
# ftp ftp.kr.internic.net
id      : anonymous
pass : 멜 주소
ftp> cd domain
ftp> lcd /tmp
ftp> get named.root
ftp> quit
# cd /tmp
# mkdir /var/named
# cp named.root /var/named

(3-2) /var/named/nuxschool.zone 파일을 생성하자.

$ORIGIN nuxschool.org.

nuxschool.org.     IN  SOA  ns.nuxschool.org.   root.ns.nuxschool.org. (
       2002112501    ; serial number
       43200         ; refresh (12hr)
       3600          ; retry (1hr)
       604800        ; expire (7days)
       86400  )       ; ttl (1day)

;---------------------------------
;  Domain Section
;---------------------------------

nuxschool.org.      IN    NS   ns.nuxschool.org.

;---------------------------------
;  Host Information Section
;---------------------------------

;  Example  :   server1    IN    A    192.168.1.2

localhost           IN     A    127.0.0.1
www                 IN     A    203.247.51.32
ftp                 IN     A    203.247.51.32
mail                IN     A    203.247.51.32

;---------------------------------
;  Mail Information Section
;---------------------------------

nuxschool.org       IN     MX   10   mail.nuxschool.org

(3-3) /var/named/nuxschool.rev 파일을 생성하자.

$ORIGIN 51.247.203.IN-ADDR.ARPA.

51.247.203.IN-ADDR.ARPA.     IN  SOA  ns.nuxschool.org.   root.ns.nuxschool.org.
(
       2002112501    ; serial number
       43200         ; refresh (12hr)
       3600          ; retry (1hr)
       604800        ; expire (7days)
       86400  )       ; ttl (1day)

;---------------------------------
;  Domain Section
;---------------------------------

51.247.203.IN-ADDR.ARPA.      IN    NS   ns.nuxschool.org.

;---------------------------------
;  Host Information Section
;---------------------------------
;  Example  :   2    IN    PTR  server1

32                  IN     PTR   ns.nuxschool.org.
32                  IN     PTR   mail.nuxschool.org.
32                  IN     PTR   www.nuxschool.org.

(3-4) /var/named/loop.back 파일을 만든다.


$ORIGIN 0.0.127.IN-ADDR.ARPA.

0.0.127.IN-ADDR.ARPA.     IN  SOA  ns.nuxschool.org.   root.ns.nuxschool.org. (
       2002112501    ; serial number
       43200         ; refresh (12hr)
       3600          ; retry (1hr)
       604800        ; expire (7days)
       86400  )       ; ttl (1day)

;---------------------------------
;  Domain Section
;---------------------------------

0.0.127.IN-ADDR.ARPA.      IN    NS   ns.nuxschool.org.

;---------------------------------
;  Host Information Section
;---------------------------------
;  Example  :   2    IN    PTR  server1

1                  IN     PTR   localhost.nuxschool.org.

(4) 정리 및 테스트

(4-1) /etc/resolv.conf 파일을 수정한다.

# vi /etc/resolv.conf
search nuxschoo.org
nameserver 203.247.51.32

(4-2) in.named 데몬을 띄운다.

# /usr/sbin/in.named

(4-3) 테스트 해 본다.

# nslookup
> mail.nuxschool.org
> ftp.nuxschool.org

# pkill -INT in.named
# view /var/named/named_dump.db
반응형
Posted by [PineTree]
OS/SOLARIS2004. 6. 2. 05:36
반응형

Sun One

 

프로세스의 갯수는 CPU갯수만큼.

 

웹서버 정지

 

/webserver_root/https-admserv/stop

 

웹서버 Access log

 

tail -f /webserver_root/https-admserv/logs/access

 

환경설정

 

/webserver_root/https-instance/config/magnus.conf

RqThrottle 128 (디폴트)

Maximum Simultaneous Requests

 

Listen Socket 에 대한 환경화일

/webserver_root/https-instance/config/server.xml

 

Maxsessions : 1000 (default)

timeout : 1800초(30분)

할당된 세션이 아무런 작업을 하지 않고 넘긴시간이 지날경우 해당 세션을 파기

 

Maximum Heap Size

 

default : 16777216byte (1.6G)

 

reapInterval 설정된 시간마다 세션의 휴지시간을 Timeout과 비교하여 Timeout 된 세션을 회수

기본값 600초(10분)

일정 시간마다 일괄적으로 세션을 회수

 

docs.sun.com Administrator's Guide ONE Web Server , Enterprise Edition 참조

 

Solaris 8 일경우에는 개선된 Thread Library 를 사용하기 위하여 시스템에서 제공되는 lwp 라이브러리를 사용하는 것이 성능에 도움이 된다.

다음과 같은 경로 추가

webserver_root/http-instnace/start

 

LWP_LIB_PATH=/usr/lib/lwp

LD_LIBRARY_PATH=${LWP_LIB_PATH}:

 

1개의 HTTP 데몬에 60MB의 Physical Memory 를 권장한다.

 

메모리 계산법 :

Process x 60MB +{(Concurrent User - 50) x 0.512MB}

= 4 x 60 + {(100 - 50) x 0.512} = 85.6MB

 

프로세서 4개 , 동시접속자 100명 , 1명당 512 K를 권장

 

응답시간이 크다는 것은 웹서버가 과부하 상태라는 것을 뜻한다.

과부하가 되는 이유는 어플리케이션의 문제 또는 시스템 리소스 부족인 경우가 많으므로 먼저 CPU,Physical Memory, 스왑 메모리, Disk I/O 사용량을 점검한다.

시스템이 정상적인 상황에서 Delay 만 클 경우 서버측 프로그램들의 상태를 점검한다.

 

모니터링을 위하여 Perfdump 실행

1.obj.conf 파일의 defalut object tag 안에 다음 내용을 추가한다.

NameTrans fn=assign-name from="/.perf" name="perf"

 

<Object name="perf">

Service fn="service-dump"

</Object>

 

2.Server manager - monitor 탭 - Monitor Curren Activity 메뉴에서 monitoring 을 반드시 활성화시킴

 

3. 웹서버 재기동

 

4. http://호스트:포트/.perf 접속

 

BMT시에는 keepalive 접속을 허용하지 말아햐 한다.

 

/etc/system

rlim_fd_max=8192

rlim_fd_cur=4096

 

java.lang.OutOfMemoryError :

java heap 영역 부족할 경우발생

 

/webserver_root/https-instance/config/jvm12.conf

jvm.minHeapSize 1048576 JVM이 사용할 메모리 영역을 웹서버 시작시 공간을 확보한다.

jvm.maxHeapSize 16777216 JVM이 사용 가능한 최대 메모리량을 지정한다.

 

Web server Down 메시지

 

/var/adm/messages uxwdog : server exit : status 1 (Interrupted system call)

 

 

반응형
Posted by [PineTree]