« Prev : 1 : 2 : 3 : 4 :




 

[vmstat] vmstat으로 시스템의 상태를 확인해 보자...


 

일반적으로 서버장비(하드웨어)의 운용상태를 확인하기 위해 top으로 현재 실행되고 있는 프로세스의 cpu 점유율이나 memory 사용량 등을 체크하는 작업을 하지만, 좀 더 자세한 운용 상태를 알아보기 위해서는 vmstat을 많이 사용합니다.


 

vmstat 명령어는 프로세스들과 가상메모리, 페이징 활동, 페이징 실패, cpu 활동 및 디스크들의 자료전송에 대한 통계를 알려줍니다.


 

vmstat 명령어에 대해 좀 더 자세히 알아보도록 합시다.


 

vmstat는 기간과 측정하는 회수를 지정하여 실행됩니다.



여기서 기간이란 vmstat이 수집하고 보고하는 시간의 차이를 초단위로 표시한 것이며, 회수는 이러한 보고를 몇번 수행할 것인가를 뜻하는 것입니다.

만일 아무런 변수를 지정하지 않고 vmstat 를 사용하는 경우에는, vmstat 는 시스템이 기동된 이후부터의 누적된 통계자료를 하나의 레코드로 보여 줍니다.

즉 시스템이 비활동적인 경우도 있고, 업무부하의 변동이 있었기 때문에, 이 자료는 실제 시스템의 현재 활동내역을 보여주지는 않습니다.

vmstat 를 사용시 출력되는 보고내용의 첫번째 줄은 시스템이 기동된 이후의 누적통계를 보여주는 것임을 명심하여야 합니다(물론 -f 혹은 -s 옵션을 사용하지 않은 경우입니다).

따라서 대부분의 경우에 있어 이를 무시하여도 됩니다.


 

아래의 이미지는 시스템 내부에서 발생하는 각종 IO들의 종류를 도식화 한 자료입니다.

사용자 삽입 이미지

vmstat 명령어의 사용법은 아래와 같습니다.

vmstat -fs Drives Interval Count

아래와 같은 형식으로 결과가 나옵니다.

 

사용자 삽입 이미지

vmstat의 각 항복별에 대한 설명

구분
설명
procrCPU에서 대기 중인 프로세스의 수를 의미한다. 이 값이 증가하거나 r 개수/cpu 개수의 값이 항상 2 이상 나온다면 CPU의 성능을 높여주어야 한다.
b동작하는 블럭 프로세스의 수
이 값이 높다면 블럭 디바이스의 속도를 높여야 한다.
wswap out되는 프로세서의 수이다.w에 값이 증가하면 메모리가 매우 부족하다는 의미이므로 메모리를 늘려야 한다.
memory(KB)swapd현대 메모리가 부족해 swap을 사용하고 있는 양을 의미한다. 평소에 이 값이 높다고 해도 free 메모리의 여유가 있다면 메모리가 부족한 것이 아니다. 한번 swap으로 떨어진 프로레스는 메모리의 여유가 생기더라도 CPU에서 다시 호풀하지 않는 한 메모리로 넘어 오지 않는다.
free현재 사용하지 않고 남아 있는 메모리
buffer버퍼로 사용되고 있는 메모리 양(퍼포먼스에 관련)
cache현재 캐시로 사용되고 있는 메모리 양(퍼포먼스에 관련)
swap(KB/s)si디스크에서 메모리로 swap in 되는 양을 의미하며, swap 공간에 있는 데이터를 실제 메모리로호출한다.
so메모리에서 디스크로 swap out 되는 양을 의미하며, 이는 곧 메모리가 부족해 실제 메모리에 있는 데이터를 swap 공간으로 보내는 것이다.
io(blocks/s)bi/bobi는 초당 블럭 디바이스로 보내는 블럭 수이며 bo는 블럭 디바이스로부터 받은 블럭 수이다. 이 두 값이 높다는 것은 I/O 즉 하드디스크에 읽고 쓴느 값이 많다는 것이다.
systemin초당 인터럽트되는 양이다. 여기에는 time clock과 이더넷의 패킷도 포함되는데 즉 인터럽트의 수가 많다면 네트워크 쪽을 점검해볼 필요가 있다.
cs초당 context switch되는 양이다. CPU에사 실행하는 명령들이 자신의 우선순위보다 높은 명령이 오거나 혹은 자신에게 할당된 CPU 점유 시간이 만료되면 우선순위에서 밀리게 되고 이때 context switch가 발생하게 된다.
cpuus유저 프로세스가 CPU를 사용하는 시간
sy시스템 프로세스가 CPU를 사용하는 시간
id CPU가 아무 일도 하지 않고 여유 있는 시간

