vmstat 필드 설명 |
|
|
필드 | 설명 | |||
proc r b w |
r: the number of threads in run queue Solaris에서는 멀티 쓰레드 기능을 제공하며, 커널의 스케쥴링도 쓰레드 단위로 한다. 멀티 쓰레딩 방식으로 프로그래밍되어 있지 않은 프로세스는 하나의 쓰레드가 프로세스에 있다. 각 프로세스에 몇 개의 쓰레드가 있는지는 psinfo 명령어의 결과에서 NLWP 항목에 있는 값으로 확인할 수 있다.
쓰레드의 상태는 크기 세가지로 나눌 수 있다. r에 나타나는 값은 CPU를 사용하기 위하여 Run Queue에서 대기하는 쓰레드의 갯수 이고, b는 sleep하는 쓰레드 중에 I/O(Disk)가 완료되기를 기다리는 쓰레드의 갯수를 나타낸다. | |||
memory swap free page re mf pi po fr de sr |
swap: amount of swap space currently available (Kbytes) Solaris는 가상 메모리(Virtual Memory) 시스템을 사용한다. 가상 메모리 시스템이란 물리적 메모리(physical memory)와 하드 디스크(swap device)를 결합하여 하나의 큰 메모리처럼 사용하는 것을 말한다.
Solaris는 이러한 가상 메모리를 관리하기 위하여 메모리를 페이지 단위로 나누어 관리한다. Solaris에서는 가상 메모리를 swap으로 명칭한다(swap partition과 구별해 주십시오). 이 swap(VM)은 운영체제가 사용할 수 있는 메모리이다. vmstat 명령어의 4번째 필드 swap은 사용 가능한 가상 메모리의 크기를 KB 단위로 나타내고 5번째 필드 free는 사용 가능한 물리적 메모리를 KB 단위로 나타낸다. 가상 메모리에 대한 자세한 사항은 다음과 같은 명령어로 알 수 있다.
응용 프로그램이 동작할 때, 필요한 메모리는 swap(VM)에서 가져온다. 물리적 메모리가 많든 적든 관계없이 swap 공간이 충분하면 프로그램이 실행되는 데에는 전혀 문제가 없다. 만일 물리적 메모리가 절대적으로 부족하다면, 실행속도가 늦어질 뿐, 메모리 부족으로 애플리케이션이 중단되는 일은 없다. swap partition에 대한 정보는 다음과 같이 확인할 수 있다.
blocks은 전체 swap partition의 크기이며 512 바이트 단위의 블럭이고, free는 그 중에 사용 가능한 swap partition의 크기이며 512 바이트 단위의 블럭이다. 즉,
위의 swap -l 명령어의 결과에서 보면, 352944KB의 메모리가 swapout 되었음을 알 수 있다. Solaris의 메모리 관리 방법에서는 여유 있는 물리적 메모리를 화일 시스템의 캐쉬로 사용한다. 디폴트로 프리 메모리(free physical memory)가 전체 물리적 메모리 양의 1/64(lotsfree)보다 크면, 화일 시스템을 통한 디스크 I/O는 모두 메모리에 남겨두어 화일 시스템의 캐쉬로 사용한다. 프리 메모리가 물리적 메모리 양의 1/64보다 적으면, Solaris는 프리 메모리를 1/64로 채우기 위하여 시스템에 있는 페이지를 조사하여, 최근에 사용되지 않은 페이지를 찾아서 프리시킨다. 페이지의 크기는 pagesize 명령어로 확인할 수 있다.(sun4u 시스템은 8KB이고 sun4m은 4KB이다)
특별히 메모리를 많이 사용하는 프로그램이 없는데도, 보통 Solaris 시스템의 프리 메모리의 크기가 아주 작게 보인다. 이것은 정상적이라고 말할 수 있다. 앞에서 설명한 바와 같이 화일 시스템의 캐쉬로 많은 부분이 사용되고 있기 때문이다. 프로그램을 실행할 경우에 운영체제는 프로세스에 대한 어드레스 맵핑 테이블을 만들고, 프로세스를 실행한다. 프로세스가 실행되다가 필요한 페이지가 자신의 어드레스 맵핑 테이블에 연결되어 있지 않으면, 페이지 폴트가 발생하는데, 그 페이지가 메모리에 있으면(minor page fault라고 함), 그 페이지를 자신의 어드레스 맵핑 테이블에 등록한다. vmstat의 mf(minor fault)는 minor page fault 횟수를 나타낸다. 프리 메모리가 부족할 경우, paging이 발생하여 최근에 사용되지 않은 페이지를 찾아서 프리시켜 부족한 메모리를 보충하게 되는데, 이렇게 프리되는 페이지의 내용은 훼손되지 않고 프리 메모리 영역에서 관리된다. 이렇게 프리된 페이지가 프로세스의 요청에 따라 다시 사용될 수 있다. 이렇게 다시 사용된 페이지 수를 re(reclaim)에 보여준다. de: Unknown | |||
disk s0 s1 s2 s3 |
최대 4개의 디스크에 대하여 초당 read/write 횟수를 나타낸다. 디스크의 이름은 영문자 한 글자와 숫자 하나로 이루어진다. | |||
fault in cy cs |
in(interrupt): 초당 인터럽드 횟수(clock interrupt 제외) sy(system call): 초당 시스템 콜 회수 cs(context switching): 초당 컨텍스트 스위칭 횟수 | |||
cpu us sy id |
us: user time Solaris 운영체제는 1초에 100번씩 CPU가 어떤 일을 하는지 조사한다. 이때 CPU가 user mode에서 작업을 실행하면 user_tick에 1을 증가 시키고, system mode에서 작업을 실행하면 system_tick에 1을 증가시킨다.
|
출처 : yeongnam.com
'IT > Unix' 카테고리의 다른 글
AIX Sar 설정 (0) | 2009.04.27 |
---|---|
vi 특정 문자열 치환 (0) | 2009.04.24 |
Network 관련된 11개 파일 (0) | 2009.02.26 |
backup 관련 명령어 요약 (0) | 2009.02.25 |
DNS 설정 (0) | 2009.02.05 |