본문 바로가기
Unix.Linux

리눅스 기본설정 TIP - top, free, vmstat, openssh, motd, ulimit

by 누피짱 2013. 5. 11.

Open source를 모토로 제작된 리눅스는 관리자의 노력 여하에 따라

아주 많은 부분을 관리자의 개인 성향, 용도에 맞게 설정이 가능합니다.

오늘은 그 중에 아주 기본적인 하드웨어 모니터링 및 기초적인 tune up 등을 다뤄보기로 하겠습니다.

 

 

 1.   성능분석

 

A.    CPU 점검

-uptime

             


 

첫번째 Load average 3개 수치

  1, 5, 15분 동안 활성화 되었던 프로세스들 부하의 평균수치

 

-top

              


 

 

시스템에서 실행되고 있는 프로세스들의 실시간 정보를 확인할 수 있으며

시스템의 전반적인 상황을 한눈에 볼 수 있다.,

 

첫번째 행 


 

Top 유틸리티 이름

시스템의 현재 시간

시스템이 부팅된 후에 운영시간

현재 로그인 수

최근 1,5,15분 각각의 시스템 평균부하율

(평균적으로 실행된 프로세스의 수를 의미)

 

 

두번째 행

 


 

전체 실행된 프로세스 수

현재 실행되고 있는 프로세스 수

유휴상태 프로세스 수

종료된 프로세스 수

좀비 프로세스 수

 

 

세번째 행



 

사용자가 실행시킨 프로세스의 CPU 사용율

시스템자체에서 사용하는 CPU 사용율

NICE 정책에 의해 사용되고 있는 CPU 사용율

사용되지 않고 남은 CPU 사용율

입출력 대기 상태의 CPU 사용율

IRQs에 사용된 CPU 사용율(Iterrupt ReQuest)

Soft IRQs에 사용된 CPU 사용율

Steal(다른 instances 실행에 주어진 time)

 

 

네번째 행



 

실제 메모리의 전체 용량

프로세스에 의해 사용되고 있는 메모리 사용량

사용되지 않고 남아있는 메모리량

버퍼링된 메모리량

 

 

 

 

다섯번째 행



 

전체 스왑 메모리량

프로세스에 의해 사용된 스왑 메모리량

남아 있는 스왑 메모리량

캐싱 메모리량

 

 

여섯번째 행

 

해당 프로세스 번호

프로세스를 실행 시킨 사용자

프로세스의 우선 순위

프로세스의 NICE(-20 ~ 19)

프로세스가 사용한 가상메모리 총량(VIRT = SWAP + RES)

프로세스의 물리적인 메모리 사용량

프로세스에 의해 사용된 공유메모리 총량

프로세스의 상태

. D : 중단될 수 없는 sleep상태

. R : 실행중

. S : sleep상태

. Z : 좀비프로세스

프로세스의 CPU 사용율

프로세스의 메모리 사용율

CPU사용시간

프로세스 실행 명령


 

    B. 기타 시스템 자원 점검

 

-free

실제적인 메모리와 스왑 공간의 용량과 남은 공간, 사용량 등 출력

              


 

-vmstat

시스템의 프로세스, 메모리, 페이징, 블록장치의 I/O, CPU의 상태를 출력

        


 

 

세부옵션

procs

  - r : 실행시간을 위해 기다리고 있는 프로세스 수

  - b : 계속 잠들어 있는 프로세스 수

  - w : swap out 되었거나 실행 가능한 프로세스 수

memory

  - swpd : 가상메모리를 사용하고 있는 양(KB)

  - free : 쉬고 있는 메모리의 양(KB)

  - buff : buffer에서 사용하고 있는 메모리의 양(KB)

  - cache : cache로 사용하고 있는 메모리의 양(KB)

swap

  - si : 디스크로 부터 swap in 된 양(KB)

  - so : 디스크에 swap out된 양(KB)

  * swap out : 물리적인 메모리가 부족할 경우 사용 중인 물리적 메모리를

              해제하려 하는 것을 지칭함

  * swap in : swap out도니 내용이 다시 필요하게 될 경우 이를 다시

            불러오는 것을 지칭함

 