===============================================================================================
출처 : http://blog.naver.com/mybrainz?Redirect=Log&logNo=150099033294

2012/06/08 14:08 2012/06/08 14:08
샤이 이 작성.

당신의 의견을 작성해 주세요.

find 옵션

2012/06/04 15:54 / Linux/Tip&Tech

Find 명령어의 옵션 및 활용:

해당 명령어는 파일 시스템에서 주어진 조건으로 파일을 찾을 때 아주 유용하게 쓰인다. 대표적인 용도는 오래되거나 크거나, 사용하지 않는 파일들을 찾을 때 그 위력을 발휘한다.

기본적인 사용 방법은 다음과 같다:

find path operators

find 대상디렉토리 검색조건 처리방법


검색 조건:

-name filename : 파일 이름으로 파일을 찾는다.

-user username : 유저 이름으로 파일을 찾는다.

-group groupname : 그룹 이름으로 파일을 찾는다.

-perm nnn : 파일 퍼미션(권한)이 nnn인 파일을 찾는다. ex> -perm 775

-type x : 파일 타입이 x인 파일을 찾는다 ( f - 일반 파일, b - 블록 특수 파일, d - 디렉토리, l - 심볼릭 링크 등).
 

-atime : 파일을 열어본 시간 또는 디렉토리에 cd명령으로 접근한 시간.

-mtime : 파일의 내용이 변경된 시간( ls -l 에서 나오는 시간 ).

-ctime : 파일의 정보가 변경된 시간( chmod, chown과 연관성이 있다 ).

( atime, mtime, ctime 모두 각각의 시간 정보를 통해서 파일을 찾는다. )

사용자 삽입 이미지
ex> find / -atime 0

/(최상위 디렉토리)에서부터 atime 0 즉 파일을 열어본 시간이 24시간 이내인 파일을 찾아라.

-size n : 사이즈가 n 이상인 파일을 찾는다 ( b ( 블록, 기본값, 512byte ), c ( byte ), k( kbyte ), w ( 2byte ) ).

ex> find / -size 166c -type f

/(최상위 디렉토리)에서부터 166byte 크기의 일반 파일을 찾는다.

-links n : 링크된 개수가 n 이상인 파일을 찾는다.

-print : 표준 출력( 파일의 경로가 출력된다 ) * 대부분의 경우 default 설정된 검색 조건이다(아닌 경우도 있다).

-exec commnd : command가 실행된다.

-operators : -a AND연산, -o OR연산, \ (expression \)


검색 조건의 활용:


find / -name ping -print

/ (최상위 디렉토리)에서부터 파일 이름이 ping인 파일을 찾아 경로를 표시하라.

find /home -name core -exec ls -l {} \;

home 디렉토리에서 파일 이름이 core인 파일을 찾아 그 파일에 대한 ls -l 명령을 하라.

find / -user ysy -perm 755

/(최상위 디렉토리)에서부터 유저 이름이 ysy이고 파일 퍼미션(권한)이 755인 파일을 찾아라.

find / -user root -perm +4000 -exec ls -l {} \;

/(최상위 디렉토리)에서부터 유저 이름이 root이고 파일 퍼미션(권한)이 4000이상인 파일을 찾아서 그 파일에 대한 ls-l 명령을 하라.

find / -perm +4000 -ctime 0 -exec ls -l {} \;

/(최상위 디렉토리)에서부터 파일 퍼미션(권한)이 4000이상이고 ctime 0 즉 파일 내용이 24시간 이내로 변경된 파일을 찾아라.

=========================================================================
출처 : http://blog.naver.com/yoosy0302?Redirect=Log&logNo=130113520604
        http://blog.eggnara.com/140

2012/06/04 15:54 2012/06/04 15:54
샤이 이 작성.

당신의 의견을 작성해 주세요.

rpm -e "패키지" 삭제 중 "여러개의 패키지를 지정합니다"
라는 오류 발생 시 --allmatches 옵션을 추가해서 삭제 함
2012/04/18 18:02 2012/04/18 18:02
샤이 이 작성.

당신의 의견을 작성해 주세요.

dos 에서 저장된 유니코드와 일부 utf-8 문서를 unix 에서 확인 시 BOM (Byte Order Mark) 가 삽입되어
정상적으로 동작이 되지 않을 수 있습니다.

vi -b 옵션등으로 확인 시 시작부분에 <feff>라는 내용을 확인할 수 있으며 이를 삭제하여 주거나 아래와 같은 명령어로 삭제할 수 있습니다.

perl -C -pi -e 's/\x{feff}//g' 파일명
2012/03/19 14:15 2012/03/19 14:15
샤이 이 작성.

당신의 의견을 작성해 주세요.

서버의 쉘상에서 특정 서버로 파일을 업로드 시 curl 을 이용하여 http 프로토콜을 통해 파일을 간단히 전송할 수 있습니다.

수신 서버측에는 apache+php 등의 php 환경이 구축되어 있어야 하며 보내는 서버는 curl 이 설치 되어 있어야 합니다.

수신 서버
===up.php=======================================
<?php


    $thisfilename=basename(__FILE__);
    $temp_filename=realpath(__FILE__);
    if(!$temp_filename) $temp_filename=__FILE__;
    $osdir=eregi_replace($thisfilename,"",$temp_filename);
    unset($temp_filename);
    $virdir = eregi_replace($thisfilename,"",$PHP_SELF);


     // 절대 경로


      $save_dir = "업로드 할 폴더의 절대경로";
      $SaveFileName =  $thefile_name;




      // 파일 업로드
      if($thefile){
         $SaveFileName = $SaveFileName;
         copy($thefile,"$save_dir$SaveFileName");  //파일저장
        unlink($thefile);   // 임시 파일 삭제
      }
?>
================================================
상기등과 같이 파일 수신 php 파일을 http로 외부에서 접근 가능한 경로에 생성합니다.

보낼 서버의 쉘에서 다음과 같이 실행 하면 php에서 지정한 디렉토리로 파일이 전송 됩니다.

curl -F thefile=@파일명 http://아이피_또는_도메인/up.php




2012/03/14 19:29 2012/03/14 19:29
샤이 이 작성.

당신의 의견을 작성해 주세요.

windows 에서 작성된 파일 의 경우 리눅스 시스템에서 파일을 확인시 ^M 개행문자가 출력되는 경우가 있습니다.
vi -b 로 확인이 가능하며 vi 편집기 내부에서 수정해도 되지만 번거로운 경우 다음 명령어로 한번에 변경 할 수 있습니다.

perl -pi -e "s/\r\n/\n/g" 파일명
2012/03/14 14:59 2012/03/14 14:59
샤이 이 작성.

당신의 의견을 작성해 주세요.

대상 서버의 ssh 포트가 변경 되었을 시 다음과 같이 포트를 지정 할 수 있습니다.

#rsync -avz -e 'ssh -p 포트' 아이피:/경로 대상

ex)
#rsync -avz -e 'ssh -p 10022' 111.111.111.111:/root .
2011/04/08 14:50 2011/04/08 14:50
샤이 이 작성.

당신의 의견을 작성해 주세요.

서버와 서버간의 파일전송을 하는데 이상하게 속도가 나지 않습니다. 두대의 서버가 모두 동일한 스위치에 그것도 기가비트 포트에 물려있는데 보장되어야 할 속도가 나오지 않는다 의심될때 가장 먼저 해봐야 할일은 실제 통신 속도를 측정하는 일일 것입니다.

정말 간단하게 테스트하고 싶다면 어떤 방법이 있을까요? 여기에 정말 좋은 솔루션이 있습니다. 그것도 무료네요.

http://sourceforge.net/projects/iperf/

