共有メモリ 128MB
/etc/sysctl.conf
# shmall=shmmax/4096 kern.ipc.shmall=32768 kern.ipc.shmmax=134217728 kern.ipc.semmap=256 kern.ipc.shm_use_phys=1
/boot/loader.conf
kern.ipc.semmni=256 kern.ipc.semmns=512 kern.ipc.semmnu=256
確認
# sysctl -a | grep ipc.shm # sysctl -a | grep ipc.semm
SEMMNI セマフォ識別子の最大数(つまりセット) 最低ceil((max_connections + autovacuum_max_workers + max_worker_processes + 5) / 16)
SEMMNS システム全体のセマフォの最大数 ceil((max_connections + autovacuum_max_workers + max_worker_processes + 5) / 16) * 17 + 他のアプリケーション用の空間max_connections=100
autovacuum_max_workers=3
max_worker_processes=8
だと
SEMMNI=最低ceil((100 + 3 + 8 + 5) / 16)=最低8
SEMMNS=ceil((100 + 3 + 8 + 5) / 16) * 17 + 他のアプリケーション用の空間=136 + 他のアプリケーション用の空間FreeBSD11.1
kern.ipc.semmni: 50
kern.ipc.semmns: 340
kern.ipc.semmnu: 150
共有メモリ
(使用量確認)
# ipcs -a
SEGSZ
1048576(=1024*1024)で除算してMBに変換
kern.ipc.shm_use_phys
try setting:
sysctl kern.ipc.shm_use_phys=1
http://unix.derkeiler.com/Mailing-Lists/FreeBSD/stable/2008-03/msg00410.html
kern.ipc.shm_use_phys sysctl は、デフォルトが 0 (オフ) であり、
0 (オフ) または 1 (オン) にセットすることができます。
このパラメータを 1 にセットすると、全ての System V 共有メモリセグメントが
ページング不可の物理メモリにマップされます。
これは、(A) 大量 (数百) のプロセス間で少量の共有メモリを
マッピングしているか、(B) 任意個のプロセス間で大量の共有メモリを
マッピングしている、のいずれかの場合に効果があります。
この機能は、共有メモリをスワップ不可にすることで、
共有メモリをコアに結び付ける時に生じる、
カーネルにおける内部のメモリ管理によるページ追跡 オーバヘッドをかなり減らします。
また、共有メモリをRAM上に残し、スワップへのページアウトを
行わせないようにさせたいかもしれません。
これはsysctlのkern.ipc.shm_use_phys設定を使用して実現できます。
kern.ipc.semmap は削除された
This has been removed in r224016:
http://svnweb.freebsd.org/base/head/sys/kern/sysv_sem.c?r1=223825&r2=224016http://freebsd.1045724.x6.nabble.com/About-kern-ipc-semmap-on-FreeBSD-9-td5586992.html