Thread: xBSD shmem doc deficiency

xBSD shmem doc deficiency

From
Neil Conway
Date:
The documentation on changing shared memory kernel settings on xBSD
(namely FreeBSD, possibly others as well) isn't ideal, IMHO. It says:

%%    The options SYSVSHM and SYSVSEM need to be enabled when the    kernel is compiled. (They are by default.) The
maximumsize of    shared memory is determined by the option SHMMAXPGS (in    pages). The following shows an example of
howto set the various    parameters:
 

options         SYSVSHM
options         SHMMAXPGS=4096
options         SHMSEG=256

options         SYSVSEM
options         SEMMNI=256
options         SEMMNS=512
options         SEMMNU=256
options         SEMMAP=256
   (On NetBSD and OpenBSD the key word is actually option singular.)
   You may also want to use the sysctl setting to lock shared memory   into RAM and prevent it from being paged out to
swap.
%%

However, it appears that shared memory & semaphore settings can also
be controlled via sysctls -- at least on a FreeBSD 4.7-RELEASE box, I
can see:

kern.ipc.semmap: 30
kern.ipc.semmni: 10
kern.ipc.semmns: 60
kern.ipc.semmnu: 30
kern.ipc.semmsl: 60
kern.ipc.semopm: 100
kern.ipc.semume: 10
kern.ipc.semusz: 92
kern.ipc.semvmx: 32767
kern.ipc.semaem: 16384
kern.ipc.shmmax: 33554432
kern.ipc.shmmin: 1
kern.ipc.shmmni: 192
kern.ipc.shmseg: 128
kern.ipc.shmall: 8192
kern.ipc.shm_use_phys: 0

