In OS CPU Real,
User and Sys process time statistics
One of these things is not like the other. Real refers to actual elapsed time; User and Sys refer to CPU time used only by the process.
1) What is Real Time
Real time is wall clock time - It's the time taken to start and finish the entire execution.
2) What is User Time
It is the the amount of CPU time spent in user-mode code (outside the kernel) within the process. This is only actual CPU time used in executing the process. Other processes and time the process spends blocked do not count towards this figure. If you want to know more about CPU time there is separate post where CPU time is well explained.
It is the the amount of CPU time spent in user-mode code (outside the kernel) within the process. This is only actual CPU time used in executing the process. Other processes and time the process spends blocked do not count towards this figure. If you want to know more about CPU time there is separate post where CPU time is well explained.
2) What is System Time
System time is the amount of CPU time spent in the kernel within the process. Which means executing CPU time spent in system calls within the kernel, as opposed to library code, which is still running in user-space. Like 'user', this is only CPU time used by the process. See below for a brief description of kernel mode (also known as 'supervisor' mode) and the system call mechanism.
System time is the amount of CPU time spent in the kernel within the process. Which means executing CPU time spent in system calls within the kernel, as opposed to library code, which is still running in user-space. Like 'user', this is only CPU time used by the process. See below for a brief description of kernel mode (also known as 'supervisor' mode) and the system call mechanism.
User+Sys - will tell
you how much actual CPU time your process used. Note that this is across all
CPUs, so if the process has multiple threads (and this process is running on a
computer with more than one processor) it could potentially exceed the wall
clock time reported by Real (which usually occurs).
The rule of thumb
is:
real < user:
The process is CPU bound and takes advantage of parallel execution on multiple
cores/CPUs.
real ≈ user: The
process is CPU bound and takes no advantage of parallel exeuction.
real > user:
The process is I/O bound. Execution on multiple cores would be of little to
advantage
http://stackoverflow.com/questions/556405/what-do-real-user-and-sys-mean-in-the-output-of-time
A program is CPU bound if it would go faster if the
CPU were faster, i.e. it spends the majority of its time simply using the CPU
(doing calculations). A program that computes new digits of π will typically be
CPU-bound, it's just crunching numbers.
A program is I/O bound if it would go faster if the
I/O subsystem was faster. Which exact I/O system is meant can vary; I typically
associate it with disk. A program that looks through a huge file for some data
will often be I/O bound, since the bottleneck is then the reading of the data
from disk.
CPU Bound means the rate at which process progresses
is limited by the speed of the CPU. A task that performs calculations on a
small set of numbers, for example multiplying small matrices, is likely to be
CPU bound.
I/O Bound means the rate at which a process progresses
is limited by the speed of the I/O subsystem. A task that processes data from
disk, for example, counting the number of lines in a file is likely to be I/O
bound.
Memory bound means the rate at which a process
progresses is limited by the amount memory available and the speed of that
memory access. A task that processes large amounts of in memory data, for example
multiplying large matrices, is likely to be Memory Bound.
Cache bound means the rate at which a process progress
is limited by the amount and speed of the cache available. A task that simply
processes more data than fits in the cache will be cache bound.
I/O Bound would be slower than Memory Bound would be
slower than Cache Bound would be slower than CPU Bound.
No comments:
Post a Comment