poudriere, make make-depends, pkg-static consumes alot of cpu. Playing youtube videos is interrupted i.e. an ULE scheduler issue ?
As even "nice -n 20" does not fix it.
As even "nice -n 20" does not fix it.
…
[00:00:56] [01] [00:00:30] Status multimedia/webcamd | webcamd-5.17.1.0: build
[00:09:34] [01] [00:09:08] Status multimedia/webcamd | webcamd-5.17.1.0: run-depends
[00:09:34] [01] [00:09:08] Status multimedia/webcamd | webcamd-5.17.1.0: stage
[00:09:36] [01] [00:09:10] Status multimedia/webcamd | webcamd-5.17.1.0: package
load: 1.43 cmd: sh 50275 [nanslp] 573.38r 0.60u 2.17s 0% 3672k
mi_switch+0xc2 sleepq_catch_signals+0x2e6 sleepq_timedwait_sig+0x12 _sleep+0x1c2 kern_clock_nanosleep+0x1c1 sys_nanosleep+0x3b amd64_syscall+0x10c fast_syscall_common+0xf8
[main-default] [2022-04-14_01h20m22s] [parallel_build:] Queued: 3 Built: 0 Failed: 0 Skipped: 0 Ignored: 0 Fetched: 2 Tobuild: 1 Time: 00:09:35
ID TOTAL ORIGIN PKGNAME PHASE PHASE TMPFS CPU% MEM%
[01] 00:09:13 multimedia/webcamd | webcamd-5.17.1.0 package 00:00:03 2.26 GiB 26.1% 0.5%
[00:09:39] Logs: /usr/local/poudriere/data/logs/bulk/main-default/2022-04-14_01h20m22s
[00:09:39] [01] [00:09:13] Status multimedia/webcamd | webcamd-5.17.1.0: install
[00:09:40] [01] [00:09:14] Status multimedia/webcamd | webcamd-5.17.1.0: deinstall
[00:09:40] [01] [00:09:14] Finished multimedia/webcamd | webcamd-5.17.1.0: Success
…
My suspicion is that nice does not play nice "hard enough" for all the things (jails & its processes) that poudriere does behind the scenes.poudriere, make make-depends, pkg-static consumes alot of cpu. Playing youtube videos is interrupted i.e. an ULE scheduler issue ?
As even "nice -n 20" does not fix it.
Nice is not nice enough. I think freebsd needs a nicer niceMy suspicion is that nice does not play nice "hard enough" for all the things (jails & its processes) that poudriere does behind the scenes.
Perhaps when you confine the poudriere (bulk) build as a whole to a separate jail, you'll have more direct influence and control to limit its resources.
nice -n 18 idprio 29 poudriere -N bulk -f /usr/local/etc/poudriere.d/myports.txt -J 3 -j 13amd64 -p default
csh/tcsh have built in nice with a simpler syntax, so use /usr/bin/niceThis syntax only seems to work only in a bourne shell or script.
Thanks, I was unaware of idprio.From: https://hackmd.io/@dch/HkwIhv6x7
A few weeks ago, I discovered a gem in the above. I've been running poudriere from a script like this:
Code:nice -n 18 idprio 29 poudriere -N bulk -f /usr/local/etc/poudriere.d/myports.txt -J 3 -j 13amd64 -p default
This syntax only seems to work only in a bourne shell or script.
It runs poudriere at a nice and idle priority.
I have not found any other examples on the internet of the two being combined.
I can say that youtube in firefox and other interactive stuff seems to run a lot more smoothly.
Thanks to dch@ - I believe he/Dave is a FreeBSD developer.
nice -n 15 idprio 23 /usr/local/bin/poudriere bulk -J 5 -j $JAIL -p $PORTS -f $PACKAGES
nice
) is first looked for as a tcsh builtin command and ... that happens to be the case. As covacat already noted, the Bourne shell (sh(1)) does not have a builtin nice
.This means that only after the shell decides a command is not a builtin (=internal) command (and also not an alias) that command is searched for externally, that is: in the filesystem. When searching in the filesystem, that is where the search path comes into play when the command is not preceded with an absolute or relative path.When a command to be executed is found not to be a builtin command the
shell attempts to execute the command via execve(2). Each word in the
variable path names a directory in which the shell will look for the command.
nice -n 18 idprio 29 poudriere -N bulk -f /usr/local/etc/poudriere.d/myports.txt -J 3 -j 13amd64 -p default
nice
is selected and executed. The tcsh(1) builtin commands which
and where
* are very useful to check in advance what is going to be executed**:% which nice
nice: shell builtin command.
% where nice
nice is a shell builtin
/usr/bin/nice
\nice
. The backslash is a way to specify a character literally; thereby losing its special meaning for the shell. In this particular case however, at first the string "\nice" will be taken by the tcsh as one word and it tries to match it with a builtin command: that doesn't succeed. Further on in the processing, the "\n" is converted to an ordinary character "n"; in the end the string "nice" is matched to the file /usr/bin/nice% which \nice
/usr/bin/nice
% where \nice
/usr/bin/nice
\n\i\c\e
.If the output is more than one line then the ordered lines represent the instances where command can be found; the first one is executed.where command
Reports all known instances of command, including aliases, builtins and executables in path.
===>>> Creating a backup package for old version mysql57-server-5.7.37_1
Creating package for mysql57-server-5.7.37_1
load: 2.95 cmd: pkg-static 74876 [running] 49.17r 46.63u 0.20s 99% 105424k