English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Linux time 명령어

Linux 명령어大全

Linux time 명령어의 용도는 특정 명령어 실행 시 소비되는 시간 및 시스템 자원 등의 정보를 측정하는 것입니다.

예를 들어 CPU 시간, 메모리, 입력/출력 등이 필요합니다. 특히 주의해야 할 것은 일부 정보가 Linux에서 표시되지 않는다는 점입니다. 이는 Linux에서 일부 자원 할당 함수가 time 명령어가 예정한 방식과 다르기 때문입니다. 이로 인해 time 명령어는 이러한 자료를 얻을 수 없습니다.

문법

time [옵션] 명령어 [인수]

파라미터:

  • -o 또는 --output=FILE: 결과 출력 파일을 설정합니다. 이 옵션은 time의 출력을 지정된 파일에 기록합니다. 파일이 이미 존재하면 시스템이 내용을 덮어쓰습니다.
  • -a 또는 --append와 함께 사용됩니다: -o 사용하면, 결과가 파일의 끝에 쓰이고 기존 내용은 덮어쓰이지 않습니다.
  • -f FORMAT 또는 --format=FORMAT: FORMAT 문자열로 표시 방식을 설정합니다. 이 옵션이 설정되지 않았을 때는 시스템 기본 설정을 사용합니다. 그러나 이를 환경 변수 time로 설정할 수 있어서, 매번 시스템에 로그인할 때마다 설정할 필요가 없습니다

time 명령어는 네 가지 주요 자원을 표시할 수 있습니다. 이들은 다음과 같습니다:

  • 시간 자원
  • 메모리 자원
  • IO 자원
  • 명령어 정보

상세한 내용은 다음과 같습니다:

1Time 자원

명령어 실행에 소비된 시간, 형식은 [시간]:분:초입니다. 이 숫자는 실제 CPU 시간을 나타내지 않습니다

명령어 실행에 소비된 시간, 단위는 초입니다. 이 숫자는 실제 CPU 시간을 나타내지 않습니다

명령어 실행 시 핵심 모드(kernel mode)에서 소비된 시간, 단위는 초입니다

명령어 실행 시 사용자 모드(user mode)에서 소비된 시간, 단위는 초입니다

CPU가 명령어 실행 시 사용하는 비율. 이 숫자는 핵심 모드와 사용자 모드의 CPU 시간을 총 시간으로 나눈 값입니다

2Memory 자원

프로그램이 사용하는 실제 메모리의 최대 값. 단위는 KB입니다

프로그램이 사용하는 실제 메모리의 평균 크기, 단위는 KB입니다

프로그램이 사용하는 메모리 총량(stack+data+text)의 평균 크기, 단위는 KB입니다

프로그램의 자유 데이터 영역(unshared data area)의 평균 크기, 단위는 KB입니다

프로그램의 자유 스택(unshared stack)의 평균 크기, 단위는 KB입니다

프로그램 간 공유 내용(shared text)의 평균 크기, 단위는 KB입니다

시스템 메모리 페이지 크기, 단위는 byte입니다. 동일한 시스템에서 이는 상수입니다

3IO 자원

이 프로그램의 주요 메모리 페이지 오류가 발생한 횟수. 주요 메모리 페이지 오류란 특정 메모리 페이지가 교환 캐시에 이동되었으며, 다른 프로그램에 할당되었을 때의 것입니다. 이 페이지의 내용은 교환 캐시에서 다시 읽어들여져야 합니다

이 프로그램의 부수 메모리 페이지 오류가 발생한 횟수. 부수 메모리 페이지 오류란 특정 메모리 페이지가 교환 캐시에 이동되었지만 아직 다른 프로그램에 할당되지 않았을 때의 것입니다. 이 페이지의 내용은 파괴되지 않았기 때문에 교환 캐시에서 읽어들일 필요가 없습니다

이 프로그램이 교환 캐시에 이동된 횟수

이 프로그램이 강제로 중단되는 횟수(CPU 시간이 소진된 것처럼)

이 프로그램이 자발적으로 중단되었습니다(아니면 어떤 I를 기다리고 있는 것처럼)/O 실행이 완료되면, 디스크 읽기와 같은 작업을 수행하는 횟수

I 이 프로그램이 입력한 파일의 수

O 이 프로그램이 출력한 파일의 수

r 이 프로그램이 받은 소켓 메시지

s 이 프로그램이 보낸 소켓 메시지

k 이 프로그램이 받은 신호(Signal)의 수

4、Command Info

C 실행 시의 파라미터 및 명령어 이름

x 명령어의 종료 코드(Exit Status)

-p 또는 --portability: 이 옵션은 자동으로 표시 형식을 설정합니다:

real %e user %Usys %S: 이렇게 하는 목적은 POSIX 표준과 호환되기 위함입니다.

-v 또는 --verbose: 이 옵션은 모든 프로그램에서 사용된 자원을 모두 나열합니다. 일반 영어 문장뿐만 아니라 설명도 포함됩니다. 형식 설정에 시간을 들이지 않고자 하는 사람이나 이 명령어를 처음 접하는 사람에게 매우 유용합니다.

온라인 예제

1. # time date
2. Sun Mar 26 22:45:34 GMT-8 2006
3. 
4. real    0m0.136s
5. user    0m0.010s
6. sys     0m0.070s
7. #

위 예제에서 "time date" 명령어를 실행합니다(제1행)。

시스템은 먼저 "date" 명령어를 실행합니다, 제2행은 "date" 명령어의 실행 결과입니다.

행은3-6행은 "date" 명령어를 실행한 시간 통계 결과입니다, 중에서4"real" 행은 실제 시간입니다, 제5"user" 행은 사용자 CPU 시간입니다, 제6"sys" 행은 시스템 CPU 시간입니다.

위 세 가지 시간의 표시 형식은 모두 MMmNN[.FFF]s입니다.

아래 명령어를 사용하여

time -v ps -aux

ps 명령어를 실행할 수 있습니다. -aux의 결과와 소비된 시스템 자원은 다음과 같은 자료에서 확인할 수 있습니다:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 1096 472 ? S Apr19 0:04 init
root 2 0.0 0.0 0 0 ? SW Apr19 0:00 [kflushd]
root 3 0.0 0.0 0 0 ? SW Apr19 0:00 [kpiod]
......
root 24269 0.0 1.0 2692 996 pts/3 R 12:16 0:00 ps -aux
시간을 측정하는 명령어: "ps -aux"
사용자 시간(초): 0.05
시스템 시간(초): 0.06
CPU에 할당된 비율: 68%
지나간 시간 (시간:분:초 또는 분:초): 0:00.16
평균 공유 텍스트 크기 (kbytes): 0
평균 비공유 데이터 크기 (kbytes): 0
평균 스택 크기 (kbytes): 0
평균 총 크기 (kbytes): 0
최대 주소 부분 크기 (kbytes): 0
평균 주소 부분 크기 (kbytes): 0
메이저 (I 요구하는)/O) 페이지 실수: 238
미니 (프레임을 회수하는) 페이지 실수: 46
의도적 컨텍스트 전환: 0
비의도적 컨텍스트 전환: 0
스왑스: 0
파일 시스템 입력: 0
파일 시스템 출력: 0
보낸 소켓 메시지: 0
수신된 소켓 메시지: 0
전달된 신호: 0
페이지 크기 (바이트): 4096
종료 상태: 0

Linux 명령어大全