<사용방법> free [옵션] <옵션> -b : 메모리의 양을 바이트로 표시한다. -k : 메모리의 양을 Kb로 표시한다. -m : 메모리의 양을 Mb로 표시한다. -t : 총 합을 표시한다. -o : 버퍼 정보를 출력하지 않는다. -s : 지정된 시간마다 계속해서 출력한다. -V : 버전 정보를 출력한다.
|
현재 메모리의 사용량 출력한다.
[root@localhost /]# free total used free shared buffers cached Mem: 255596 199332 56264 0 4144 94168 -/+ buffers/cache: 101020 154576 Swap: 524280 4 524276
|
현재 메모리의 사용량을 버퍼와 캐시를 제외하고 출력한다.
[root@localhost /]# free -o total used free shared buffers cached Mem: 255596 199332 56264 0 4248 94192 Swap: 524280 4 524276
|
종합 정보를 출력한다. [root@localhost /]# free -t total used free shared buffers cached Mem: 255596 199332 56264 0 4280 94184 -/+ buffers/cache: 100868 154728 Swap: 524280 4 524276 Total: 779876 199336 580540
| 종합 정보를 출력하고 단위를 Mb로 나타낸다.
[root@localhost /]# free -mt total used free shared buffers cached Mem: 249 194 54 0 4 91 -/+ buffers/cache: 98 151 Swap: 511 0 511 Total: 761 194 566
|
종합 정보를 출력하고 단위를 Mb로 나타낸다. 또한 5초마다 메모리 정보를 출력한다.
[root@localhost /]# free -mt -s 5 total used free shared buffers cached Mem: 249 194 54 0 4 91 -/+ buffers/cache: 98 151 Swap: 511 0 511 Total: 761 194 566
|
02. ps 현재 실행되고 있는 프로세스의 목록을 보여준다. 주로 서버의 상태를 파악하기 위하여 프로세스의 상태를 관리자가 파악할 때에 사용하는 명령어이다. 가장 흔하게 실행하는 명령어 가운데 하나이며, 서버관리에 없어서는 안될 매우 중요한 명령어이다.
<명령어 위치> : /bin/ps <사용법> ps [옵션]
<옵션> -l(소문자 엘) : 자세한 형태의 정보를 출력한다. -u : 각 프로세스의 사용자 이름과 시작 시간을 보여준다. -j : 작업 중심 형태로 출력한다. -s : 시그널 중심 형태로 출력한다. -v : 가상 메모리 중심 형태로 출력한다. -m : 메모리 정보를 출력한다. -a : 다른 사용자들의 프로세스도 보여준다. -x : 로그인 상태에 있는 동안 완료되지 않은 프로세스들을 보여준다. 유닉스 시스템은 사용자가 로그아웃하고 난 후에도 임의의 프로세스가 계속 동작하게 할 수 있다. 그러면 그 프로세스는 자신을 실행시킨 쉘이 없이도 계속 자신의 일을 수행한다. 이러한 프로세스는 일반적인 ps 명령으로 확인할 수 없다. 이때 –x 옵션을 사용하면 자신의 터미널이 없는 프로세스들을 확인할 수 있다. -S : 챠일드(child) CPU 시간과 메모리 페이지 결함(fault) 정보를 추가한다. -c : 커널 task_structure로부터 명령 이름을 보여준다. -e : 환경을 보여준다. -w : 긴(wide) 형태로 출력한다. 한행 안에 출력이 잘리지 않는다. -h : 헤더를 출력하지 않는다. -n : USER와 WCHAIN을 위해 수치 출력을 지원한다.
|
명령 출력의 각 필드의 의미는 다음과 같다. USER : 프로세스 소유자의 계정을 보여준다. PID : 프로세스를 구분하기 위한 고유의 ID RSS : 프로세스에 의해 사용되는 실제 메모리의 용량(Kbyte 단위) SZ : 프로세스의 자료와 스택의 크기(Kbyte 단위) TIME : 현재까지 사용된 CPU의 시간(분, 초) TTY : 프로세스의 제어 터미널(t3=/dev/tty3) // ? 로 나오는 것은 부팅되면서 자동으로 실행되는 프로세스이다. %CPU : 마지막 분 동안 프로세스가 사용한 CPU 시간의 백분율 %MEM : 마지막 분 동안 프로세스가 사용한 메모리양의 백분율 START : 프로세스가 시작된 시간 STAT : 프로세스의 상태 COMMAND : 명령어의 이름
|
위에서 STAT는 몇 가지 부호를 사용해서 프로세스의 상태를 표시하고 있는데, 아래와 같은 의미이다.(뒤의 top 이라는 명령어에서 다시 나온다!)
P : 수행가능/수행중 T : 일시 정지 D : 디스크 입출력 대기 같은 인터럽트 할 수 없는 대기상태 S : 20초 미만의 짧은 휴식상태(sleep) I(대문자 아이) : 20초 이상의 긴 휴식 상태 Z : 좀비(zombi) 프로세스
| 아래 그냥 ps 를 입력해보자.
[root@localhost /]# cd / [root@localhost /]# ps PID TTY TIME CMD 8628 pts/2 00:00:00 bash 8744 pts/2 00:00:00 ps
|
위의 결과를 보면 현재 ps를 실행시킨 사용자는 bash 쉘 사용중에 ps를 실행시켰다는 것을 알 수 있다. ps 명령어를 사용할 때 가장 흔히 사용하는 옵션이 –e 와 –f 옵션인데, 우리는 위의 옵션중에 하나인 –w 옵션을 이용해서 긴(wide) 형태로 출력해보자.
[root@localhost /]# ps –efw ..중간 생략.. root 7912 1 0 12:37 ? 00:00:00 /usr/sbin/sshd root 7923 1 0 12:37 ? 00:00:00 cupsd root 7943 1 0 12:37 ? 00:00:00 sendmail: accepting connections smmsp 7951 1 0 12:37 ? 00:00:00 sendmail: Queue mailto:runner@01" style="color: rgb(0, 94, 108); text-decoration: none;">runner@01:00:00 for /var/spool/clientmqueue root 7963 1 0 12:37 ? 00:00:00 gpm -m /dev/input/mice -t exps2 root 7974 1 0 12:37 ? 00:00:00 crond ..이하 생략..
|
◆ 특정 프로세스가 실행되어있는가 확인하기
특정 프로세스의 실행 상태를 정확하게 확인하고자 한다면 ps 명령어에서 필요한 프로세스명을 지정하여 그에 해당하는 프로세스만을 확인하면 된다.
<사용형식> ps –ef | grep 확인하고자하는프로세스명 즉, 특정 프로세스가 현재 실행중인가를 확인하고자 한다면 위의 형식을 사용하면 된다.
(예) 모든 프로세스 중에서 tty 관련된 프로세스만을 표시해 준다는 의미이다. [root@localhost /]# ps -ef | grep tty root 8170 1 0 12:37 tty1 00:00:00 /sbin/mingetty tty1 root 8171 1 0 12:37 tty2 00:00:00 /sbin/mingetty tty2 root 8172 1 0 12:37 tty3 00:00:00 /sbin/mingetty tty3 root 8173 1 0 12:37 tty4 00:00:00 /sbin/mingetty tty4 root 8174 1 0 12:37 tty5 00:00:00 /sbin/mingetty tty5 root 8203 1 0 12:37 tty6 00:00:00 /sbin/mingetty tty6 root 8282 8277 2 12:38 tty7 00:00:26 /usr/bin/Xorg :0 -br -audit 0 -auth/var/gdm/:0.Xauth -nolisten tcp vt7 root 8756 8628 0 12:59 pts/2 00:00:00 grep tty
| (예) ssh에 관련된 프로세스만을 표시해줌 [root@localhost /]# ps -ef | grep ssh root 7912 1 0 12:37 ? 00:00:00 /usr/sbin/sshd root |
|