iperf는 두대의 서버 사이에 한대는 서버, 한대는 클라이언트로 접속하여 속도를 측정합니다.
다음과 같이 설치를 하도록 합니다. 이 글을 쓰는 시점에서는 2.0.4가 최신버젼입니다만 적정한 최신 버젼을 사용하시면 됩니다.

> tar -zxvf iperf-2.0.4.tar.gz
> cd iperf-2.0.4
> ./configure
> make; make install

이제 두대의 서버간의 속도를 측정해 보도록 하겠습니다.

* 서버 실행하기

> iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size
: 85.3 KByte (default)
------------------------------------------------------------

* 클라이언트 실행하기

iperf -c 192.168.0.2
------------------------------------------------------------
Client connecting to 192.168.0.2, TCP port 5001
TCP window size
: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.0.3 port 55881 connected with 192.168.0.2 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1.10 GBytes 942 Mbits/sec


위의 결과를 통해 두 서버간의 통신속도는 942 Mbit/sec 라는것을 알았습니다. 기가비트 포트의 속도가 거의 보장되고 있었네요^^    

===============================================================
출처 : http://theeye.pe.kr/entry/simple-network-performance-measuring-tool-is-iperf?category=3
2011/03/21 16:14 2011/03/21 16:14
샤이 이 작성.

당신의 의견을 작성해 주세요.

imap-2007e 를 다음 ftp에서 다운 받습니다.


ftp://ftp.cac.washington.edu/imap


#wget ftp://ftp.cac.washington.edu/imap/imap-2007e.tar.gz


압축을 해제 합니다.


#tar zxvf imap-2007e.tar.gz


해제된 디렉토리로 이동 합니다.


#cd imap-2007e


Makefile을 오픈하여 EXTRACFLAGS=EXTRACFLAGS=-fPIC 로 수정 합니다.


make 합니다.


#make lr5


make 중 security/pam_appl.h: No such file or directory 에러 발생 시 pam-devel이 설치 되었는지 확인 후 설치 합니다.


#yum install pam-devel


make가 완료 되면 라이브러리 및 데몬을 복사 합니다.


#mkdir /usr/local/imap
#mkdir /usr/local/imap/include
#mkdir /usr/local/imap/lib
#cp c-client/*.h /usr/local/imap/include/
#cp c-client/*.c /usr/local/imap/lib/
#cp c-client/c-client.a /usr/local/imap/lib/libc-client.a
#cp imapd/imapd /usr/sbin/


다음 파일을 생성하여 슈퍼데몬에 등록 합니다.


#vi /etc/xinetd.d/imapd



service imap
{
        disable = no
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/imapd
        log_on_success += HOST DURATION
        log_on_failure  += HOST
}



#/etc/rc.d/init.d/xinetd restart 로 슈퍼 데몬을 재가동 한 후 143 포트 오픈을 확인 합니다.

2010/07/12 18:09 2010/07/12 18:09
샤이 이 작성.

당신의 의견을 작성해 주세요.

페도라나 오픈수세에서 ntfs 하드인식이 문제없이 되어서 아무런 생각없이
외장하드를 centos5.2에 붙이니 마운팅을 못하는것입니다


구글링해보니 설치를 해줘야하는것이 있더이다


5.2 와 5.3 둘다 가능합니다


1. 일단 yum 레포지토리 추가를 해줍니다
루트로
yum install yum-priorities
해서 설치 하고 나서



i386은 http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm


x86_64

http://apt.sw.be/redhat/el5/en/x86_64/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm


설치를 해줘야 합니다
예)
rpm -ivh http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm


그후에


사용 kernel버전과 맞는 kernel-devel 과 kernel-headers를 설치해주세요
예) yum -y install kernel-headers


설치된후


yum --enablerepo=rpmforge install fuse fuse-ntfs-3g dkms dkms-fuse


로 해당 패키지를 설치해주시면 됩니다

=======================================================================
출처: http://purityboy83.tistory.com/55

2010/06/15 13:21 2010/06/15 13:21
샤이 이 작성.

당신의 의견을 작성해 주세요.

« Prev : 1 : 2 : 3 : 4 :