AIX 서버 점검 방법(명령어)
errpt
errpt -a
errpt > /tmp/errlog
errpt -a >> /tmp/errlog
errclear 0
error report 를 확인하고, 발생 에러의 자세한 정보를 보고, 그 에러들을 따로 저장한뒤 errpt를 clear
lsps -a (paging 확인)
lsmcoed (펌웨어 버전확인)
oslevel -r (os 버전확인)
lsdev -Cc disk (physical disks 확인)
lsdev -Cc memory (memory 확인)
lsttr -El mem0 (memory 확인)
lsattr -El mem0 a goodsize (memory goodsize 확인)
lsdev -Cc processor (물리적인 cpu의 갯수 확인)
bindprocessor -q (현재 동작중인 프로세서 갯수)
topas (4.3 버전은 topas, 4.2 이하 버전은 top 시스템 성능 정보 확인)
lsdev -Cc adapter
(Ethernet -SX: 광)
(Base -TX : UDP 케이블)
(FCAdapter : SAN 스위치)
(LPARAdapter virtual serial) -LPA 로 나뉜 하나의 서버(두개의 파티션) 끼리 통신하기 위한 가상 아답터)
lsvg
lsvg -o
lsvg -l
bootlist -m normal -o (boot 가능한 disk 확인)
lscfg -vp | grep -p 'alter' (lscft : 부품들의 자세한 정보 확인)
no -a (Infortant Network Option Values)
(no -a | grep thewall
no -a | grep sb_max
no -a | grep tcp_sendspace
no -a | grep tcp_recvspace
no -a | grep udp_sendspace
no -a | grep udp_recvspace
no -a | grep rfc 1323
no -a | grep tcp_mssdflt
no -a | grep ipforwarding)
uname -M (System Model)
uname -m (Macine ID)
uname -u (System ID)
uname -au(All Information)
lsattr -E -H -I sys0 (System Attributes)
instfix -i | grep AIX_ML (AIX maintenance Level Check)
lsdev -C -H
lsslot -c pci (pci hot plug slot 나열 : not plug - rebooting 이나 down 없이 이동 가능한 개체)
lsfs -l (file system list)
netstat -nr
ippchk -v (file set 버전 일관성 검사)
alog -o -f /var/adm/ras/booting (booting log 확인)
vmstat -s (프로세서 상태,메모리 사용량, 디스크 입출력, CPU 사용량 통계)
iostat -a 5 10 (I/O에 대한 통계를 5초 단위로 10번출력)
sar -P ALL 5 10
ps aux | head -1; ps aux | sort -rn +2 | head -10
svmon -메모리의 현재 상태에 대한 정보 (단위는 page 단위)
svmon -G : 메모리 실제할당해서 사용하는 량
svmon -P : 시스템 프로세스별 메모리 통계확인
svmon -F : 메모리 사용량을 % 로 확인
AIX 성능 점검
CPU
. %sys + %user 가 80% 이상이면 병목으로 판단
- sys : kernel 부분이 수행되는 영역, 프로세스 스케줄링, I/O, drive, network과 관련
- wait : 디스크 I/O 작업이 끝날 때가지 기다리는 idle time
- user : 사용자 프로세스, application, database등
- idle
. 모니터링 명령어
# sar 1 5 : 1초 5회 평균 CPU 사용율
# sar -P ALL 1 5 : 각 Processor 별 사용율
# sar -q 1 5 : 시스템에서 사용한 평균 queue 및 process 표시
- runq-sz : 수행되고 있는 kernel thread의 평균 수
- %runocc : queue 가 실행된 시간의 백분율
- swpq-sz : wait 상태인 kernel thread의 평균 수
- swpocc : swap 상태인 시간의 백분율
# vmstat 1 5 : cpu 및 memory 사용율
- r : 수행중인 kernel thread 수
- b : swap에 대기중인 kernel thread 수
# ps aux
- %CPU : 프로세스가 수행된 후 사용한 CPU 시간을 전체 경과시간으로 나눈 백분율
- %MEM : 프로세스가 수행될 때 사용한 실 메모리 백분율
- SZ : 프로세스의 data 영역을 위해 할당된 virtual page size로 1Kbyte 단위
- RSS : 프로세스의 실 메모리 크기 1Kbyte 단위
Memory
. paging space In/Out이 10 이상이거나 page fault가 1000번 이상 발행하면 병목으로 판단
. memory 부족인지 user application이나 file cache에 의한 것인지 고려
- free : file cache나 프로세스가 사용하고 있지 않는 영역
- fie cache : 사용 가능한 메모리를 파일 작업시 I/O 성능 향상을 위해 cache로 사용
- paging(4KB) : 실 메모리가 부족한 경우 발생, 실 메모리에서 사용되지 않았던 영역을 디스크로 옮기고
그 부분을 free 영역으로 전환하여 process를 처리
- page fault : kernel이 필요한 data나 process의 페이지를 실 메모리에서 찾지 못하는 횟수
- page In : 필요한 page만큼 virtual memory manager(VMM)에 의해 paging space에서 read하는 초당 횟수
page out 값에 따라 발생하는 real I/O 값
- page Out : 실 메모리 free 영역 확보를 위해 VMM이 paging space에서 read out하는 초당 회수
page in 값에 따라 발생하는 real I/O 값
- page space In : paging 영역에서만 발생하는 page read
- page space out : paging 영역에서만 발생하는 page out
. 모니터링 명령어
# vmstat 1 5
- avm : 프로세스가 수행되는 동안 paging 공간에 할당된 active virtual page
- fre : VMM이 필요시 사용할 수 있는 memory free list
- re : page input/output list
- pi : paging space에서 read in 된 page
- po : paging space에서 read out 된 page
- fr : paged freed(page replacement)
- sr : page-replacement 알고리즘에 따라 page 찾기
- cy : page-replacement 알고리즘에 따른 clock cycle
# svmon -G
- memory : 실 메모리 사용 통계
. size
. inuse : 프로세스나 file cache로 사용되는 메모리
. free
. pin : pinned 영역에서 사용되는 메모리
. virtual : virtual 영역에 할당된 메모리
- pg sapce : paging 영역의 사용 통계
. size
. inuse
- pin : pinned 영역의 사용 통계
. work : working(프로세스) 메모리 중 pinned 영역에서 사용되는 메모리
. pers : persistent(file cache) 메모리 중 pinned 영역에서 사용되는 메모리
. clnt : client(NFS, cd) 메모리 중 pinned 영역에서 사용되는 메모리
- in use : 실 메모리 사용 통계
. work
. pers
. clnt
DISK I/O
. %iowait가 40% 이상이거나 사용자 application에 의해 특정 disk의 %tm_act가 70%를 초과하는 경우 병목으로 판단
- read : 초당 read 하는 데이터 크기 1Kbyte 단위
- write
- busy% : 디스크에 작업한 시간을 경과 시간으로 나눈 백분율
. 모니터링 명령어
# iostat
- %tm_act : 물리적 디스크에서 작업한 시간의 백분율
일반적으로 40%를 초과하게 되면 I/O를 완료하는 시간이 길어져 응답시간이 증가
- Kbps : 초당 디스크에 이동된 데이터 양 Kbype 단위
- tps : 초당 디바이스 드라이브 단계에서 해당 물리적 디스크로 I/O를 요청하는 횟수
- Kb_read : 물리적 디스크에 read한 양 Kbyte 단위
- Kb_wrtn : 물리적 디스크에 write한 양 Kbypte 단위
Network Traffic
. network bandwidth의 30% 이상을 사용하는 경우 병목으로 판단
- read
- write
. 모니터링 명령어
# netstat -m
# netstat -v
# netstat -ni
topas 명령어를 이용한 모니터링
1. CPU
. Kernel : CPU의 현재 사용량, 70이 넘어가면 점검 필요
. User : 각 프로세스들이 사용하는 CPU 사용량
. Wait : 처리 대기중인 프로세스의 양(10미만)
. Idle :
2. Memory
. Real,MB : 메모리의 실제 크기(MByte)
. %Comp : 현재 메모리 사용율이며, 높을수록 좋다
. %Noncomp : file cache로 할당된 영역
. %Client : aix의 file system을 위한 영역
3. Paging Space
. Size,MB : Paging Memory로 할당된 크기
. %Used : 사용중인 양, 낮을수록 좋다
. %Free
=================================================
# uname –amML : 서버 정보 확인
# uname -L : 서버 시리얼넘버 확인
# oslevel –s : OS버전확인(TL SP확인)
# instfix –i |grep ML(and SP) : OS버전 확인
# ls –al .*Com* : 패치 확인
# lsattr –El mem0 : 메모리 용량 확인
# topas : 시스템(프로세스, 메모리, 네트워크) 체크.
# lsdev –Cc disk : 디스크 확인
# lspv : 디스크 활성상태확인
# lsvg –l [볼륨그룹명] : 볼륩그룹 확인
# ifconfig – a : ip정보확인
# netstat –rn : 라우트 정보 확인 (디폴트게이트웨이 확인)
# ping [IP or Host Name] : ip 접근확인
# lsdev –Cc if : 네트워크 인터페이스 확인
# lsdev –Cc adapter : 네트워크 카드 확인
# lsdev –Cc pci : pci슬롯 확인.
# lscfg –v : FRU 확인. (lsdev –Cc, lsdev –P)
# lsconf : 장치정보
# df –k : 파일시스템 용량체크 [ -k (kilo bytes), -m (mega bytes), -g (giga bytes) ]
# lsdev –Cc processor : 프로세tm 수 확인
# ps –ef | grep [ Process Name or Pid] : 실행중인 프로세스 검색
# du –sk * : 하위 디렉토리 및 파일 용량정보 출력
=================================================
****************** IBM bundles install. ****************************
#vi /usr/sys/inst.data/user_bundles/MyBundle.bnd
I:sysmgt.websm.security. // write the file which you want to install.
#smitty easy_install
// select Mybundle which you've made and Enter.
lslpp -Lb Mybundle // verify whethere bundle was installed successfully.
smitty list_installed // verify what is installed in server.
******************** AIX 용량 확장하기 ******************************
lsvg rootvg
chfs -a size=+100M /
******************** AIX 네트워크 설정하기 **************************
smit chgenet
smitty mktcpip -> N/W interface 선택
******************** 파일셋 및 fix(AIX) 설치 여부 확인 **************
lslpp -l bos.adt.base // 파일 셋 인스톨 여부 체크
instfix -i -k "IY4390" // fix 설치 여부 체크
******************** AIX 데몬 재시작 ********************************
refresh -s inetd
startsrc -g inetd
IBM filesets 설치
#oslevel -r // OS 레벨 확인
#instfix -i|grep ML // 파일셋 버전별 설치 현황
#instfix -icqk 5300-02_AIX_ML|grep :-: // 업데이트가 필요한 filesets
download site.
www.ibm.com/servers/eserver/support/pseries/aixfixes.html
***************************** cd mount ************************************
#mount -vcdrfs -oro /dev/cd0 /mnt
#geninstall -d/dev/cd0 bos.alt_disk_install.rte // install fileset in cd.
lspv // see hard-drive information.
#bootlist -m normal hdisk1 hdisk13 // select which disk you want to boot
# bootlist -m normal -o // see which disk is on.
hdisk13
▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷
★★★ 명령어 ★★★
▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷▷
# lslpp -l | grep nim : 설치된 파일셋보기
# osrevel -r : o/s 버전보기.ml 포함
# lsconf | more : 서버 사양보기 (prtconf 와 동일)
# instfix -i | grep ML : O/S ML 정보 보기(All filesets for 5.3.0.0_AIX_ML were found.)
# export TERM=vt100 : display 의 화면모드 전환, smitty 시 F1,F2.. 키를 먹도록 한다.
# smit service_software : 서버에 설치된 파일셋보기
# smit compare_report : 서버에 부족한 파일셋 설치하기
# instfix -k IY58143 -d /dev/cd0 : cd에 들어있는 IY58143 을 찾아 설치한다.
# instfix -ik IY58143 : i 는 infomation 으로 설치는 하지않고, 정보를 본다
# bootinfo -y : h/w 적으로 64bit 가 지원되는지 확인
# bootinfo -K : o/s kernel 이 몇 bit 인지 확인
# alog -ot boot | more : booting 될때 에러가 있는지 로그점검 (smit alog 도 가능)
# lscft | grep ent : lan 카드 확인명령어
# stopsrc -s qdaemon / startsrc -s qdaemon : 데몬 내리고 올리기
# smit mlang : 언어선택하기
# ls -l /dev : 외부장치 디렉토리의 리스트확인
# lsdev -C -H : 설치된 장치리스트 보기
# lsattr -El fcs0 : 장치에 대한 설정정보 보기
# chvg -t2 rootvg : rootvg 를 t2로 바꾸어준다. max pp 갯수가 1016 -> 2032 로 증가
# lspv -p hdisk0 : pv의 lv 정보를 확인
# lsvg -l rootvg : vg 에 있는 lv의 정보를 확인
# lqueryvg -Atp hdisk0 : vgda(volum group discripter)를 보는데 vgda를 odm이 아닌 실제 disk에서 가져옴
# more /etc/filesystems : df 했을때 보여지는 filesystem 정보와 동일하다
# lscfg -vl fcs0 : fcs0의 상세정보 보기
# lsvg -p rootvg : 물리적으로 볼륨구성보기
# chvg -g volumegroup : 볼륨그룹을 재정리 해준다
# migratepv -l hdisk0 hdisk6 : hdisk0 의 모든데이터를 디스크단위로 hdisk6 로 이동한다.
# migratepv -l lv02 hdisk0 hdisk6 : hdisk0의 lv02를 hdisk6 에 이동(move)한다.
# chfs -a size =+500M /home : 파일시스템의 용량을 500M 추가한다
# chfs -a size = 1G /home : 파일시스템의 용량을 기존용량+추가용량 1GB로 증가시킨다
# df -k / df -m / df -g : 각 단위별로 파일시스템 보기
# du ./ | sort -r -n : 현재 디렉토리 아래에서 큰파일순으로 정렬한다
# # lslpp -L | pg : 설치된 모든 프로그램 보기.
www.redbooks.ibm.com 전세계 엔지니어들의 장애처리 경험
www.aixservice.net ibm 실장님이 운영하며 신규기술이 많음.
naver cafe 에 빠른 처리가잘되는 aix 카페
www.ibm.com/kr/education
# smitty tcpip 네트워크에 대한 설정을 해줄 수 있다
# startsrc -g tcpip, stopsrc -g tcpip //
#importvg -y testvg hdisk1 하드디스크 마운트하기.
# /usr/spool/cron/crontabs : 사용자별 클론 설정 위치
# /var/adm/cron/cron.deny, allow : 사용자별 클론 접근허용 및 거부 설정.
# lsps -a : 페이징 스페이스 정보 보기.
# fsck -y /dev/hd1 : 파일 시스템 체크
# mkuser user_name : 유저 생성.
# mkgroup group_name
# passwd user_name : 암호 설정.
# rmuser -p user_name : 유저 삭제.
# rmgroup group_name
# who /var/adm/wtmp or /var/adm/utmp : 사용자 접속 확인.
# who /etc/security/failedlogin : 접속 실패 확인.
# more /var/adm/sulog : su를 사용한 사용자 확인.
# last root, last reboot
# varyonvg vg_name : vg 활성화
# varyoffvg vg_name : vg 비활성화
# exportvg vg_name : vg 반출
# savevg vg_name : vg 백업
# extendvg pv_name : pv 확장
# reducevg pv_name : pv 삭제
# lsvg -l rootvg : vg에 대한 lv(Logical Volume) 확인
# mklvcopy lv_name hdisk_name
************ System Backup ***************************
# mkszfile
# cp /var/adm/ras/bosinst.data /root/
# mksysb /dev/rmt0
# tctl -f /dev/rmt0 rewind
# tctl -f /dev/rmt0.1 fsf 3
# restore -xqvf /dev/rmt0.1 /tmp/myfile
# backup -if /dev/rmt0 large_file
# mkdev -l rmt0 : 장치 상태 보기, 삭제
# rmdev -l rmt0
# smitty dev : serial 연결, Tape 특성, Device 설치
# errpt : 에러 보기(/var/adm/ras/errlog)
# errclear : 로기 삭제
# /usr/lib/errdemon : 에러로그 시작
# /usr/lib/errstop : 에러로그 중지
************** VG 미러링 ****************************
# mklv -y hd7 -t dump rootvg PP갯수 hdisk_name : dump device 생성
# snap -ac : dump file 생성
hdisk0 : rootvg hdisk1 : mirror
# extendvg rootvg hdisk1
# chvg -Qn rootvg
# mklvcopy hd1 2 hdisk1 : 미러링
# mklvcopy hd2 2 hdisk1
# mklvcopy hd3 2 hdisk1
# mklvcopy hd4 2 hdisk1
# mklvcopy hd5 2 hdisk1
# mklvcopy hd6 2 hdisk1
# mklvcopy hd7 2 hdisk1
# mklvcopy hd8 2 hdisk1
# mklvcopy hd9var 2 hdisk1
# syncvg -v rootvg : 새로생성한 미러 디스크를 sync 시킨다.
# bosboot -a -d /dev/hdisk1 : 부트 레코드및 장치 초기화.
# boolist -m normal hdisk0 hdisk1 : 부트 리스트를 초기화.
# shutdown -Fr
# lsvg -l rootvg : 확인
일단은 jdk1.4가 설치가 되었는지 확인하는 방법은
lslpp -L | grep Java14
그리고 jdk가 설치되는 위치는 버전별로 아래와 같습니다.
-------------------------------------------------------
- Java 1.4.x 32-bit /usr/java14
- Java 1.4.x 64-bit /usr/java14_64
- Java 1.3.1 32-bit /usr/java131
- Java 1.3.1 64-bit /usr/java13_64
- Java 1.3.0 /usr/java130
- Java 1.2.2 /usr/java_dev2
- Java 1.1.8 /usr/jdk_base
진단툴
/usr/lpp/diagnostics/bin/diagrpt
nmon # to see status of cpu and memory.