Mark Haney wrote:
Is there another way to use nice, or to fix that problem? Or another way to manage CPU usage during an emerge?
I'll just echo what Duncan said about nice / ionice. However, you might find the impact of ionice -c 3 on compilation is reduced if you use a tmpfs for /var/tmp/portage. Note that depending on what you're building you might need a fairly large tmpfs, and it could trigger swapping.
Note also that all your settings for niceness/etc won't impact RAM consumption - even a niced emerge is going to eat RAM when building some of the more massive packages.
However, I find that I can run almost anything with ionice -c 3 nice -n 20 <command> and have almost no impact on my system at all. Conversely, I set stuff like the mythtv backend to run with ionice -c 1 so that I never drop frames due to recording buffer issues.
Just don't go crazy with it. If I try to build two copies of firefox (chroot and main) while running some java app that consumes 1GB of virtual address space, and then try to transcode a video or something while recording two videos, having all that stuff set to ionice/nice won't be of much help.