io

  - bi : 블록 디바이스에 보낸 블록 수(KB)

  - bo : 블록 디바이스로 부터 받은 블록 수(KB)

 

system

  - in : 초당 발생한 interrupt의 수

  - cs : 초당 발생한 context switches의 수

 

cpu

  - us : 사용자에 의해 사용된 시간

  - sy : 시스템에 의해 사용된 시간

  - id : 유휴 시간

 

 

 

2.   리눅스 초기보안 설정

 

A.    초기 OS 보안 설정

openssh 신규버전 설치

  - openssh 4.4 이전 버전은 GSSAPI 인증에 취약점 존재하나

    yum을 통한 설치시 4.3p2 버전까지 밖에 제공되지 않음

  - 설치방법

    #wget http://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/openssh-5.6p1.tar.gz

  #tar xvf openssh-5.6p1.tar.gz

  #cd openssh-5.6p1

  #./configure --prefix=/usr/local/openssh --with-tcp-wrappers --with-pam --with-md5-passwords

  #make && make install

  #cd (설치 디렉토리)/openssh-5.6p1/contrib/redhat

  #cp sshd.init /etc/init.d/sshd

  #vi /etc/init.d/sshd

  //아래 항목을 경로에 맞게 수정한다.

  KEYGEN=/usr/local/openssh/bin/ssh-keygen

  SSHD=/usr/local/openssh/sbin/sshd

  //PATH 추가

  #export PATH=/usr/local/openssh/bin:/usr/local/openssh/sbin:$PATH

  #service sshd restart

root 로그인 제한 설정

 #vi /usr/local/openssh/etc/sshd_config

 


 

   PermitRootLogin no

   * root로 원격접속을 제한하였기 때문에 일반 계정을 생성하여 관리 필요

 

 

로그인시 ssh 배너 경고문구 넣기

  #vi /etc/motd

 


 

telnet, ssh 세션 time-out 설정

 

 #vi /etc/profile

  export TMOUT=600 // 600

 

 

패스워드 규칙 설정

 #vi /etc/login.defs

 


 

  PASS_MAX_DAYS : 패스워드를 바꾸지 않고 사용할 수 있는 일 수

  PASS_MIN_DAYS : 최소 암호 사용 기간

  PASS_MIN_LEN : 패스워드의 최소 길이

  PASS_WARN_AGE : 패스워드 변경 경고 출력 (암호 만기 전 남은 일수 경고)

  * login.defs는 변경 후 생성되는 신규 계정에만 적용되며

   기존 계정 수정은 /etc/shadow 편집

 


 

3. 리눅스 오픈파일 제한/증가

A.    open file 갯수 조회

    최대 open file 갯수 조회 방법

      #cat /proc/sys/fs/file-max

      #sysctl fs.file-max

     


 

    user level open file 갯수 조회

      #ulimit -Hn

      #ulimit -Sn

     soft limit : 새로운 프로그램이 생성되면 기본으로 적용되는 한도

     hard limit : soft limit에서 최대 늘릴 수 있는 한도

 

  B. open file 갯수 변경

    최대 open file 갯수 수정

      #vi /etc/sysctl.conf

     


 

       *fs.file-max 부분 값 수정

 


     user level open file 갯수 수정

       httpd 프로세스에 대한 limit 설정

      

                 


 

 

방대한 내용을 담고 있는 리눅스이기 때문에 모든 부분을 이 문서에서 다룰수는 없습니다만

이런 기본적이지만 세세한 컨트롤을 통해 더욱 안정적이고 개선된 성능의 OS를 만들어갈 수 있습니다.

앞으로 관리자들께 도움이될 수 있도록 지속적으로 리눅스 성능개선에 관한 이슈를 다뤄보도록 하겠습니다.

많은 도움이 되시길 바랍니다.

댓글