· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Process-Accounting

리눅스에서 프로세스의 통계를 얻는 방법

리눅스에서 프로세스의 통계를 얻는 방법

저자: Albert M. C. Tam( bertie@scn.org)

마지막 갱신: 1997년 8월 8일 금요일 09:25:58 HKT 역자: 박민석( mpark@correl4.snu.ac.kr) 번역일: 1999년 2월 17일 수요일
머릿말: 이 문서의 저작권(copyleft)은 Albert M. C. Tam( bertie@scn.org)에게 있다. 모든 사본과 부속 문서에 저자 및 편집자의 이름과 본 주의사항이 들어있는 한, 즉 이 문서를 변조하지 않은 한, 상업적이지 않은 목적으로 이 문서를 사용하고 복사 및 배포할 허가권을 준다. 이 문서가 도움이 되기를 바라면서 배포하지만, 명시적이건 암묵적이건 어떤 보장도 할 수 없다. 이 문서에 기재된 정보의 정확성을 기하기 위해 최선의 노력을 다하기는 했지만, 저자나 편집자, 관리자는 실수나, 여기 기재된 정보를 사용한 결과로 입은 손해 등에 대해 어떤 책임도 질 수 없다. 이 문서는 리눅스 호스트에서 프로세스의 통계를 얻는 방법과 그에 사용되는 여러 가지 명령의 사용법을 설명한다. 커널 버젼 1.3.73 보다 이후의 커널을 사용하고 있다고 가정하기로 한다. (최근 레드햇 4.1의 2.0.27 커널에서 시험되었다. -> 역자주: 1999년 2월 현재의 커널은 2.2.1 버젼이다.) 1.3.73 이전의 커널을 사용하고 있다면, 프로세스 통계를 쓰기 위해서 패치를 해야만 한다. 오류나 누락된 점을 발견했다면 망설이지 말고 bertie@scn.org로 알려주기 바란다. 어떤 내용이건 환영한다.

1. 프로세스 통계(Process Accounting)란 무엇인가?

프로세스 통계란 리눅스에서 수행된 명령들을 요약하고 기록하는 방법이다. 요즘의 리눅스 커널은 수행된 명령과 그 명령을 내린 사용자, 소요된 CPU 시간 등을 기록한 프로세스 통계를 낼 수 있다. 프로세스 통계를 씀으로써, 시스템 자원이 어떻게 사용되고 있고 사용자들 사이의 자원 배분은 어떤가에 대한 자세한 통계 정보를 얻을 수 있으며, 시스템 모니터링도 가능하다.

리눅스 프로세스 통계의 현재 상태 1.3.73 이후 버젼의 커널에는 프로세스 통계를 지원하는 기능이 통합되어 있다. 이보다 오래된 커널을 쓰고 있다면 패치를 해야 한다. 패치는 iguana.hut.fi/pub/linux/Kernel/process_accounting 에서 구할 수 있다.

리눅스 프로세스 통계를 위한 필요 사항

커널 1.3.73 이후 버젼의 리눅스 커널이 필요하다. 필자는 2.x 버젼의 커널을 권한다.

커널 소스는 sunsite.unc.edu/pub/Linux/kernel/v2.0 에서 구할 수 있다.

프로세스 통계용 소프트웨어 가지고 있는 리눅스 배포판에 따라, 프로세스 통계용 소프트웨어가 시스템에 설치되어 있을 수도 있고, 그렇지 않을 수도 있다. 없다면

sunsite.unc.edu/pub/Linux/system/admin/quota-acct-modified.tgz 의 패키지를 다운받도록 한다.

2. 리눅스 프로세스 통계의 설정

  1. 프로세스 통계용 소프트웨어를 컴파일하고 설치한다. 프로세스 통계용 소프트웨어 패키지는 sunsite.unc.edu/pub/Linux/system/admin/quota-acct-modified.tgz 에서 얻을 수 있다.
  2. 시스템의 init 스크립트를 바꿔서 부팅할 때 프로세스 통계를 시작하도록 한다. 예를 들면
            # 프로세스 통계 시작.
            if [ -x /sbin/accton ]
            then
                    /sbin/accton /var/log/pacct
                    echo "Process accounting turned on."
            fi
    
    과 같은 스크립트를 넣는다.
  3. 프로세스 통계 파일인 "pacct"를 만든다. 프로세스 통계용 소프트웨어는 수행된 모든 명령들을 디폴트로 /var/log/pacct에 저장한다. 이 파일을 만들려면 touch /var/log/pacct 라고 해준다. 이 기록 파일의 소유자는 루트여야 하며, 루트에게는 읽기-쓰기 허가권을, 그 밖의 사용자들에게는 읽기 허가권을 주도록 한다. chown root /var/log/pacct chmod 0644 /var/log/pacct
  4. 재부팅. 이제 변경된 내용이 적용되도록 시스템을 다시 부팅한다.

