Why user time of the process depends on machine load?
John Baldwin
jhb at freebsd.org
Thu Jun 16 11:13:40 UTC 2011
On Wednesday, June 15, 2011 5:55:17 pm Dan Nelson wrote:
> In the last episode (Jun 15), Yuri said:
> > When I test performance of the code, I always observe dependency of CPU
> > user time on the presence of other CPU intense processes. Same CPU-only
> > deterministic process that on the quiet machine completes in 220 user
> > seconds in the presence of, for example, kde rebuild would complete in
> > 261, 266 or even 379 user seconds. I am talking about times shown by
> > time(1), not actual an execution time. It's the same time as getrusage(2)
> > returns in ru_utime field.
> >
> > Why time that process takes in user seconds depends on what other
> > processes are running?
> >
> > FreeBSD-8.2 STABLE on i7 CPU @ 9200 @ 2.67GHz.
>
> Some possible factors:
>
> o Intel Turbo Boost, which raises the clock rate of a single core if the
> other cores are idle. A single process on an idle system will run faster.
>
> o i7 chips have a shared L3 cache across all cores, so a single process on
> an idle system will tend to have more of its data in cache compared to a
> system with multiple processes, so it spends less time waiting for slower
> physical memory lookups.
>
> o Process accounting isn't exact. I may be wrong, but I don't think
> timestamps are taken every time a syscall is invoked and returns. Some
> time marked as "user" may actually be "system" time, in which case you may
> be seeing the effect of contention in the kernel as more processes are
> run.
This is very true. You can only really trust the sum of system + user time
and compare that across runs.
--
John Baldwin
More information about the freebsd-hackers
mailing list