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를 만들어갈 수 있습니다.
앞으로 관리자들께 도움이될 수 있도록 지속적으로 리눅스 성능개선에 관한 이슈를 다뤄보도록 하겠습니다.
많은 도움이 되시길 바랍니다.
'Unix.Linux' 카테고리의 다른 글
패스워드 무작위 대입 공격 방어를 위한 fail2ban 사용법 (0) | 2014.07.29 |
---|---|
리눅스 32비트 64비트 확인 (0) | 2014.07.18 |
리눅스 open files 설정 - ulimit (0) | 2013.05.11 |
Linux 사용하기 위한 필수 명령어 (0) | 2009.09.11 |
Apache+mod_ssl 인증 설치하기 (0) | 2008.12.15 |
댓글