From: Chris Gianelloni <wolf31o2@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] Optimizing performance
Date: Thu, 15 Dec 2005 09:13:34 -0500 [thread overview]
Message-ID: <1134656014.21439.28.camel@vertigo.twi-31o2.org> (raw)
In-Reply-To: <1134650885.4634.57.camel@localhost>
[-- Attachment #1: Type: text/plain, Size: 3972 bytes --]
On Thu, 2005-12-15 at 13:48 +0100, Patrick Lauer wrote:
> - don't overtweak CFLAGS. "-O2 -march=$your_cpu_family" seems to be on
> average the best, -O3 is often slower and can cause bugs
-O2 -march=$your_cpu_family -pipe -fomit-frame-pointer
-pipe
Use pipes rather than temporary files for communication between
the various stages of compilation. This fails to work on some
systems where the assembler is unable to read from a pipe; but
the GNU assembler has no trouble.
-O also turns on -fomit-frame-pointer on machines where doing so does
not interfere with debugging.
(However, x86 is not one of these machines, so you can turn it on if you
are not a developer doing debugging for a slight additional speed
increase)
-fomit-frame-pointer
Don't keep the frame pointer in a register for functions that
don't need one. This avoids the instructions to save, set up and
restore frame pointers; it also makes an extra register
available in many functions.
> - don't do anything with ASFLAGS, LDFLAGS. This causes weird random
> breakage (e.g. LDFLAGS="-O1" causes prelink to fail with "absurd"
> errors) and doesn't give a noticeable performance boost
Correct.
Also, running prelink can improve speed at the cost of disk space.
> - check that all IDE disks use DMA mode, otherwise they are limited to
> ~16M/s with a huge CPU usage penalty. Sometimes (application-specific)
> increasing the readahead with hdparm gives a huge throughput boost.
I typically use the same hdparm settings as listed in the Handbook:
disc0_args="-d1 -A1 -m16 -u1 -a64 -c1"
cdrom0_args="-d1 -c1"
> - kernel tweaks like preempt may increase the responsiveness of the
> system, but often reduce throughput and may have unexpected sideeffects
> like random audio stutter as well as random kernel crashes ;-)
This is especially true on non-x86 architectures.
> - kernel tweaks like setting swappiness or using a different I/O
> scheduler (CFQ, deadline) should help, but I'm not aware of any "real"
> benchmarks except microbenchmarks (can create 1M files 10% faster!!!!! -
> yes, but how does it behave with a normal workload?)
CFQ is much worse for a desktop system. I tend to like deadline for
playing games. These can probably make a bit more difference than a new
-fomg-itsofast-and-broken-math added to CFLAGS.
> - using a "smarter" filesystem can dramatically improve performance at
> the potential cost of reliability. As data on FS reliability is hard to
> find from unbiased sources this becomes a religious issue ... migrating
> from ext3 to reiserfs makes "emerge sync" extremely much faster, but is
> reiserfs sustainable?
Well, reiserfs 3 isn't so bad on architectures where it doesn't vomit
all over itself immediately. Also, resierfs loses much of its luster if
you're running ext3 with dir_index. There was a tip in the GWN about
turning on dir_index on an already formatted file system. If formatting
a new one, just use mkfs.ext2 -J -O dir_index /dev/$whatever to create
your file system.
> Are there any application-specific tweaks (e.g. "use the prefork MPM
> with apache2")? What is known to break things, what has usually
> beneficial behaviour? Are there any useful benchmarks that show the
> performance difference between different settings?
Well, turning on SBA and Fast Writes on Nvidia always helps. As for
benchmarks, I think the issue is it depends entirely on usage. Having
something that is 30% faster on paper isn't very useful if you never do
it the way the benchmark does. I wish I had more numbers/examples here,
but there isn't really much in the way of decent benchmarks published
and readily available. Hopefully some other people will know of more of
them than I do.
--
Chris Gianelloni
Release Engineering - Strategic Lead
x86 Architecture Team
Games - Developer
Gentoo Linux
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2005-12-15 14:29 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-12-15 12:48 [gentoo-dev] Optimizing performance Patrick Lauer
2005-12-15 13:43 ` Francesco Riosa
2005-12-15 14:17 ` Diego 'Flameeyes' Pettenò
2005-12-15 16:00 ` Patrick Lauer
2005-12-15 16:57 ` Matthijs van der Vleuten
2005-12-15 14:13 ` Chris Gianelloni [this message]
2005-12-15 18:08 ` Wernfried Haas
2005-12-15 18:39 ` Curtis Napier
2005-12-15 14:43 ` [gentoo-dev] " Duncan
2005-12-15 15:43 ` Patrick Lauer
2005-12-15 15:50 ` Donnie Berkholz
2005-12-23 17:28 ` Paul de Vrieze
2005-12-23 17:36 ` Donnie Berkholz
2005-12-23 17:58 ` Lares Moreau
2005-12-15 16:03 ` Diego 'Flameeyes' Pettenò
2005-12-15 17:49 ` [gentoo-dev] " Duncan
2005-12-15 17:06 ` [gentoo-dev] " Francesco Riosa
2005-12-15 15:58 ` [gentoo-dev] " Nathaniel McCallum
2005-12-15 18:38 ` John Myers
2005-12-23 17:35 ` Paul de Vrieze
2005-12-23 23:52 ` Diego 'Flameeyes' Pettenò
2005-12-24 2:08 ` John Myers
2005-12-24 11:37 ` Kevin F. Quinn
2005-12-24 12:05 ` Diego 'Flameeyes' Pettenò
2005-12-27 15:38 ` Paul de Vrieze
2005-12-28 5:37 ` [gentoo-dev] " Duncan
2005-12-28 9:50 ` Duncan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1134656014.21439.28.camel@vertigo.twi-31o2.org \
--to=wolf31o2@gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox