Re: Quick Q: proc: table is full ?

2021-01-19 Thread Why 42? The lists account.


On Tue, Jan 19, 2021 at 05:56:16PM -, Stuart Henderson wrote:
> > What causes "proc: table is full", or better asked, what limit might I be
> > hitting?
> Perhaps kern.maxthread; check kern.nthreads.

Hi Stuart,

Aha. I think you have nailed it:
> mjoelnir:/etc 19.01 21:13:02 # sysctl kern | egrep 'max(proc|thread)'
> kern.maxproc=8192
> kern.maxthread=1950
> mjoelnir:/etc 19.01 21:13:19 # ^max^n
> sysctl kern | egrep 'n(proc|thread)'
> kern.nthreads=1736
> kern.nprocs=283

I see that, way back when, I increased kern.maxproc to 8192 in
/etc/sysctl.conf. But I didn't realise then that I might also need to
increase the maxthread value. I'll change these and see if that helps.
(Bound to!)

I find the message to be a bit misleading though: "proc: table is full"

Clearer might be something like:
"kernel: thread table full: reached limit: kern.maxthread"

Or similar. I.e. the who, the what and the why.

Thanks for the tip!

Cheers,
Robb.



Re: Quick Q: proc: table is full ?

2021-01-19 Thread Stuart Henderson
On 2021-01-19, Why 42? The lists account.  wrote:
>
> Hi All,
>
> What causes "proc: table is full", or better asked, what limit might I be
> hitting?

Perhaps kern.maxthread; check kern.nthreads.




Quick Q: proc: table is full ?

2021-01-19 Thread Why 42? The lists account.


Hi All,

What causes "proc: table is full", or better asked, what limit might I be
hitting?

I wrote a quick loop to check how many processes are running i.e.
> while true   
> do
> DATE=`date +'%Y.%m.%d %H:%M:%S'`
> echo -n "${DATE}: "
> ps -AHk | wc -l
> sleep 90
> done
> 2021.01.19 12:59:21: 1821
> 2021.01.19 13:00:51: 1731
> 2021.01.19 13:02:21: 1698
> 2021.01.19 13:03:52: 1696
> ... 
I have yet to see a high of more than ~2000.

Sysctl shows me these proc values:
> kern.maxproc=8192
> kern.nprocs=283

I am the only user on the machine (Xfce Desktop and too many browser
tabs). I am a member of "staff" so I think these limits apply:
> staff:\
> :datasize-cur=8192M:\
> :datasize-max=infinity:\
> :maxproc-cur=7500:\
> :maxproc-max=1:\
> :openfiles-cur=15000:\
> :openfiles-max=2:\
> :ignorenologin:\
> :requirehome@:\
> :tc=default:

Running "limit" in my shell (zsh) shows:
> cputime unlimited
> filesizeunlimited
> datasize8192MB
> stacksize   4MB
> coredumpsizeunlimited
> memoryuse   31608MB
> memorylocked10537MB
> maxproc 7500
> descriptors 15000

Also, a related question ... that message shows up in the output of dmesg
and also gets logged to the messages file, but it isn't reported in my
Xconsole window. In there I see stuff like this:
> Console log for mjoelnir
> drm:pid64450:intel_pipe_update_start *ERROR* [drm] *ERROR* Potential atomic 
> update failure on pipe A
> uvm_mapent_alloc: out of static map entries

But no corresponding proc table full messages. Is it not considered to be
important enough to also go to this console?

Thanks in advance!

Cheers,
Robb.