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