PostgreSQL 9.1.5ʸ�� | ||||
---|---|---|---|---|
前のページ | 巻戻し | 第 17章�����Фν����ȱ��� | 早送り | 次のページ |
�絬�Ϥ�PostgreSQL���ȥ졼�����Ǥϡ������˳Ƽ索�ڥ졼�ƥ������ƥ�Υ�������¤�Ķ���Ƥ��ޤ����Ȥ�����ޤ��� �ʥ����ƥ�ˤ�äƤϡ��ºݤ�"�絬��"�ʥ��ȥ졼�����Ǥʤ��Ƥ⡢�вٻ��Υǥե���ȤǤ������Τ⤢��ޤ����� ���μ�����꤬ȯ�������顢�������ɤ�Ǥ���������
��ͭ����ȥ��ޥե��ϤҤȤޤȤ��"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�ˤϱƶ���Ϳ���ޤ���
���ʤ��Ȥ�С������5.1�Ǥϡ����٤ƤΥ��꤬��ͭ����Ȥ��ƻ��ѤǤ���褦�����ꤵ��Ƥ���褦�ˤߤ��ޤ��Τǡ�SHMMAX�ʤɤΥѥ������Ф������̤������ɬ�פ���ޤ��� �����DB/2�ʤɤ�¾�Υǡ����١����Ǥ���Ѥ���롢����Ū��������ˡ�Ǥ���
��������/etc/security/limits������Ū��ulimit������ѹ����ʤ���Фʤ�ʤ����⤷��ޤ��� �ǥե���ȤΥե����륵������fsize�ˤȥե��������nofiles���ѤΥϡ��ɥ�ߥåȤ����뤫�⤷��ʤ�����Ǥ���
��ͭ����. �ǥե���ȤǤϡ�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"
�ǥե���Ȥ�����ϡ������Ϥʥ��ȥ졼�����ǤΤ�Ŭ���Ƥ��ޤ����㤨�С��ǥե���Ȥ�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�ʹߤǤϡ��ʲ�����Τ褦��IPC�ѥ�����sysctl���Ѥ���Ĵ�����뤳�Ȥ��Ǥ��ޤ���
$ sysctl -w kern.ipc.shmmax=16777216
����������֡��Ȥ��Ƥ��³�������뤿��ˤ�/etc/sysctl.conf���Խ����Ƥ���������
�ޤ�����ͭ�����RAM��˸��ꤷ�ơ�����åפΤ���Υڡ��������Ȥ��뤿��ˡ������ͥ�����ꤷ�����ȹͤ��뤫�⤷��ޤ���
5.0������ΥС�������NetBSD�Ǥϡ��ʸ�ҤΡ�OpenBSD�Τ褦��ư��ޤ��� ���������ѥ�����option�ǤϤʤ�options������ɤ��դ������ꤷ�ʤ���Фʤ�ޤ���
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 10�Ǥ�SEMMNS�νвٻ��Υǥե���Ȥ�128�Ǥ�����������絬�Ϥʥǡ����١��������Ȥˤ����뤫�⤷��ޤ���
IPC�ѥ����������ƥ�����ޥ͡�������SAM�ˤ���Kernel Configuration->Configurable Parameters�β��ǡ����ꤹ�뤳�Ȥ��Ǥ��ޤ��� ����ä���Create A New Kernel�����Ƥ���������
�ǥե���Ȥκ��祻�����ȥ�������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
¾�Υǥե���ȤϤ��ʤ�˭�٤ʥ������Ǥ��Τǡ��̾���ѹ�����ɬ�פϤ���ޤ���
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�ե�������ˤ��뤳���Υ��ޥ�ɤ��Խ����Ƥ���������
�ǥե���Ȥ�����Ǥϡ���������������512�����Х��Ȥζ�ͭ���꤬������Ƥ��ޤ��� ������������ä�����ˤϡ��ޤ���/etc/conf/cf.d�ǥ��쥯�ȥ�˰�ư���ޤ��� SHMMAX�θ����ͤ�ɽ��������ˤϡ��ʲ���¹Ԥ��ޤ���
./configure -y SHMMAX
SHMMAX�˿������ͤ����ꤹ��ˤϰʲ���¹Ԥ��ޤ���
./configure SHMMAX=value
�����ǡ�value����˾���뿷�����͡ʥХ���ñ�̡ˤǤ��� �����ơ��ʲ��Τ褦�˥����ͥ��ƹ��ۤ�����֡��Ȥ��ޤ���
./link_unix
��ͭ���ꥻ�����ȤΥǥե���Ȥκ��祵������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 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 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 |
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���դ��Ƥ�����������
�����ͥ�Ϥ����Ĥ��Υ�������Ф��ơ������ƥ����Τ����¤���Ĥ��Ȥ��Ǥ��ޤ���
Linux�Ǥϡ�/proc/sys/fs/file-max���������ͥ뤬���ݡ��Ȥ��륪���ץ�ե�������κ������ꤷ�ޤ��� ���ο����Ѥ��뤿��ˤϡ����Υե�������̤ο�����फ�����뤤��/etc/sysctl.conf�����������ɲä��ޤ��� �ץ��������ȤΥե�����κ������¤ϥ����ͥ뤬����ѥ��뤵�줿���˸��ꤵ��ޤ��� �ܤ�������ˤĤ��Ƥ�/usr/src/linux/Documentation/proc.txt�Ȥ��Ƥ���������
PostgreSQL�����Ф���³���Ȥ�1�ĤΥץ�������Ȥ��Τǡ����ʤ��Ȥ���Ĥ��줿��³�ο������Υץ������˻Ĥ�Υ����ƥ��ɬ�פ�ʬ���ɲä�����Τ�ɬ�פˤʤ�ޤ��� �̾�Ϥ��������ǤϤ���ޤ���1�ĤΥޥ����Ǥ����Ĥ��Υ����Ф�ư���Ƥ�����ϸ����������ˤʤ뤫�⤷��ޤ���
�����ץ�ե���������¤νвٻ��Υǥե���Ȥϡ����Ф�����¿���Υ桼���ϥޥ����ǥ����ƥ��������������Ѥʤ��Ȥ������Ω�ä�"�Ҳ�Ū��ͧ��Ū��"�ͤ����ꤷ�Ƥ��ޤ��ޤ��� �⤷1�ĤΥޥ�����ʣ���Υ����Ф�ư������Ϥ��줬ɬ�פǤ��礦�������ѥ����ФǤϤ������¤�夲�������⤷��ޤ���
ȿ�Фˡ��ġ��Υץ�������¿���Υե�������ץ뤳�Ȥ���Ĥ��륷���ƥ�⤢��ޤ��� ���Τ褦�ʥץ����������İʾ夢��С������ƥ����Τ����¤ϴ�ñ��Ķ���Ƥ��ޤ��ޤ��� ����ȯ�����Τ��������ƥ����Τ����¤��ѹ���˾�ޤʤ����ϡ�PostgreSQL��max_files_per_process����ѥ��������ꤷ�������ץ�ե�����ξ�������¤��뤳�Ȥ��Ǥ��ޤ���
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ʸ��ե������¸�ߤϡ����ε�ǽ��¸�ߤ��뤫�ɤ�������������ΤǤ�����ޤ����� ���路�����ϡ�������Υ����ͥ�٥���Υ����ͥ�����Ȥ����̤��Ƥ���������