5ʬ�ǤǤ��롢MySQL�Υ���ط��Υ��塼�˥󥰡�
MySQL�Υ��塼�˥󥰤ˤ��������˽��פȤʤ����(�Хåե�)��Ϣ�Υѥ�᡼���ˤĤ��ơ�
- ���塼�˥󥰤Υݥ����
- DSAS�ΤȤ���DB������(�¥���4GB)�μºݤ�������
��ޤȤ�Ƥߤޤ���
�ޤ���ɬ�ץ�������̤η׻���³��ͤ�ۤ��Ƥʤ��������å����Ƥ���륹����ץȤ�Ҳ𤷤ޤ���
���󡢻��ͤˤ��ƤߤƤ���������
�ޤ��ǽ����������
�Хåե��ˤ�2�ĤΥ����פ�����ޤ���
- �������Х�Хåե�
- ����åɥХåե�
�������Х�Хåե���mysqld���ΤǤ��ΥХåե���1�Ĥ������ݤ�����Τǡ� ������Ф��� ����åɥХåե��ϥ���å�(���ͥ������)���Ȥ˳��ݤ�����ΤǤ���
���塼�˥󥰤κݤˤϥ������Х�/����åɤΰ㤤��ռ�����褦�ˤ��ޤ��礦�� �ʤ��ʤ顢����åɥХåե���¿���Υ���������Ƥ�ȡ����ͥ�������������Ȥ���˥��äȤ����֤˥�����Â�ˤʤäƤ��ޤ�����Ǥ���
innodb_buffer_pool_size
- ����
- InnoDB�Υǡ����䥤��ǥå����ò¥¥ï¿½Ã¥ï¿½ï¿½å¤¹ï¿½ë¤¿ï¿½ï¿½Î¥ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Î°ï¿½Ç¤ï¿½ï¿½ï¿½
- �Хåե�����
- ��������
- DSAS��
- 512MB
�������Х�Хåե��ʤΤǡ��ɤ���ȳ�����ƤƤ���������
MySQL AB�Υɥ�����Ȥˤϡ���ܥ����80%�Ȥ�񤫤�Ƥ��ޤ���
innodb_additional_mem_pool_size
- ����
- InnoDB�������ǡ����ʤɤ��ݻ����뤿����ΰ�Ǥ���
- �Хåե�����
- ��������
- DSAS��
- 20MB
����ۤ����̤˳�����Ƥ�ɬ�פϤ���ޤ���Â��ʤ��ʤä��饨�顼�����ˤ��λݡ��ٹ𤬽Фޤ��Τǡ������������䤻�Ф����ΤǤϤʤ����Ȼפ��ޤ���
innodb_log_buffer_size
- ����
- InnoDB�ι���������Ͽ����������ΰ�Ǥ���
- �Хåե�����
- ��������
- DSAS��
- 16MB
�����Ƥ���8MB��¿���Ƥ�64MB�ǽ�ʬ�ǡ�����ޤ�¿������ɬ�פϤ���ޤ��� �ʤ��ʤ顢�Хåե��ϥȥ�󥶥������COMMIT����뤴�ȡ��ޤ������åǥ������˥ե�å��夵���Τǡ��ۤ��Υѥ�᡼������������ۤ��������Ǥ���
innodb_log_file_size
- ����
- InnoDB�ι���������Ͽ����ǥ�������Υե�����Ǥ���
����ǤϤʤ��ΤǤ������塼�˥󥰤ξ�ǽ��פʤΤDz��⤷�ޤ��� - �Хåե�����
- ---
- DSAS��
- 128MB
�ç¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ñ¥Õ¥ï¿½ï¿½ï¿½ï¿½Þ¥ó¥¹¤ï¿½ï¿½ï¿½ï¿½å¤·ï¿½Þ¤ï¿½ï¿½ï¿½
�ʤ��ʤ顢innodb_log_file�����äѤ��ˤʤ�ȡ�������innodb_buffer_pool����ι������줿��ʬ�Υǡ����ò¡¢¥Ç¥ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½InnoDB�Υǡ����ե�����˽ñ¤½Ð¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ß¤Ë¤Ê¤Ã¤Æ¤ï¿½ï¿½ë¤«ï¿½ï¿½Ç¤ï¿½ï¿½ï¿½
�Ǥ��Τǡ�innodb_buffer_pool_size���ç¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½é¡¢innodb_log_file_size�⤢�碌��Ĵ�����ʤ��ȥѥե����ޥ󥹤����夷�ޤ���
innodb_log_file_size���ͤϡ�1MB�ʾ�ǡ�32bit�ޥ���ξ���4GB�ʲ��ˤ��ʤ���Фʤ�ʤ���MySQL AB�Υɥ�����ȤˤϽ񤤤Ƥ���ޤ���
�ޤ����⤦�ҤȤľ�¤�����ޤ���innodb_log_file��innodb_log_files_in_group�ο�(�ǥե���Ȥ�2)�����Ĥ�����ΤǤ�����innodb_log_file_size��innodb_log_files_in_group��innodb_buffer_pool_size��ۤ��Ƥ⤤���ޤ���
�ޤȤ��Ȥ��Τ褦�ˤʤ�ޤ���
1MB < innodb_log_file_size < MAX_innodb_log_file_size < 4GB MAX_innodb_log_file_size = innodb_buffer_pool_size * 1/innodb_log_files_in_group
�⤦�ҤȤ����դ��ʤ���Фʤ�ʤ��Τϡ�innodb_log_file_size���ç¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ð¤ï¿½ï¿½ï¿½Û¤É¡ï¿½InnoDB�Υ���å���ꥫ�Х�λ��֤�Ĺ��������褦�ˤʤ�Ȥ������Ǥ���
sort_buffer_size
- ����
- ORDER BY��GROUP BY�ΤȤ��˻Ȥ���������ΰ�Ǥ���
- �Хåե�����
- ����å�
- DSAS��
- 2MB
����åɥХåե��ʤΤǡ����ߤ��ç¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½È¥ï¿½ï¿½ê¤¬Â��ʤ��ʤ�Τ����դǤ���
DSAS�Ǥ�2MB��4MB�ˤ��Ƥ��ޤ���
read_rnd_buffer_size
- ����
- �����ȸ�˥쥳���ɤ��ɤ�Ȥ��˻Ȥ���������ΰ�Ǥ���
�ǥ�����I/O������Τ�ORDER BY����ǽ���夬���ԤǤ��ޤ��� - �Хåե�����
- ����å�
- DSAS��
- 1MB
����⥹��åɥХåե��ʤΤǡ�������Ʋ᤮�ˤ����դ�ɬ�פǤ���
DSAS�Ǥ�512KB��2MB�ˤ��Ƥ��ޤ���
join_buffer_size
- ����
- ����ǥå������Ѥ��ʤ��ơ��֥���ΤȤ��˻Ȥ���������ΰ�Ǥ���
- �Хåե�����
- ����å�
- DSAS��
- 256KB
����åɥХåե��Ǥ���
���⤽�⥤��ǥå������Ȥ��ʤ��褦�ʥơ��֥���ϥѥե����ޥ󥹸���δ������餹����ò¤±¤ï¿½Ù¤ï¿½ï¿½Ê¤Î¤Ç¡ï¿½ï¿½ï¿½ï¿½Î¥Ñ¥ï¿½á¡¼ï¿½ï¿½ï¿½Ï¤ï¿½ï¿½ï¿½Û¤ï¿½ï¿½ç¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½É¬ï¿½×¤Ï¤Ê¤ï¿½ï¿½Ç¤ï¿½ï¿½ç¤¦ï¿½ï¿½
read_buffer_size
- ����
- ����ǥå������Ѥ��ʤ��ơ��֥륹�����ΤȤ��˻Ȥ���������ΰ�Ǥ���
- �Хåե�����
- ����å�
- DSAS��
- 1MB
����⡢�ѥե����ޥ󥹤�ͤ���ʤ�С�����ǥå�����Ȥ��褦�ʥ������ȯ�Ԥ���٤��ʤΤǡ�����ۤ�¿������ɬ�פϤʤ��Ǥ��礦��
key_buffer_size
- ����
- MyISAM�Υ���ǥå����ò¥¥ï¿½Ã¥ï¿½ï¿½å¤¹ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Î°ï¿½Ç¤ï¿½ï¿½ï¿½
- �Хåե�����
- ��������
- DSAS��
- 256MB
�������Х�Хåե��Ǥ���
¿��������Ƥ������ѥե����ޥ󥹤����夷�ޤ����������Х�Хåե��ʤΤǤɤ���ȳ�����Ƥ��ޤ���
�⤷��MyISAM��(���ޤ�)�ȤäƤʤ��Τʤ�С����������Ƥۤ��Υѥ�᡼���˲󤹤Τ⥢��Ǥ���
���ʤߤˡ���������å���Υҥå�Ψ�ϡ�SHOW STATUS���ͤ�Ȥäơ��ʲ��μ��ǻ��ФǤ��ޤ���
��������å���Υҥå�Ψ = 100 - ( key_reads / key_read_requests �� 100 )
myisam_sort_buffer_size
- ����
- MyISAM�ǰʲ��λ��Υ���ǥå����Υ����Ȥ˻Ȥ���������ΰ�Ǥ���
- REPAIR TABLE
- CREATE INDEX
- ALTER INDEX
- �Хåե�����
- ����å�
- DSAS��
- 1MB
�̾�Υ�����(DML)�ǤϻȤ��ʤ��褦�ʤΤǡ�����ۤ�¿������ɬ�פϤʤ��Ǥ��礦��
mymemcheck - �����Ϣ�Υ����å��ġ���
�Ǹ��mymemcheck�Ȥ����������Υġ����Ҳ𤷤ޤ���
����������ɤϤ����餫�顣
- mymemcheck v1.01 (gzip)
mymemcheck�ϡ�my.cnf�⤷����SHOW VARIABLES�η�̤򸵤ˡ��ʲ���3�ĤΥ����å���Ԥ��ޤ���
- �����ɬ�פ�ʪ��������ç¤ï¿½ï¿½
- IA-32��Linux�ǤΥҡ��ץ�����������
- innodb_log_file_size�κ��祵����
�¹Է����Ϥ��Τ褦�ˤʤ�ޤ���
$ ./mymemcheck my.cnf [ minimal memory ] ref * ��High Performance MySQL��, Solving Memory Bottlenecks, p125 global_buffers key_buffer_size 268435456 256.000 [M] innodb_buffer_pool_size 536870912 512.000 [M] innodb_log_buffer_size 16777216 16.000 [M] innodb_additional_mem_pool_size 20971520 20.000 [M] net_buffer_length 16384 16.000 [K] thread_buffers sort_buffer_size 2097152 2.000 [M] myisam_sort_buffer_size 1048576 1024.000 [K] read_buffer_size 1048576 1024.000 [K] join_buffer_size 262144 256.000 [K] read_rnd_buffer_size 1048576 1024.000 [K] max_connections 250 min_memory_needed = global_buffers + (thread_buffers * max_connections) = 843071488 + 5505024 * 250 = 2219327488 (2.067 [G]) [ 32bit Linux x86 limitation ] ref * http://dev.mysql.com/doc/mysql/en/innodb-configuration.html * need to include read_rnd_buffer. * no need myisam_sort_buffer because allocate when repair, check alter. 2G > process heap process heap = innodb_buffer_pool + key_buffer + max_connections * (sort_buffer + read_buffer + read_rnd_buffer) + max_connections * stack_size = 536870912 + 268435456 + 250 * (2097152 + 1048576 + 1048576) + 250 * 262144 = 1919418368 (1.788 [G]) 2G > 1.788 [G] ... safe [ maximum size of innodb_log_file_size ] ref * http://dev.mysql.com/doc/mysql/en/innodb-start.html 1MB < innodb_log_file_size < MAX_innodb_log_file_size < 4GB MAX_innodb_log_file_size = innodb_buffer_pool_size * 1/innodb_log_files_in_group = 536870912 * 1/2 = 268435456 (256.000 [M]) innodb_log_file_size < MAX_innodb_log_file_size 134217728 < 268435456 128.000 [M] < 256.000 [M] ... safe
�������MySQL AB�Υɥ�����Ȥʤɤ˽񤫤�Ƥ������»��ࡢ���ΤޤޤǤ���
�ѥ�᡼��Ʊ�Τ��ط������äƤ��뤳�Ȥ�¿������Τǡ��ѥ�᡼�����ѹ�����ݤϡ����Τ褦�ʥ����å��ġ���dz�ǧ����Τ������ΤǤϤʤ����Ȼפ��ޤ���