Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Setting portage nice value in limits.conf
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Documentation, Tips & Tricks
View previous topic :: View next topic  
Author Message
Ytterby
n00b
n00b


Joined: 30 Dec 2021
Posts: 6

PostPosted: Thu Dec 30, 2021 11:53 am    Post subject: Setting portage nice value in limits.conf Reply with quote

I've just installed Gentoo and the one annoying thing about Gentoo is that the user called portage is using all my resources causing buffer underruns when watching videos.

edit /etc/security/limits.conf
Code:
portage - nice 19


Linux is pretty good in scheduling anyway so unless I start up games or other intensive tasks portage should compile just fine albeit slightly slower.

if anyone has more small tweaks that help desktop/laptop oriented use I'd like to hear it.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54299
Location: 56N 3W

PostPosted: Thu Dec 30, 2021 12:08 pm    Post subject: Reply with quote

Ytterby,

Welcome to Gentoo.

There is a knob in make.conf for portage niceness. Its set to 3 by default when you don't define it.
Run
Code:
emerge --info


nice will not stop the niced process(es) from using all available resources, it just makes the process get out of the way faster, so it probably won't fix your issue.

Post the output of
Code:
emerge --info
and we can look it over and make some suggestions.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Ytterby
n00b
n00b


Joined: 30 Dec 2021
Posts: 6

PostPosted: Thu Dec 30, 2021 1:00 pm    Post subject: Reply with quote

Quote:
Its set to 3 by default when you don't define it.

Top said the nice value was 0. Anyway, it fixed the issue.

Do you have any tips on how to measure the responsiveness of the system? I want to mess with kernel configurations and maybe abuse portage some more but I want to know the latencies of my input and how fast my GPU can paint to screen.

I'm using wayfire atm

edit: why doesn't the code tag work?

Code:
 Portage 3.0.28 (python 3.9.9-final-0, default/linux/amd64/17.1/desktop, gcc-11.2.0, glibc-2.33-r7, 5.15.11-gentoo-x86_64 x86_64)
=================================================================
System uname: Linux-5.15.11-gentoo-x86_64-x86_64-AMD_Ryzen_7_PRO_3700U_w-_Radeon_Vega_Mobile_Gfx-with-glibc2.33
KiB Mem:    14303444 total,   9489024 free
KiB Swap:          0 total,         0 free
Timestamp of repository gentoo: Thu, 30 Dec 2021 10:00:01 +0000
Head commit of repository gentoo: f1867738572fc3b06ba94c0ac28cf8ec88ae7997
Timestamp of repository steam-overlay: Thu, 30 Dec 2021 10:21:34 +0000
Head commit of repository steam-overlay: 688fc066d816cff22dcba737f5c781010953f078

sh bash 5.1_p8
ld GNU ld (Gentoo 2.37_p1 p0) 2.37
app-misc/pax-utils:        1.3.3::gentoo
app-shells/bash:           5.1_p8::gentoo
dev-lang/perl:             5.34.0-r3::gentoo
dev-lang/python:           3.9.9::gentoo, 3.10.0_p1::gentoo
dev-lang/rust-bin:         1.56.1::gentoo
dev-util/cmake:            3.21.4::gentoo
dev-util/meson:            0.59.4::gentoo
sys-apps/baselayout:       2.7-r3::gentoo
sys-apps/openrc:           0.44.10::gentoo
sys-apps/sandbox:          2.25::gentoo
sys-devel/autoconf:        2.13-r1::gentoo, 2.71-r1::gentoo
sys-devel/automake:        1.16.4::gentoo
sys-devel/binutils:        2.37_p1::gentoo
sys-devel/binutils-config: 5.4::gentoo
sys-devel/gcc:             11.2.0::gentoo
sys-devel/gcc-config:      2.4::gentoo
sys-devel/libtool:         2.4.6-r6::gentoo
sys-devel/llvm:            13.0.0::gentoo
sys-devel/make:            4.3::gentoo
sys-kernel/linux-headers:  5.15-r1::gentoo (virtual/os-headers)
sys-libs/glibc:            2.33-r7::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000
    sync-rsync-verify-metamanifest: yes
    sync-rsync-verify-max-age: 24
    sync-rsync-extra-opts:
    sync-rsync-verify-jobs: 1

steam-overlay
    location: /var/db/repos/steam-overlay
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/steam-overlay.git
    masters: gentoo

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/var/cache/distfiles"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-march=native -O2 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-march=native -O2 -pipe"
GENTOO_MIRRORS="https://ftp.uni-hannover.de/gentoo/ https://mirror.leaseweb.com/gentoo/ https://ftp.snt.utwente.nl/pub/os/linux/gentoo"
LANG="C.UTF8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j8"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
SHELL="/bin/bash"
USE="X a52 aac acl acpi alsa amd64 bluetooth branding bzip2 cairo cdda cdr cli crypt cups dbus dri dts dvd dvdr elogind emboss encode exif flac fortran gdbm gif gtk gui iconv icu ipv6 jpeg lcms libglvnd libnotify libtirpc mad mng mp3 mp4 mpeg multilib ncurses nls nptl ogg opengl openmp pam pango pcre pdf png policykit ppds pulseaudio qt5 readline sdl seccomp spell split-usr ssl startup-notification svg tiff truetype udev udisks unicode upower usb vorbis wxwidgets x264 xattr xcb xml xv xvid zlib" ABI_X86="64" ADA_TARGET="gnat_2020" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-3 php7-4" POSTGRES_TARGETS="postgres12 postgres13" PYTHON_SINGLE_TARGET="python3_9" PYTHON_TARGETS="python3_9" RUBY_TARGETS="ruby26 ruby27" USERLAND="GNU" VIDEO_CARDS="amdgpu fbdev intel nouveau radeon radeonsi vesa dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LEX, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS


Quote and code tags fixed by NeddySeagoon
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54299
Location: 56N 3W

PostPosted: Thu Dec 30, 2021 1:21 pm    Post subject: Reply with quote

Ytterby,

Check your PM.

Code:
MAKEOPTS="-j8"
is too much for your 14G RAM. Big packages want 2G of real RAM per thread.
You can throttle in back on a per package basis when you discover the problem packages.
Hint: Rust, firefox, thunderbird, libreoffice and a few others.

Not having any swap space does not prevent the kernel swapping. It only prevents dynamically allocated RAM from being written to HDD.
The kernel can and will drop read caches, drop executable code and flush write caches to free RAM.
This leads to slowdowns due to the page faults triggered to reload things. That forces an expensive context switch too, as the kernel switches away from the stalled thread.

A small swap that you watch to see that its never used is a good thing.
That allows you to tune the system to not need it.
The other approach is to fit so much RAM, swap cannot possibly be needed.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Ytterby
n00b
n00b


Joined: 30 Dec 2021
Posts: 6

PostPosted: Thu Dec 30, 2021 2:18 pm    Post subject: Reply with quote

NeddySeagoon wrote:
Ytterby,

Check your PM.

Code:
MAKEOPTS="-j8"
is too much for your 14G RAM. Big packages want 2G of real RAM per thread.
You can throttle in back on a per package basis when you discover the problem packages.
Hint: Rust, firefox, thunderbird, libreoffice and a few others.

Not having any swap space does not prevent the kernel swapping. It only prevents dynamically allocated RAM from being written to HDD.

I have 16GiB of ram installed but I forgot that the GPU claims 2gig in the default configuration. I really dont want to drop to 6 threads because of a few annoying packages. What would be the best way to limit threads on big packages?

You're right about making a swap file, on my last linux install I disabled overcommit. Now that's probaly no longer an option when compiling big packages on gentoo. I could shrink my partition but I decided to make a file-based swap

Code:
swapon
NAME      TYPE SIZE USED PRIO
/swapfile file 512M   0B   -2


I dont know if this is large enough but I can always change it based on my needs.

also, I did see some hard pagefaults so i definitely need it when compiling and doing other things at the same time
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54299
Location: 56N 3W

PostPosted: Thu Dec 30, 2021 2:30 pm    Post subject: Reply with quote

Ytterby,

The idea of swap these days is not so much to use it as to keep an eye on it when the system is stressed to make sure that its not used.
CPUs and memory have got much faster. Storage, not so much, so making swap to actually use is not something to be done lightly.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
pjp
Administrator
Administrator


Joined: 16 Apr 2002
Posts: 20067

PostPosted: Thu Dec 30, 2021 3:51 pm    Post subject: Re: Setting portage nice value in limits.conf Reply with quote

Ytterby wrote:
one annoying thing about Gentoo is that the user called portage is using all my resources causing buffer underruns when watching videos.

edit /etc/security/limits.conf
Code:
portage - nice 19
Fortunately that was thought of early on.
man make.conf:
PORTAGE_NICENESS = [number]


Ytterby wrote:
if anyone has more small tweaks that help desktop/laptop oriented use I'd like to hear it.
From the same man page, though I have not used it:
Code:
PORTAGE_IONICE_COMMAND = [ionice command string]


Ytterby wrote:
edit: why doesn't the code tag work?
I'm guessing you are referring to your original post. When you post, there is an option "Disable BBCode in this post", which was selected. I've deselected it, so the code tags now work.

Ytterby wrote:
I have 16GiB of ram installed but I forgot that the GPU claims 2gig in the default configuration. I really dont want to drop to 6 threads because of a few annoying packages. What would be the best way to limit threads on big packages?
https://wiki.gentoo.org/wiki//etc/portage/package.env

That doesn't give an explicit example for MAKEOPTS, so here is one:
Code:
$ cat /etc/portage/env/makeopts_j1
MAKEOPTS="-j1"
$ cat /etc/portage/package.env/makeopts
sys-devel/clang     makeopts_j1


Related to -j is -l, which isn't directly mentioned here, https://wiki.gentoo.org/wiki/MAKEOPTS , but has a link to a blog about it.
It is also briefly mentioned here: https://wiki.gentoo.org/wiki/EMERGE_DEFAULT_OPTS as well as in the same previously mentioned man page under MAKEOPTS.

Another possibly helpful option might be using a tmpfs to reduce writes during emerging https://wiki.gentoo.org/wiki/Portage_TMPDIR_on_tmpfs . No idea if that would help reduce battery utilization.
_________________
Quis separabit? Quo animo?
Back to top
View user's profile Send private message
sam_
Developer
Developer


Joined: 14 Aug 2020
Posts: 1685

PostPosted: Wed Mar 02, 2022 3:37 am    Post subject: Reply with quote

You may find the new Portage niceness page interesting (which mentions some bonuses like chrt).
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Documentation, Tips & Tricks All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum