¾�ΥС�������ʸ�� �� 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

17.4. �����ͥ�꥽�����δ���

�絬�Ϥ�PostgreSQL���󥹥ȥ졼�����Ǥϡ������˳Ƽ索�ڥ졼�ƥ��󥰥����ƥ�Υ꥽�������¤�Ķ���Ƥ��ޤ����Ȥ�����ޤ��� �ʥ����ƥ�ˤ�äƤϡ��ºݤ�"�絬��"�ʥ��󥹥ȥ졼�����Ǥʤ��Ƥ⡢�вٻ��Υǥե���ȤǤ���᤮���Τ⤢��ޤ����� ���μ�����꤬ȯ�������顢�������ɤ�Ǥ���������

17.4.1. ��ͭ����ȥ��ޥե�

��ͭ����ȥ��ޥե��ϤҤȤޤȤ��"System V IPC"�ȸƤФ�ޤ� �ʥ�å��������塼����Ǥ����������PostgreSQL�Ȥϴط�����ޤ���ˡ� �ۤȤ�ɤ��٤ƤκǶ�Υ��ڥ졼�ƥ��󥰥����ƥ�Ϥ����ε�ǽ���󶡤��Ƥ��ޤ������ǥե���ȤǤϤ�����¿����ͭ���ˤʤäƤ��ޤ��󤷡��ޤ����ä���ܤ����RAM��ǡ����١������ץꥱ�������μ��פ��礭���ʤäƤ���ˤ�ؤ�餺����ʬ�ʥ�����������ޤ��� ��Windows�ǤǤϡ�PostgreSQL���ȼ�������Ū�ʼ����Ǥ����ε�ǽ���󶡤��Ƥ��ޤ������Τ�������ΤۤȤ�ɤ�̵�뤹�뤳�Ȥ��Ǥ��ޤ��ˡ�

�����ε�ǽ�δ����ʷ���ϡ������е�ư����Illegal system call���顼�ˤ�ä�Ƚ�����ޤ��� ���ξ��ϥ����ͥ�����ꤷľ����������ޤ��� PostgreSQL�Ϥ����ε�ǽ�ʤ��Ǥ�ư���ޤ��� �������Ƕ�Υ��ڥ졼�ƥ��󥰥����ƥ�ǤϤ������������Ϥޤ�ʤ�ΤǤ���

PostgreSQL���͡���IPC�Υϡ��ɥ�ߥåȤ�1�Ĥ�Ķ����ȡ������Фϵ�ư����ݤ������ꤪ��Ӳ��򤹤٤������������륨�顼��å�������Ĥ��ޤ��� ��項17.3.1 �⻲�Ȥ��Ƥ����������� �ط����륫���ͥ�ѥ�᡼�����̡��Υ����ƥ��Ǥ����줷��̾�դ����Ƥ��ޤ��� 表17-1�dz�ά���狼��ޤ��� ���������������ꤹ�뤿�����ˡ�ϰۤʤ�ޤ��� �ʲ��ˡ������Ĥ��Υץ�åȥե�����ؤ���Ƥ�󤲤ޤ���

表 17-1. System V IPC�ѥ�᡼��

̾������Ŭ�ڤ���
SHMMAX��ͭ���ꥻ�����Ȥκ��祵�����ʥХ��ȡ��Ǿ��Ǥ���ᥬ�Х��ȡ���ʸ�򻲾Ȥ��Ƥ���������
SHMMIN��ͭ���ꥻ�����ȤκǾ��������ʥХ��ȡ�1
SHMALL���Ѳ�ǽ�ʶ�ͭ��������̡ʥХ��Ȥޤ��ϥڡ������Х��Ȼ���ξ��SHMMAX��Ʊ���Ǥ��� �ڡ�������ξ���ceil(SHMMAX/PAGE_SIZE)�Ǥ���
SHMSEG�ץ��������Ȥζ�ͭ���ꥻ�����Ȥκ����ɬ�פʤΤ�1�������Ȥ����Ǥ������ǥե���ȤǤϤ�ä�¿���ʤäƤ��ޤ�
SHMMNI�����ƥ����Τζ�ͭ���ꥻ�����Ȥκ����SHMSEG��Ʊ�� + ¾�Υ��ץꥱ��������Ѥζ���
SEMMNI���ޥե����̻Ҥκ�����ʤĤޤꥻ�åȡ����� ceil((max_connections + autovacuum_max_workers + 4) / 16)
SEMMNS�����ƥ����ΤΥ��ޥե��κ����ceil((max_connections + autovacuum_max_workers + 4) / 16) * 17 + ¾�Υ��ץꥱ��������Ѥζ���
SEMMSL���åȤ��ȤΥ��ޥե��κ��������17
SEMMAP���ޥե��ޥåפ���ι��ܤο���ʸ�򻲾�
SEMVMX���ޥե��κ���������1000�ʥǥե���ȤϤ��Ф���32767�Ǥ�����ɬ�פ��ʤ�����ѹ����ʤ��Ǥ���������

��ͭ����˴ؤ�����ֽ��פʥѥ�᡼���ϡ���ͭ���ꥻ�����Ȥκ��祵�����ΥХ��ȿ�SHMMAX�Ǥ��� �⤷shmget����"Invalid argument"�Τ褦�ʥ��顼��å��������������硢�����餯���ξ�¤�Ķ���Ƥ��ޤ��� ɬ�פʶ�ͭ���ꥻ�����ȤΥ������ϡ�表17-2�˼����Ƽ��PostgreSQL����ѥ�᡼���ˤ�ä��Ѥ��ޤ��� �ʥ��顼���˽��Ϥ�����å������ˤϤ��٤ơ���������׵�˼��Ԥ������Τʥ����������ܤ���Ƥ��ޤ����� ���顼��ʤ�������ΰ��Ū�ʺ��Ȥ��ơ�������������㤯���뤳�Ȥ�Ǥ��ޤ��� SHMMAX��2�ᥬ�Х��ȤȤ���PostgreSQL���ư�����뤳�Ȥ��Ǥ��ޤ��������ƤǤ�����ǽ����ݤ��뤿��ˤϤ��ʤ���¿���Υ�������ɬ�פǤ��� 10�ᥬ�Х���ñ�̤���100�ᥬ�Х��Ȥ���������Х��Ȥ������侩���ޤ���

�ޤ��������ƥ����ˤϡ������ƥ�ˤ����붦ͭ��������̡�SHMALL�ˤ��Ф������¤������Τ�����ޤ��� �����ͤ�μ¤ˡ�PostgreSQL�ȶ�ͭ���ꥻ�����Ȥ���Ѥ���¾�Υ��ץꥱ�������ι�פ��⽽ʬ���礭�����Ƥ��������� ¿���Υ����ƥ��SHMALL�ϥХ���ñ�̤ǤϤʤ��ڡ���ñ�̤Ǥ��뤳�Ȥ����դ��Ƥ���������

���꤬���ʤ��Τ϶�ͭ���ꥻ�����ȤκǾ���������SHMMIN�ˤǡ�PostgreSQL�ǤϺ���Ǥ⤪�褽500�����Х��ȤΤϤ��Ǥ����̾�Ǥ�1�Ǥ��ˡ� �����ƥ����ΤΥ������Ȥκ������SHMMNI�ˤ⤷���ϥץ��������ȤΥ������Ȥκ������SHMSEG�ˤ˴ؤ��ơ����Ѥ��Ƥ��륷���ƥ��0�����ꤵ��Ƥ��ʤ��¤ꡢ���꤬�����뤳�ȤϤۤܤ���ޤ���

PostgreSQL�ϡ����Ĥ�����³��max_connections�ˤ���ӵ��Ĥ�������ץ�������autovacuum_max_workers�ˤ��Ȥ�1�ĤΥ��ޥե�����Ѥ���16�ĤΥ��ޥե���콸��Ȥ��ư����ޤ��� ���ν��礽�줾���17���ܤΥ��ޥե�����������Υ��ޥե���¾�Υ��ץꥱ�������˻Ȥ��Ƥ��륻�ޥե����åȤȤξ��ͤ򸡽Ф��뤿���"�ޥ��å��ʥ�С�"����äƤ��ޤ��� �����ƥ���Υ��ޥե��κ������SEMMNS�ˤ�ä����ꤵ�졢���η�̤Ȥ��Ƥ����ͤϾ��ʤ��Ȥ�max_connections��autovacuum_max_workers��Ʊ���������������Ĥ��줿��³�ȥ��16�Ĥ��Ȥ�;ʬ��1�Ĥ�ä����Ͱʾ�Ϥʤ���Ф����ޤ��� ��表17-1�θ����򻲾Ȥ��Ƥ��������ˡ� SEMMNI�ѥ�᡼���ϥ����ƥ���Ʊ����¸�ߤǤ��륻�ޥե�����ο��ξ�¤���ꤷ�ޤ��� �Ǥ����餳�Υѥ�᡼���Ͼ��ʤ��Ȥ�ceil((max_connections + autovacuum_max_workers + 4) / 16)�ʾ�Ϥʤ��ƤϤ����ޤ��� ���Ū�ʼ��Ԥβ�����Ȥ��Ƥϵ��Ĥ������³�ο��򲼤��뤳�Ȥ��Ǥ��ޤ�����"No space left on device"�Ȥ���ʶ��路�����դ�semget()�ؿ�����ɽ������ޤ���

���ˤ�äƤ�SEMMAP�򾯤ʤ��Ȥ�SEMMNS��Ʊ���٤����䤹���Ȥ�ɬ�פˤʤ��礬���뤫�⤷��ޤ��� ���Υѥ�᡼���ϥ��ޥե��꥽�����ޥåפΥ��������������������Ǥ�ͭ���ʥ��ޥե��Τ��줾������ܤ����֥��å��ι��ܤ�ɬ�פǤ��� ���ޥե����礬���������ȡ��������줿�֥��å������ܤ������¸�ߤ�����ܤ��ɲä���뤫���⤷���Ͽ������ޥåפι��ܤβ�����Ͽ����ޤ��� �⤷�ޥåפ����դ��ä���硢�������줿���ޥե��ϡʺƵ�ư����ޤǡ˼����ޤ��� ���ޥե����֤����Ҳ��ˤ����֤��ФĤ��Ȥˡ�ͭ���ʥ��ޥե�������٤��̤��⾯�ʤ��ʤ��ǽ��������ޤ���

1�Ĥν������ˤ����ĤΥ��ޥե������뤫�����SEMMSL��PostgreSQL�ǤϾ��ʤ��Ȥ�17�Ϥʤ��ƤϤ����ޤ���

SEMMNU��SEMUME�Τ褦�ʡ�����¾���͡���"semaphore undo"�˴ؤ��������PostgreSQL�ˤϱƶ���Ϳ���ޤ���

AIX

���ʤ��Ȥ�С������5.1�Ǥϡ����٤ƤΥ��꤬��ͭ����Ȥ��ƻ��ѤǤ���褦�����ꤵ��Ƥ���褦�ˤߤ��ޤ��Τǡ�SHMMAX�ʤɤΥѥ�᡼�����Ф������̤������ɬ�פ���ޤ��� �����DB/2�ʤɤ�¾�Υǡ����١����Ǥ���Ѥ���롢����Ū��������ˡ�Ǥ���

��������/etc/security/limits������Ū��ulimit������ѹ����ʤ���Фʤ�ʤ����⤷��ޤ��� �ǥե���ȤΥե����륵������fsize�ˤȥե��������nofiles���ѤΥϡ��ɥ�ߥåȤ���᤮�뤫�⤷��ʤ�����Ǥ���

BSD/OS

��ͭ����. �ǥե���ȤǤϡ�4�ᥬ�Х��Ȥζ�ͭ���ꤷ�����ݡ��Ȥ���Ƥ��ޤ��� ��ͭ����ϥڡ����󥰤Ǥ��ʤ����Ȥ�Ф��Ƥ����Ƥ��������� RAM����˥��å�����Ƥ���ΤǤ��� �����ƥ�ǥ��ݡ��Ȥ���붦ͭ�Хåե��������ä���ˤϡ������ͥ�����ե�����˰ʲ����ɲä��Ƥ���������

options "SHMALL=8192"
options "SHMMAX=\(SHMALL*PAGE_SIZE\)"

SHMALL��4�����Х��ȥڡ���ñ�̤Ǥ��Τǡ�1024�Ȥ����ͤϡ���ͭ���꤬4�ᥬ�Х��ȤǤ��뤳�Ȥ򼨤��ޤ��� �������äơ��嵭�Ǥϡ�����ζ�ͭ�����ΰ��32�ᥬ�Х��Ȥޤ����ä��Ƥ��ޤ��� 4.3�ʹߤǤϡ������餯KERNEL_VIRTUAL_MB��ǥե���Ȥ�248������䤵�ʤ���Фʤ�ޤ��� ���٤Ƥ��ѹ���Ԥä��塢�����ͥ��ƥ���ѥ��뤷����֡��Ȥ��Ƥ���������

���ޥե�. ���ޥե��ο��ˤĤ��Ƥ����䤷������礬���뤫�⤷��ޤ��� �ǥե���ȤΥ����ƥ��פǤ���60�Ȥ����ͤǤϡ����褽50�Ĥ�PostgreSQL��³�����Ǥ��ޤ��� ��˾�����ͤ򥫡��ͥ�����ե���������ꤷ�Ƥ����������㤨�С�

options "SEMMNI=40"
options "SEMMNS=240"

FreeBSD

�ǥե���Ȥ�����ϡ������Ϥʥ��󥹥ȥ졼�����ǤΤ�Ŭ���Ƥ��ޤ����㤨�С��ǥե���Ȥ�SHMMAX��32�ᥬ�Х��ȤǤ��ˡ� sysctl�ޤ���loader���󥿥ե���������Ѥ����ѹ���Ԥ����Ȥ��Ǥ��ޤ��� �ʲ��Ǥ�sysctl����Ѥ��ƥѥ�᡼�����ѹ����Ƥ��ޤ���

$ sysctl -w kern.ipc.shmall=32768
$ sysctl -w kern.ipc.shmmax=134217728
$ sysctl -w kern.ipc.semmap=256

������������֡��Ȥ��Ƥ��³������ˤϡ�/etc/sysctl.conf���ѹ����ޤ���

�Ĥ�Υ��ޥե������sysctl�Ǥ��ɤ߼��ΤߤȤߤʤ���Ƥ��ޤ�������ư����loader�ץ���ץȤ���Ѥ����ѹ����뤳�Ȥ��Ǥ��ޤ���

(loader) set kern.ipc.semmni=256
(loader) set kern.ipc.semmns=512
(loader) set kern.ipc.semmnu=256

Ʊ�ͤˡ�������������֡��Ȥ��Ƥ��³��������ˤ�/boot/loader.conf����¸���ޤ���

�ޤ�����ͭ�����RAM��˻Ĥ�������åפؤΥڡ��������Ȥ�Ԥ碌�ʤ��褦�ˤ����������⤷��ޤ��� �����sysctl��kern.ipc.shm_use_phys�������Ѥ��Ƽ¸��Ǥ��ޤ���

sysctl��security.jail.sysvipc_allowed��ͭ���ˤ���FreeBSD jail��¹Ԥ��Ƥ����硢�ۤʤ�jail�Ǽ¹Ԥ���postmaster��ۤʤ륪�ڥ졼�ƥ��󥰥����ƥ�桼���Ǽ¹Ԥ��ʤ���Фʤ�ޤ��� ����ϡ����ø��桼�����̤�jail�ζ�ͭ����䥻�ޥե��˴��Ĥ��뤳�Ȥ��ɻߤǤ��뤿�ᡢ�������ƥ������夷�ޤ��� �ޤ�������ˤ��PostgreSQL��IPC���������륳���ɤ�Ŭ�ڤ�ư����뤳�Ȥ��Ǥ��ޤ��� ��FreeBSD 6.0�ʹߤǤϡ�IPC���������ɤ�¾��jail�ˤ�����ץ�������Ŭ�ڤ˸��Ф������ۤʤ�jail��Ʊ��ݡ��Ȥ�postmaster��¹Ԥ����뤳�Ȥ��Ǥ��ޤ��󡣡�

FreeBSD�С������4.0�����Ǥϡ��ʸ�ҤΡ�OpenBSD��Ʊ�ͤ�ư��ޤ���

NetBSD

NetBSD�ʹߤǤϡ��ʲ�����Τ褦��IPC�ѥ�᡼����sysctl���Ѥ���Ĵ�����뤳�Ȥ��Ǥ��ޤ���

$ sysctl -w kern.ipc.shmmax=16777216

����������֡��Ȥ��Ƥ��³�������뤿��ˤ�/etc/sysctl.conf���Խ����Ƥ���������

�ޤ�����ͭ�����RAM��˸��ꤷ�ơ�����åפΤ���Υڡ��������Ȥ��򤱤뤿��ˡ������ͥ�����ꤷ�����ȹͤ��뤫�⤷��ޤ���

5.0������ΥС�������NetBSD�Ǥϡ��ʸ�ҤΡ�OpenBSD�Τ褦��ư��ޤ��� ���������ѥ�᡼����option�ǤϤʤ�options������ɤ��դ������ꤷ�ʤ���Фʤ�ޤ���

OpenBSD

SYSVSHM���ץ�����SYSVSEM���ץ����ϥ����ͥ�Υ���ѥ������ͭ���ˤ���ɬ�פ�����ޤ��ʥǥե���ȤǤ�ͭ���ˤʤäƤ��ޤ��ˡ� ��ͭ����κ��祵������SHMMAXPGS���ץ����ʥڡ������ˤǷ��ꤵ��ޤ��� �ʲ����͡��ʥѥ�᡼����������ˡ����򼨤��ޤ���

option        SYSVSHM
option        SHMMAXPGS=4096
option        SHMSEG=256

option        SYSVSEM
option        SEMMNI=256
option        SEMMNS=512
option        SEMMNU=256
option        SEMMAP=256

�ޤ�����ͭ�����RAM����˥��å�����褦�˥����ͥ�����ꤹ�뤳�Ȥǡ�����åפ˥ڡ��������Ȥ��ʤ��褦�ˤ�Ǥ��ޤ��� sysctl����Ѥ���kern.ipc.shm_use_phys�����ꤹ�뤳�Ȥ��Ǥ��ޤ���

HP-UX

�ǥե���Ȥ�������̾�Υ��󥹥ȡ���ǤϤۤܽ�ʬ�Ǥ��� HP-UX 10�Ǥ�SEMMNS�νвٻ��Υǥե���Ȥ�128�Ǥ�����������絬�Ϥʥǡ����١��������Ȥˤ���᤮�뤫�⤷��ޤ���

IPC�ѥ�᡼���������ƥ�����ޥ͡�������SAM�ˤ���Kernel Configuration->Configurable Parameters�β��ǡ����ꤹ�뤳�Ȥ��Ǥ��ޤ��� ����ä���Create A New Kernel�����򤷤Ƥ���������

Linux

�ǥե���Ȥκ��祻�����ȥ�������32�ᥬ�Х��Ȥǡ����˾����Ϥ�PostgreSQL���󥹥ȥ졼�����Τߤ�Ŭ���Ƥ��ޤ��� �ǥե���Ȥκ�������������2097152�ڡ����Ǥ��� "�絬�ϥڡ���"������̾�ǤϤʤ������ͥ�����������1�ڡ����ϤۤȤ�ɾ��4096�Х��ȤǤ��� (���ڤˤ�getconf PAGE_SIZE����Ѥ��Ƥ���������) ����ˤ��ǥե���Ȥξ�¤�8�����Х��Ȥˤʤ�ޤ��� �����Ƥ��Ͻ�ʬ�Ǥ�������˽�ʬ�Ȥ����櫓�ǤϤ���ޤ���

��ͭ���ꥵ�����������sysctl���󥿥ե���������Ѥ����ѹ���ǽ�Ǥ��� �㤨��16�����Х��Ȥޤǵ����ˤϰʲ��Τ褦�ˤ��ޤ���

$ sysctl -w kernel.shmmax=17179869184
$ sysctl -w kernel.shmall=4194304

���ˤ�����������֡��Ȼ����ݻ��Ǥ���褦��/etc/sysctl.conf����¸���뤳�Ȥ��Ǥ��ޤ��� �������뤳�Ȥ��礤�˴���ޤ���

�Ť�Υǥ����ȥ�ӥ塼�����Ǥ�sysctl�ץ�����ब¸�ߤ��ʤ���ǽ��������ޤ��� ���ξ�硢/proc�ե����륷���ƥ���Ф�������Ʊ�����ѹ���Ԥ����Ȥ��Ǥ��ޤ���

$ echo 17179869184 >/proc/sys/kernel/shmmax
$ echo 4194304 >/proc/sys/kernel/shmall

¾�Υǥե���ȤϤ��ʤ�˭�٤ʥ������Ǥ��Τǡ��̾���ѹ�����ɬ�פϤ���ޤ���

Mac OS X

OS X�ˤ����붦ͭ����ο侩������ˡ�ϡ��ʲ��Τ褦���ѿ�����ʸ����ʤ�/etc/sysctl.conf�Ȥ���̾�ΤΥե������������뤳�ȤǤ���

kern.sysv.shmmax=4194304
kern.sysv.shmmin=1
kern.sysv.shmmni=32
kern.sysv.shmseg=8
kern.sysv.shmall=1024

�����ΥС�������OS X�Ǥ�/etc/sysctl.conf��˶�ͭ����ѥ�᡼��5�Ĥ��٤������ꤷ�ʤ���Фʤ�ʤ��Ȥ����������դ��Ƥ��������� ����ʤ����ͤ�̵�뤵��ޤ���

�Ƕ�Υ�꡼����OS X�ϡ�SHMMAX��4096���ܿ��ʳ������ꤷ�褦�Ȥ����̵�뤷�ޤ��Τǡ����դ��Ƥ���������

���Υץ�åȥե�����Ǥ�SHMALL��4�����Х��ȥڡ���ñ�̤Ǥ���

�Ť�ΥС�������OS X�Ǥϡ���ͭ����ѥ�᡼�����ѹ���ͭ���ˤ��뤿��˥�֡��Ȥ�ɬ�פˤʤ�ޤ��� 10.5����SHMMNI�ʳ����ѹ��ϡ�sysctl���Ѥ��뤳�Ȥˤ�ꡢ���ξ�ǹԤ����Ȥ��Ǥ��ޤ��� ������������ˤ���/etc/sysctl.conf��ͳ��˾���ͤ����ꤹ�뤳�Ȥ������Ǥ��� ��֡��Ȥ�ԤäƤ��ͤ��ݻ�����뤫��Ǥ���

/etc/sysctl.conf��OS X 10.3.9�ʹߤǤΤ߻��Ѥ���ޤ��� �⤷����������10.3.x��꡼������Ѥ��Ƥ���ΤǤ���С�/etc/rc�ե�������Խ������ʲ��Υ��ޥ�ɤ��ͤ��ѹ����ʤ���Фʤ�ޤ���

sysctl -w kern.sysv.shmmax
sysctl -w kern.sysv.shmmin
sysctl -w kern.sysv.shmmni
sysctl -w kern.sysv.shmseg
sysctl -w kern.sysv.shmall

�̾�/etc/rc��OS X�Υ��åץǡ��ȤǾ�񤭤���뤳�Ȥ����դ��Ƥ��������� �Ǥ��Τǡ����åץǡ��Ȥ��٤��Խ���ľ��ɬ�פ������Τȹͤ��ʤ���Фʤ�ޤ���

OS X 10.2�����Ǥϡ������/System/Library/StartupItems/SystemTuning/SystemTuning�ե�������ˤ��뤳���Υ��ޥ�ɤ��Խ����Ƥ���������

SCO OpenServer

�ǥե���Ȥ�����Ǥϡ���������������512�����Х��Ȥζ�ͭ���꤬������Ƥ��ޤ��� ������������ä�����ˤϡ��ޤ���/etc/conf/cf.d�ǥ��쥯�ȥ�˰�ư���ޤ��� SHMMAX�θ����ͤ�ɽ��������ˤϡ��ʲ���¹Ԥ��ޤ���

./configure -y SHMMAX

SHMMAX�˿������ͤ����ꤹ��ˤϰʲ���¹Ԥ��ޤ���

./configure SHMMAX=value

�����ǡ�value����˾���뿷�����͡ʥХ���ñ�̡ˤǤ��� �����ơ��ʲ��Τ褦�˥����ͥ��ƹ��ۤ�����֡��Ȥ��ޤ���

./link_unix

Solaris 2.6����2.9 (Solaris 6����Solaris 9)

��ͭ���ꥻ�����ȤΥǥե���Ȥκ��祵������PostgreSQL�ˤ���᤮������ˤʤäƤ��ޤ��� ɬ�פ������/etc/system���Ѥ��뤳�Ȥ��Ǥ����㤨�аʲ��Τ褦�ˤʤ�ޤ���

set shmsys:shminfo_shmmax=0x2000000
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=256
set shmsys:shminfo_shmseg=256

set semsys:seminfo_semmap=256
set semsys:seminfo_semmni=512
set semsys:seminfo_semmns=512
set semsys:seminfo_semmsl=32

�ѹ���ȿ�Ǥ�����ˤϺƵ�ư����ɬ�פ�����ޤ��� �Ť�ΥС�������Solaris�ˤ����붦ͭ����ξ����http://sunsite.uakom.sk/sunworldonline/swol-09-1997/swol-09-insidesolaris.html�򻲾Ȥ��Ƥ���������

Solaris 2.10 (Solaris 10)
OpenSolaris

Solaris 10��OpenSolaris�Ǥϡ��ǥե���Ȥζ�ͭ����ȥ��ޥե�����������PostgreSQL���ץꥱ�������ǽ�ʬ����ޤ��� Solaris�Υǥե���Ȥ�SHMMAX�ϥ����ƥ��RAM��1/4�ˤʤ�ޤ����� ��ͭ�������������礭�����ꤹ�뤿��ˤ����ͤ����䤷�����ΤǤ���С�postgres�桼���˴ؤ���ץ����������������Ѥ��ʤ���Фʤ�ޤ��� �㤨�аʲ���root���¤Ǽ¹Ԥ��Ƥ���������

projadd -c "PostgreSQL DB User" -K "project.max-shm-memory=(privileged,8GB,deny)" -U postgres -G postgres user.postgres

���Υ��ޥ�ɤ�user.postgres�ץ��������Ȥ��ɲä���postgres�桼���ζ�ͭ����κ��祵������8GB�ޤǾ夲�ޤ��� ���αƶ��ϼ��ˤ��Υ桼�����������󤷤������ޤ���PostgreSQL��Ƶ�ư�������ʺ��ɤ߹��߻��ǤϤ���ޤ���ˤ�ͭ���ˤʤ�ޤ��� ��Ǥ�PostgreSQL��postgres���롼�פ�°����postgres�桼���ˤ��¹Ԥ���Ƥ��뤳�Ȥ�����Ȥ��Ƥ��ޤ��� �����ФκƵ�ư�����פǤ���

¿������³������դ���ǡ����١��������Фˤ����ƿ侩���륫���ͥ�����ˤϤ���¾�˰ʲ�������ޤ���

project.max-shm-ids=(priv,32768,deny)
project.max-sem-ids=(priv,4096,deny)
project.max-msg-ids=(priv,4096,deny)

����ˡ����������PostgreSQL��¹Ԥ��Ƥ����硢������Υ꥽�������Ѿ�¤�夲��ɬ�פ����뤫�⤷��ޤ��� projects��prctl�ˤĤ��Ƥ�Solaris 10 System Administrator's Guide����2�� �ץ��������Ȥȥ������򻲾Ȥ��Ƥ���������

UnixWare

UnixWare 7�Ǥϡ���ͭ���ꥻ�����Ȥκ��祵�����ϥǥե���������512�����Х��Ȥ�������ޤ��� ���ߤ�SHMMAX�ͤ�ɽ�����뤿��ˤϲ�����¹Ԥ��Ƥ���������

/etc/conf/bin/idtune -g SHMMAX

����ϸ����͡��ǥե�����͡��Ǿ��͡�����Ӻ����ͤ򡢥Х���ñ�̤�ɽ�����ޤ��� SHMMAX�ο������ͤ����ꤹ�뤿��ˤϡ��ʲ���¹Ԥ��ޤ���

/etc/conf/bin/idtune SHMMAX value

������value �ϡ���˾���뿷�����͡ʥХ��ȡˤǤ��� SHMMAX�����꤬����ä��饫���ͥ��ƹ��ۤ�����֡��Ȥ��ޤ���

/etc/conf/bin/idbuild -B

表 17-2. PostgreSQL�ζ�ͭ���������

����ˡɬ�פʶ�ͭ����Τ����褽�ΥХ��ȿ���8.3������
��³(1800 + 270 * max_locks_per_transaction) * max_connections
��ư�Х��塼����(1800 + 270 * max_locks_per_transaction) * autovacuum_max_workers
�ץ�ڥ��ɥȥ�󥶥������(770 + 270 * max_locks_per_transaction) * max_prepared_transactions
��ͭ�ǥ������Хåե�(block_size + 208) * shared_buffers
WAL�Хåե�(wal_block_size + 8) * wal_buffers
�����ɬ�פʶ�������770 kB

17.4.2. �꥽����������

Unix�饤���ʥ��ڥ졼�ƥ��󥰥����ƥ�Ǥ�PostgreSQL�����Ф����ȴط������ǽ���Τ����͡��ʼ���Υ꥽�������¤�����ޤ��� �ä˽��פʤΤϡ��桼�����ȤΥץ������������¡��ץ��������ȤΥ����ץ�ե�����ο����ץ��������Ȥ����Ѳ�ǽ�ʥ�����̤Ǥ��� �����Τ��줾�줬"�ϡ���"��"���ե�"��2�Ĥ����¤���äƤ��ޤ��� ���ե����¤��ºݤ�ͭ�������¤Ǥ������桼���ˤ�äƥϡ������¤ޤ��Ѥ��뤳�Ȥ���ǽ�Ǥ��� �ϡ������¤�root�桼���ˤ�äƤΤ��Ѥ��뤳�Ȥ��Ǥ��ޤ��� setrlimit�����ƥॳ���뤬�����Υѥ�᡼���������Ԥ��ޤ��� ��������Ȥ߹��ߥ��ޥ��ulimit��Bourne ������ˤ⤷����limit��csh�ˤϡ����ޥ�ɥ饤�󤫤�꥽�������¤����椹�뤿��˻Ȥ��ޤ��� BSD���������ƥ��Ǥ�/etc/login.conf�ե����뤬����������������ꤵ����͡��ʥ꥽�������¤����椷�ޤ��� �ܺ٤ϥ��ڥ졼�ƥ��󥰥����ƥ��ʸ��򻲾Ȥ��Ƥ��������� ��Ϣ����ѥ�᡼����maxproc��openfiles��datasize�Ǥ��� �ʲ�����򼨤��ޤ���

default:\
...
        :datasize-cur=256M:\
        :maxproc-cur=256:\
        :openfiles-cur=256:\
...

��-cur�ϥ��ե����¤Ǥ��� �ϡ������¤����ꤹ�뤿��ˤ�-max���դ��Ƥ�����������

�����ͥ�Ϥ����Ĥ��Υ꥽�������Ф��ơ������ƥ����Τ����¤���Ĥ��Ȥ��Ǥ��ޤ���

PostgreSQL�����Ф���³���Ȥ�1�ĤΥץ�������Ȥ��Τǡ����ʤ��Ȥ���Ĥ��줿��³�ο������Υץ������˻Ĥ�Υ����ƥ��ɬ�פ�ʬ���ɲä�����Τ�ɬ�פˤʤ�ޤ��� �̾�Ϥ��������ǤϤ���ޤ��󤬡�1�ĤΥޥ����Ǥ����Ĥ��Υ����Ф�ư���Ƥ�����ϸ����������ˤʤ뤫�⤷��ޤ���

�����ץ�ե���������¤νвٻ��Υǥե���Ȥϡ����Ф�����¿���Υ桼���ϥޥ����ǥ����ƥ�꥽�������������Ѥ򤷤ʤ��Ȥ������Ω�ä�"�Ҳ�Ū��ͧ��Ū��"�ͤ����ꤷ�Ƥ��ޤ��ޤ��� �⤷1�ĤΥޥ�����ʣ���Υ����Ф�ư������Ϥ��줬ɬ�פǤ��礦�������ѥ����ФǤϤ������¤�夲�������⤷��ޤ���

ȿ�Фˡ��ġ��Υץ�������¿���Υե�����򥪡��ץ󤹤뤳�Ȥ���Ĥ��륷���ƥ�⤢��ޤ��� ���Τ褦�ʥץ����������İʾ夢��С������ƥ����Τ����¤ϴ�ñ��Ķ���Ƥ��ޤ��ޤ��� ����ȯ�����Τ��������ƥ����Τ����¤��ѹ���˾�ޤʤ����ϡ�PostgreSQL��max_files_per_process����ѥ�᡼�������ꤷ�������ץ�ե�����ξ�������¤��뤳�Ȥ��Ǥ��ޤ���

17.4.3. Linux�Υ��ꥪ���С����ߥå�

Linux 2.4�ʹߤǤϡ��ǥե���Ȥβ��ۥ����ư���PostgreSQL�ˤϺ�Ŭ�ǤϤ���ޤ��� �����ͥ뤬���ꥪ���С����ߥåȤ����������ˡ�Τ��ᡢ�����ͥ�ϡ�¾�Υץ������Υ����׵᤬�����ƥ�β��ۥ����ϳ餵������硢PostgreSQL�ʥޥ����������Хץ������ˤ�λ�������ǽ��������ޤ���

���줬ȯ��������硢�ʲ��Τ褦�ʥ����ͥ��å�����������ޤ� �ʤ���������å������򸡺�������ˤĤ��Ƥϥ����ƥ�ʸ�������򻲾Ȥ��Ƥ��������ˡ�

Out of Memory: Killed process 12345 (postgres).

����ϡ�postgres�ץ�������������­�Τ���˽�λ���Ƥ��ޤä����Ȥ򼨤��ޤ��� ��ư��Υǡ����١�����³�������ư��ޤ�������������³�ϼ����դ����ޤ��� ���줹��ˤϡ�PostgreSQL��Ƶ�ư���ʤ���Фʤ�ޤ���

����������ɻߤ���1�Ĥ���ˡ�Ȥ��ơ�PostgreSQL��¾�Υץ����������Υޥ���Υ����ϳ餵���ʤ����Ȥ��μ¤ʥޥ���ǵ�ư����Ȥ�����Τ�����ޤ��� ʪ������ȥ���å��ΰ褬����Ԥ����줿���Τߤ˥�����­��OOM�˥��顼��ȯ�����뤿�ᡢ���꤬��­�����硢���ڥ졼�ƥ��󥰥����ƥ�Υ���å��ΰ�����䤹���Ȥ����������ˤ����ޤ���

Linux 2.6�ʹߤǤϡ������"�����С����ߥå�"�����ʤ��褦�˥����ͥ��ư����ѹ����뤳�Ȥ��Ǥ��ޤ��� ��������ϴ�����OOM���顼��ȯ�����ɤ����ȤϤǤ��ޤ��󤬡�����ȯ�����٤򤫤ʤ�ڸ����ޤ��Τǡ������ƥ�ư��η�ϴ��������ޤ��� ����ϡ��ʲ��Τ褦��sysctl����Ѥ��Ƹ�̩�ʥ����С����ߥåȥ⡼�ɤ����򤹤뤳�ȡ��⤷���ϡ�/etc/sysctl.conf��Ʊ���ι��ܤ򵭽Ҥ��뤳�ȤǼ»ܤ���ޤ���

sysctl -w vm.overcommit_memory=2

�ޤ�����Ϣ����vm.overcommit_ratio������ѹ����������ɤ��Ǥ��礦�� �ܺ٤�Documentation/vm/overcommit-accounting�����ͥ�ʸ��򻲾Ȥ��Ƥ���������

vm.overcommit_memory���ѹ��ȴط��ʤ����ѤǤ��롢����¾����ˡ��postmaster�ץ����������Υץ�������ͭ��oom_adj�ͤ�-17�����ꤹ�뤳�ȤǤ��� ����ˤ��OOM���顼���оݤȤʤ�ʤ����Ȥ��ݾڤ���ޤ��� ���Τ���κǤ��ñ����ˡ�ϰʲ���postmaster�ε�ư������ץ����postmaster��¹Ԥ���ľ���˼¹Ԥ��뤳�ȤǤ���

echo -17 > /proc/self/oom_adj

���κ�Ȥ�root�Ǽ¹Ԥ��ʤ���Фʤ�ʤ����Ȥ����դ��Ʋ������� ����ʤ��ȸ��̤�����ޤ��� ���Τ���root����ͭ���뵯ư������ץȤ������Ԥ�����ˤϺǤ��ñ�ʾ��Ǥ��� ����������硢PostgreSQL�ι��ۻ��� -DLINUX_OOM_ADJ=0��CPPFLAGS���ɲä������ȹͤ���Ǥ��礦�� ����ˤ��postmaster�λҥץ��������̾�Υ����Ȥ���oom_adj����äƼ¹Ԥ����褦�ˤʤꡢɬ�פ˱�����OOM���顼���оݤȤʤꤨ�ޤ���

注意: Linux 2.4�����ͥ�Υ٥������ˤϡ�2.6�Υ����С����ߥå�sysctl�Ǥ���Ĥ�Τ����뤳�Ȥ���𤵤�Ƥ��ޤ��� ���������ط����륳���ɤ�����ʤ�2.4�����ͥ��vm.overcommit_memory��2�����ꤹ�뤳�ȤϤ������򰭲������ޤ��� 2.4�Υ��󥹥ȥ졼�����ǤϤ�������ˡ��ºݤΥ����ͥ륽���������ɤ�Ĵ������������ǥ��ݡ��Ȥ��Ƥ��뤫�ɤ����򸡾ڤ��뤳�Ȥ򤪴��ᤷ�ޤ���mm/mmap.c�ե��������vm_enough_memory�ؿ��򻲾Ȥ��Ƥ��������ˡ� overcommit-accountingʸ��ե������¸�ߤϡ����ε�ǽ��¸�ߤ��뤫�ɤ�������������ΤǤ�����ޤ����� ���路�����ϡ�������Υ����ͥ�٥���Υ����ͥ�����Ȥ����̤��Ƥ���������