서버상태 확인 - sar | |
등록일 : 2002년 12월 05일 18:27 | |
조회수 : 2 | 글쓴이 : 주인장 |
|
'OS > Log' 카테고리의 다른 글
Perflib Error None 1008 (0) | 2006.06.08 |
---|---|
[펌] 유용 싸이트 모음*:..:* (0) | 2004.06.02 |
[펌] RAID란..? (0) | 2004.06.02 |
서버상태 확인 - sar | |
등록일 : 2002년 12월 05일 18:27 | |
조회수 : 2 | 글쓴이 : 주인장 |
|
Perflib Error None 1008 (0) | 2006.06.08 |
---|---|
[펌] 유용 싸이트 모음*:..:* (0) | 2004.06.02 |
[펌] RAID란..? (0) | 2004.06.02 |
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 문제를 확인해야 한다.
[펌] 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 |
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 시스템 호출이 전송한 문자수 (바이트수) /초
[펌] NFS설정하기 (Linux -> 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 |
[펌] Solaris ufsdump를 이용한 boot disk backup (0) | 2005.02.18 |
---|---|
[펌] Sun장비 간단한 NFS 서버 및 NFS 클라이언트 설정하는 방법 (0) | 2005.01.24 |
[펌] [강좌] DNS Server 설정.. 솔라리스 기준입니다.. ^^; (0) | 2004.06.02 |
[펌] [솔라리스] DNS Server (0) | 2004.06.02 |
[펌] Sun One Webserver (0) | 2004.06.02 |
NFS(Network File System)
1. what's NFS
1980년대 중반에 SUN에서 개발되어 현재 여러 운영체제에서 지원되는 서비스로 서버의 리소스를 클라이언트 상에서 마치 지신의 리소스를 사용하는 것과 같이 사용할수 있게 제공되어 지는 것이다. NFS가 일단 설치되면 클라이언트 상의 사용자들은 마치 자신의 시스템에 있는 것처럼 서버의 파일 시스템에 파일들을 읽거나 쓸 수 있다.
2. 관련 파일들
|
Server |
Client |
Commands |
share / unshare |
mount / umount |
Files |
/etc/dfs/dfstab /etc/dfs/fstypes |
/etc/vfstab |
Daemons |
/usr/lib/nfs/nfsd |
/usr/lib/nfs/statd |
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 디렉토리가 같아야 한다.
[펌] NFS설정하기 (Linux -> 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 |
|
|
DNS 서버 정보 (0) | 2011.05.16 |
---|---|
DNS 서버 설정 검사하기 (0) | 2009.09.17 |
[펌] DNS 셋팅 (0) | 2004.06.02 |
|
[펌] Sun장비 간단한 NFS 서버 및 NFS 클라이언트 설정하는 방법 (0) | 2005.01.24 |
---|---|
[Solaris] The NFS Distributed File System의 설정방법 (0) | 2004.09.11 |
[펌] [솔라리스] DNS Server (0) | 2004.06.02 |
[펌] Sun One Webserver (0) | 2004.06.02 |
[펌] 시스템 켜기와 끄기 (UNIX - Sun Solaris) (0) | 2004.06.02 |
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 하고 나오면 ...네임서버의 셋팅은 어느정도 마무리 되었다고 본다
----끝-----
DNS 서버 정보 (0) | 2011.05.16 |
---|---|
DNS 서버 설정 검사하기 (0) | 2009.09.17 |
[펌] DNS 설정 및 BIND 소스 설치 (0) | 2004.06.02 |
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 |
[Solaris] The NFS Distributed File System의 설정방법 (0) | 2004.09.11 |
---|---|
[펌] [강좌] DNS Server 설정.. 솔라리스 기준입니다.. ^^; (0) | 2004.06.02 |
[펌] Sun One Webserver (0) | 2004.06.02 |
[펌] 시스템 켜기와 끄기 (UNIX - Sun Solaris) (0) | 2004.06.02 |
[펌] Basic Network Setup (Sun Solaris) (0) | 2004.06.02 |
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)
[펌] [강좌] DNS Server 설정.. 솔라리스 기준입니다.. ^^; (0) | 2004.06.02 |
---|---|
[펌] [솔라리스] DNS Server (0) | 2004.06.02 |
[펌] 시스템 켜기와 끄기 (UNIX - Sun Solaris) (0) | 2004.06.02 |
[펌] Basic Network Setup (Sun Solaris) (0) | 2004.06.02 |
[펌] 부팅 Process (UNIX - Sun Solaris) (0) | 2004.06.02 |