However, the FreeBSD box I'm playing with isn't mine, so I'm not too
keen to change sysctls (well, that and I don't have root :-) ). Would
a kind BSD user confirm that:
       (a) the sysctls above *can* be used to change kernel shared           memory settings, and the default value of
thesysctl is           the kernel option referred to in the docs.
 
       (b) do the above sysctls work on NetBSD and OpenBSD as well?
       (c) the 'prevent shared memory paging' sysctl vaguely referred           to in the docs is
'kern.ipc.shm_use_phys',right?
 
       (d) does the above sysctl also work on NetBSD and OpenBSD?

Thanks in advance,

Neil

-- 
Neil Conway <neilc@samurai.com> || PGP Key ID: DB3C29FC



Re: xBSD shmem doc deficiency

From
Jon Jensen
Date:
On 20 Nov 2002, Neil Conway wrote:

> However, the FreeBSD box I'm playing with isn't mine, so I'm not too
> keen to change sysctls (well, that and I don't have root :-) ). Would
> a kind BSD user confirm that:
> 
>         (a) the sysctls above *can* be used to change kernel shared
>             memory settings, and the default value of the sysctl is
>             the kernel option referred to in the docs.
> 
>         (b) do the above sysctls work on NetBSD and OpenBSD as well?

A quick look at OpenBSD 3.2 (man 3 sysctl) appears to show that all you
can do at runtime is enable/disable message queues, shared memory, and
semaphores, not adjust buffer counts or sizes. It seems the kernel must 
still be recompiled with the desired new settings.

Jon



Re: xBSD shmem doc deficiency

From
Kris Jurka
Date:
Apparently only some settings are adjustable.

root@dev:~# uname -smr
FreeBSD 4.2-RELEASE i386
root@dev:~# sysctl -a | grep kern.ipc.semm
kern.ipc.semmap: 30
kern.ipc.semmni: 10
kern.ipc.semmns: 60
kern.ipc.semmnu: 30
kern.ipc.semmsl: 60
root@dev:~# sysctl -w kern.ipc.semmap=50
kern.ipc.semmap: 30 -> 50
root@dev:~# sysctl -w kern.ipc.semmni=50
sysctl: oid 'kern.ipc.semmni' is read only
root@dev:~#


On 20 Nov 2002, Neil Conway wrote:

> The documentation on changing shared memory kernel settings on xBSD
> (namely FreeBSD, possibly others as well) isn't ideal, IMHO. It says:
>
> %%
>      The options SYSVSHM and SYSVSEM need to be enabled when the
>      kernel is compiled. (They are by default.) The maximum size of
>      shared memory is determined by the option SHMMAXPGS (in
>      pages). The following shows an example of how to set the various
>      parameters:
>
> options         SYSVSHM
> options         SHMMAXPGS=4096
> options         SHMSEG=256
>
> options         SYSVSEM
> options         SEMMNI=256
> options         SEMMNS=512
> options         SEMMNU=256
> options         SEMMAP=256
>
>     (On NetBSD and OpenBSD the key word is actually option singular.)
>
>     You may also want to use the sysctl setting to lock shared memory
>     into RAM and prevent it from being paged out to swap.
> %%
>
> However, it appears that shared memory & semaphore settings can also
> be controlled via sysctls -- at least on a FreeBSD 4.7-RELEASE box, I
> can see:
>
> kern.ipc.semmap: 30
> kern.ipc.semmni: 10
> kern.ipc.semmns: 60
> kern.ipc.semmnu: 30
> kern.ipc.semmsl: 60
> kern.ipc.semopm: 100
> kern.ipc.semume: 10
> kern.ipc.semusz: 92
> kern.ipc.semvmx: 32767
> kern.ipc.semaem: 16384
> kern.ipc.shmmax: 33554432
> kern.ipc.shmmin: 1
> kern.ipc.shmmni: 192
> kern.ipc.shmseg: 128
> kern.ipc.shmall: 8192
> kern.ipc.shm_use_phys: 0
>
> However, the FreeBSD box I'm playing with isn't mine, so I'm not too
> keen to change sysctls (well, that and I don't have root :-) ). Would
> a kind BSD user confirm that:
>
>         (a) the sysctls above *can* be used to change kernel shared
>             memory settings, and the default value of the sysctl is
>             the kernel option referred to in the docs.
>
>         (b) do the above sysctls work on NetBSD and OpenBSD as well?
>
>         (c) the 'prevent shared memory paging' sysctl vaguely referred
>             to in the docs is 'kern.ipc.shm_use_phys', right?
>
>         (d) does the above sysctl also work on NetBSD and OpenBSD?
>
> Thanks in advance,
>
> Neil
>
> --
> Neil Conway <neilc@samurai.com> || PGP Key ID: DB3C29FC
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
>



Re: xBSD shmem doc deficiency

From
Bruce Momjian
Date:
Neil Conway wrote:
>         (c) the 'prevent shared memory paging' sysctl vaguely referred
>             to in the docs is 'kern.ipc.shm_use_phys', right?

I have added a mention of this to the 7.4 docs:
       You might also want to use the <application>sysctl</> setting to       lock shared memory into RAM and prevent
itfrom being paged out       to swap, e.g. <literal>kern.ipc.shm_use_phys</>.
 

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
359-1001+  If your life is a hard drive,     |  13 Roberts Road +  Christ can be your backup.        |  Newtown Square,
Pennsylvania19073
 


Re: xBSD shmem doc deficiency

From
"Christopher Kings-Lynne"
Date:
Hi Neil,

> However, the FreeBSD box I'm playing with isn't mine, so I'm not too
> keen to change sysctls (well, that and I don't have root :-) ). Would
> a kind BSD user confirm that:
>
>         (a) the sysctls above *can* be used to change kernel shared
>             memory settings, and the default value of the sysctl is
>             the kernel option referred to in the docs.

Unless this has changed in 4.7, lots of those shm sysctls are
read-only...ie. you cannot set the shared memory pool size at runtime.  I'll
look at it again tho.

>         (c) the 'prevent shared memory paging' sysctl vaguely referred
>             to in the docs is 'kern.ipc.shm_use_phys', right?

I'll have to investigate that one...

Chris