3. 여러가지 프로세스 통계 명령들

ac

ac는 현재의 /var/log/wtmp 파일에 들어있는 로그인 및 로그아웃 기록에 근거하여 사용자들의 접속시간에 대한 통계를 출력한다. 하루 단위의 통계(-d 옵션)나, 사용자별 통계(-p 옵션)를 출력할 수도 있다.

accton

accton은 프로세스 통계를 켜고 끄기 위해 사용된다. 보통 시스템이 부팅될 때나 셧다운될 때, 시스템의 init 스크립트에 의해 수행된다.

last

last는 /var/log/wtmp 파일을 읽어서 사용자들의 접속시간에 대한 정보를 출력한다.

sa

sa는 통계 기록 파일인 /var/account/pacct(역자주:/var/log/pacct일 듯)에 적힌 통계 정보들, 즉 이전에 수행된 명령들, 소프트웨어의 입출력 수행시간, CPU 시간 등을 요약한다.

lastcomm

lastcomm은 /var/account/pacct에 기록된 모든 명령 내역에 대한 정보를 출력한다.

4. 번역자의 추가 사항

번역자가 쓰고 있는 레드햇 배포판 5.2의 경우, 프로세스 통계 관련 명령은 psacct라는 패키지에 들어있다. 번역자의 시스템에 설치된 내역은 다음과 같다.


[<url url="maelto: mpark@mulli mpark" name="mpark@mulli mpark" >]$ rpm -qil psacct
Name        : psacct                      Distribution: Manhattan 
Version     : 6.3                               Vendor: Red Hat Software
Release     : 5                             Build Date: Mon 17 Aug 1998 04:34:07 AM KST
Install date: Sun 27 Dec 1998 08:16:39 AM KST      Build Host: porky.redhat.com
Group       : Utilities/System              Source RPM: psacct-6.3-5.src.rpm
Size        : 82423                            License: GPL
Packager    : Red Hat Software <<url url="maelto: bugs@redhat.com" name=" bugs@redhat.com" >>
Summary     : Process accounting tools
Description :
The tools necessary for accounting the activities of processes are
included here.
/sbin/accton
/usr/bin/ac
/usr/bin/lastcomm
/usr/info/accounting.info.gz
/usr/man/man1/ac.1
/usr/man/man1/lastcomm.1
/usr/man/man8/accton.8
/usr/man/man8/sa.8
/usr/sbin/accton
/usr/sbin/dump-acct
/usr/sbin/dump-utmp
/usr/sbin/sa
/var/log/pacct
/var/log/savacct
/var/log/usracct

이렇게 프로세스 통계를 pacct 파일에 저장하기 시작하면, 이 파일은 명령어 사용빈도에 비례해서 금방 커지게 된다. 따라서 logrotate와 cron을 이용해서 관리해야 한다. cron은 백업과 같이 주기적으로 실행하는 명령들을 자동으로 처리하도록 해주는 도구로, 설정 내용은 레드햇의 경우 /etc/crontab에 있다. logrotate는 log 파일들을 주기적으로 관리하는 도구다. 지정된 주기에 맞춰서 각각의 log 파일들의 이름을 바꾸거나, 압축하거나 삭제한다. 보통 /etc/cron.daily에 logrotate라는 스크립트를 두어 /usr/sbin/logrotate를 /etc/logrotate.conf라는 설정에 맞춰 매일 실행하게 되어 있다. 따라서 pacct를 관리하려면 /etc/logrotate.conf에 있는 다른 log에 대한 설정을 참고하여 적당히 /var/log/pacct에 대한 항목을 logrotate.conf에 추가하면 된다.




sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-08-10 11:52:30
Processing time 0.0020 sec