* [gentoo-amd64] System load during emerge
@ 2007-03-04 11:51 Peter Humphrey
2007-03-04 16:09 ` [gentoo-amd64] " Duncan
2007-03-04 18:29 ` [gentoo-amd64] " Thomas Rösner
0 siblings, 2 replies; 7+ messages in thread
From: Peter Humphrey @ 2007-03-04 11:51 UTC (permalink / raw
To: gentoo-amd64
I'm watching the emerge of mozilla-firefox with top (I've just set the java
USE flag so that I can use some astronomy Web sites), and I'm puzzled. This
is a dual-Opteron box with 4G memory, and I have it set up with 6G /tmp
mounted on tmpfs. Top shows 0k of used swap, so I'm confident that I'm not
doing any swapping. It should show me a total of up to 200% when the system
is fully loaded.
But top shows 49 - 50% wa, which I understand is I/O waiting time (even with
the X term rolled up), cc1plus is showing only single-digit percent CPU,
and the System and User CPU % are in the teens. I can get X to use 30-odd %
by leaving the terminal on display, or 1% by rolling it up; that seems not
to affect the other figures. No other user processes are running; only the
background processes started by init and so on. What is the machine doing?
Why does it not work harder at its allotted task?
--
Rgds
Peter
--
gentoo-amd64@gentoo.org mailing list
^ permalink raw reply [flat|nested] 7+ messages in thread
* [gentoo-amd64] Re: System load during emerge
2007-03-04 11:51 [gentoo-amd64] System load during emerge Peter Humphrey
@ 2007-03-04 16:09 ` Duncan
2007-03-04 17:35 ` Peter Humphrey
2007-03-04 18:29 ` [gentoo-amd64] " Thomas Rösner
1 sibling, 1 reply; 7+ messages in thread
From: Duncan @ 2007-03-04 16:09 UTC (permalink / raw
To: gentoo-amd64
Peter Humphrey <prh@gotadsl.co.uk> posted
200703041151.37846.prh@gotadsl.co.uk, excerpted below, on Sun, 04 Mar
2007 11:51:37 +0000:
> I'm watching the emerge of mozilla-firefox with top (I've just set the
> java USE flag so that I can use some astronomy Web sites), and I'm
> puzzled. This is a dual-Opteron box with 4G memory, and I have it set up
> with 6G /tmp mounted on tmpfs. Top shows 0k of used swap, so I'm
> confident that I'm not doing any swapping. It should show me a total of
> up to 200% when the system is fully loaded.
>
> But top shows 49 - 50% wa, which I understand is I/O waiting time (even
> with the X term rolled up), cc1plus is showing only single-digit percent
> CPU, and the System and User CPU % are in the teens. I can get X to use
> 30-odd % by leaving the terminal on display, or 1% by rolling it up;
> that seems not to affect the other figures. No other user processes are
> running; only the background processes started by init and so on. What
> is the machine doing? Why does it not work harder at its allotted task?
Ouch!
There's a couple things to check. First, you say /tmp is on tmpfs and in
memory (no swap), but you don't mention where you have $PORTAGE_TMPDIR
pointed. That's set in make.conf and defaults to /var/tmp. Here, /var/
tmp is a symlink pointing to /tmp so it doesn't really matter, but I have
$PORTAGE_TMPDIR set to /tmp anyway. You may also wish to tweak
$PORTAGE_TMPFS (see the documentation in make.conf.example) and if you
have FEATURES=buildpkg set, $PKG_TMPDIR (which I don't see documentation
for ATM, but...). If /tmp is tmpfs and it's of reasonable size (as yours
is), there's little reason not to have all of them set to /tmp.
Second, for general disk access speed (IOW, not portage specific), if
you've not checked it, emerge hdparm if necessary and see if your hard
drives are using DMA. If they aren't, you'll have MUCH slower disk i/o.
Normally, if you are using the correct drivers, DMA should be activated
by default, but it's not uncommon for folks to be using the generic
drivers or some other specific hardware drivers that don't fully match
the disk controller chipset they actually have, thus forcing the kernel
to use compatibility mode. Less commonly, a driver won't activate DMA
even if it's the right one, or will, but at a lower speed (say UDMA66
rather than UDMA133) than both the drive and the chipset can handle. Of
course, don't attempt to activate a higher UDMA mode than both drive and
chipset support, or you'll risk data corruption.
Of course, also note that depending on the ebuild stage and how much of
what it is accessing you already have cached, portage does do some non-
tmp I/O access. In particular, it has to read the portage tree to
discover dependencies, then distdir to see if the tarball is there (and
if not fetch it), then untar it to $PORTAGE_TMPDIR and read and apply any
patches. At the beginning of the compile step it does the configure,
which accesses and tests for all sorts of system binaries, so until those
are cached (generally after the first thing using a configure script is
emerged), there will be some disk I/O reading those. If you have CCACHE
set up, of course it must write the compiles to that as it goes, but
unless your drives aren't using DMA, that shouldn't be a big issue.
Finally, at the package (if FEATURES=buildpkg) and qmerge steps, it'll
write to the pkg dir and to the general system as it installs.
There's also portage logging and associated log variables. Again, this
shouldn't be a big deal if you've got DMA on your drives, but it might be
if you don't.
Finally, if it's writing anything to NFS mounts or the like over the
network, or if you have distcc active, it's possible the wait is on the
network, not on your local hard drives, of course depending on exactly
how you are configured.
--
Duncan - List replies preferred. No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master." Richard Stallman
--
gentoo-amd64@gentoo.org mailing list
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [gentoo-amd64] Re: System load during emerge
2007-03-04 16:09 ` [gentoo-amd64] " Duncan
@ 2007-03-04 17:35 ` Peter Humphrey
2007-03-04 17:58 ` dustin
2007-03-04 19:27 ` Bernhard Auzinger
0 siblings, 2 replies; 7+ messages in thread
From: Peter Humphrey @ 2007-03-04 17:35 UTC (permalink / raw
To: gentoo-amd64
On Sunday 04 March 2007 16:09:03 Duncan wrote:
> Peter Humphrey <prh@gotadsl.co.uk> posted
> 200703041151.37846.prh@gotadsl.co.uk, excerpted below, on Sun, 04 Mar
>
> > What is the machine doing?
>
> There's a couple things to check. First, you say /tmp is on tmpfs and in
> memory (no swap), but you don't mention where you have $PORTAGE_TMPDIR
> pointed.
It's not long since we discussed this. It's set to /tmp, and so is
PKG_TMPDIR.
> Second, for general disk access speed (IOW, not portage specific), if
> you've not checked it, emerge hdparm if necessary and see if your hard
> drives are using DMA. If they aren't, you'll have MUCH slower disk i/o.
Hdparm is installed and does set DMA on. The only disk access I can foresee
portage doing is to write its log file. Could that really consume as much
time as I'm seeing? Seems unlikely to me.
[Later...] I've now found that if I run "hdparm -d1 /dev/sda" from an X
terminal I get "HDIO_SET_DMA failed: Inappropriate ioctl for device", but
when /etc/init.d/hdparm is run during boot I see [ok] for each drive. Looks
like I've got some exploring to do.
> Of course, also note that depending on the ebuild stage and how much of
> what it is accessing you already have cached, portage does do some non-
> tmp I/O access.
As I said, I was watching firefox being compiled. All the preliminary stages
had been completed by then. All the source code should have been in memory,
but I can't say the same for any other libraries. On the other hand, just
how much time is needed to load all the development libraries needed for
this compilation?
> There's also portage logging and associated log variables. Again, this
> shouldn't be a big deal if you've got DMA on your drives, but it might be
> if you don't.
Yes, that's the only thing I can think of.
> Finally, if it's writing anything to NFS mounts or the like over the
> network, or if you have distcc active, it's possible the wait is on the
> network, not on your local hard drives, of course depending on exactly
> how you are configured.
I did play with distcc but found it unreliable on a large package, so I've
removed it from make.conf. I don't use NFS or any other networked
operations that I can think of.
Thanks for the suggestions.
--
Rgds
Peter
--
gentoo-amd64@gentoo.org mailing list
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [gentoo-amd64] Re: System load during emerge
2007-03-04 17:35 ` Peter Humphrey
@ 2007-03-04 17:58 ` dustin
2007-03-04 19:27 ` Bernhard Auzinger
1 sibling, 0 replies; 7+ messages in thread
From: dustin @ 2007-03-04 17:58 UTC (permalink / raw
To: gentoo-amd64
On Sun, Mar 04, 2007 at 05:35:16PM +0000, Peter Humphrey wrote:
> As I said, I was watching firefox being compiled. All the preliminary stages
> had been completed by then. All the source code should have been in memory,
> but I can't say the same for any other libraries. On the other hand, just
> how much time is needed to load all the development libraries needed for
> this compilation?
Not necessarily - gcc pulls in quite a range of system headers, which
may be cached by the kernel less aggressively than the other stuff
you're keeping in RAM.
I'd recommend running iostat (in the sysstat ebuild) to see at least
what kind of IO is going on here. You may also want to experiment with
remounting e.g., /usr/include on a tmpfs.
Dustin
--
gentoo-amd64@gentoo.org mailing list
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [gentoo-amd64] System load during emerge
2007-03-04 11:51 [gentoo-amd64] System load during emerge Peter Humphrey
2007-03-04 16:09 ` [gentoo-amd64] " Duncan
@ 2007-03-04 18:29 ` Thomas Rösner
2007-03-06 9:14 ` Peter Humphrey
1 sibling, 1 reply; 7+ messages in thread
From: Thomas Rösner @ 2007-03-04 18:29 UTC (permalink / raw
To: gentoo-amd64
Hi,
Peter Humphrey schrieb:
> I'm watching the emerge of mozilla-firefox with top (I've just set the java
> USE flag so that I can use some astronomy Web sites), and I'm puzzled. This
> is a dual-Opteron box with 4G memory, and I have it set up with 6G /tmp
> mounted on tmpfs. Top shows 0k of used swap, so I'm confident that I'm not
> doing any swapping. It should show me a total of up to 200% when the system
> is fully loaded.
>
> But top shows 49 - 50% wa, which I understand is I/O waiting time (even with
> the X term rolled up), cc1plus is showing only single-digit percent CPU,
> and the System and User CPU % are in the teens. I can get X to use 30-odd %
> by leaving the terminal on display, or 1% by rolling it up; that seems not
> to affect the other figures. No other user processes are running; only the
> background processes started by init and so on. What is the machine doing?
> Why does it not work harder at its allotted task?
What are your MAKEOPTS set to? Are you sure firefox can be built in
parallel? Depending on how long lived the g++ processes are, top showing
low CPU percentage for them is quite normal.
If nothing helps, try compiling inside a screen session.
Regards,
Thomas
--
gentoo-amd64@gentoo.org mailing list
^ permalink raw reply [flat|nested] 7+ messages in thread
* [gentoo-amd64] Re: System load during emerge
2007-03-04 17:35 ` Peter Humphrey
2007-03-04 17:58 ` dustin
@ 2007-03-04 19:27 ` Bernhard Auzinger
1 sibling, 0 replies; 7+ messages in thread
From: Bernhard Auzinger @ 2007-03-04 19:27 UTC (permalink / raw
To: gentoo-amd64
> [Later...] I've now found that if I run "hdparm -d1 /dev/sda" from an X
> terminal I get "HDIO_SET_DMA failed: Inappropriate ioctl for device", but
> when /etc/init.d/hdparm is run during boot I see [ok] for each drive. Looks
> like I've got some exploring to do.
As far as I know "hdparm -d1" is not available, because sata drives work with
libata (within the scsi subsystem) which uses dma for all drives.
rgds
Bernhard
--
gentoo-amd64@gentoo.org mailing list
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [gentoo-amd64] System load during emerge
2007-03-04 18:29 ` [gentoo-amd64] " Thomas Rösner
@ 2007-03-06 9:14 ` Peter Humphrey
0 siblings, 0 replies; 7+ messages in thread
From: Peter Humphrey @ 2007-03-06 9:14 UTC (permalink / raw
To: gentoo-amd64
On Sunday 04 March 2007 18:29:55 Thomas Rösner wrote:
> What are your MAKEOPTS set to?
-j5, to give one active and one waiting on each CPU, with one just in case.
> Are you sure firefox can be built in parallel?
I can't say I am. It does appear to launch a batch of compilations together,
but then, later, top only shows one compiler instance at a time.
> Depending on how long lived the g++ processes are, top showing
> low CPU percentage for them is quite normal.
I don't understand the connection with long life.
> If nothing helps, try compiling inside a screen session.
Hmm. I haven't used screen yet, not having had a need so far as I know.
Thanks for the ideas.
--
Rgds
Peter Humphrey
Linux Counter 5290, Aug 93
--
gentoo-amd64@gentoo.org mailing list
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2007-03-06 9:16 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-03-04 11:51 [gentoo-amd64] System load during emerge Peter Humphrey
2007-03-04 16:09 ` [gentoo-amd64] " Duncan
2007-03-04 17:35 ` Peter Humphrey
2007-03-04 17:58 ` dustin
2007-03-04 19:27 ` Bernhard Auzinger
2007-03-04 18:29 ` [gentoo-amd64] " Thomas Rösner
2007-03-06 9:14 ` Peter Humphrey
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox