Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit5441a64

Browse files
committed
The attached patch changes units of the some default values in
postgresql.conf.- shared_buffers = 32000kB => 32MB- temp_buffers = 8000kB => 8MB- wal_buffers = 8 => 64kBThe code of initdb was a bit modified to write MB-unit values.Values greater than 8000kB are rounded out to MB.GUC_UNIT_XBLOCKS is added for wal_buffers. It is like GUC_UNIT_BLOCKS,but uses XLOG_BLCKSZ instead of BLCKSZ.Also, I cleaned up the test of GUC_UNIT_* flags in preparation toadd more unit flags in less bits.ITAGAKI Takahiro
1 parente15ce61 commit5441a64

File tree

4 files changed

+99
-46
lines changed

4 files changed

+99
-46
lines changed

‎src/backend/utils/misc/guc.c

Lines changed: 73 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
* Written by Peter Eisentraut <peter_e@gmx.net>.
1111
*
1212
* IDENTIFICATION
13-
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.352 2006/09/22 21:39:57 tgl Exp $
13+
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.353 2006/10/03 21:11:54 momjian Exp $
1414
*
1515
*--------------------------------------------------------------------
1616
*/
@@ -1149,7 +1149,7 @@ static struct config_int ConfigureNamesInt[] =
11491149
GUC_UNIT_BLOCKS
11501150
},
11511151
&NBuffers,
1152-
1000,16,INT_MAX /2,NULL,NULL
1152+
1024,16,INT_MAX /2,NULL,NULL
11531153
},
11541154

11551155
{
@@ -1159,7 +1159,7 @@ static struct config_int ConfigureNamesInt[] =
11591159
GUC_UNIT_BLOCKS
11601160
},
11611161
&num_temp_buffers,
1162-
1000,100,INT_MAX /2,NULL,show_num_temp_buffers
1162+
1024,100,INT_MAX /2,NULL,show_num_temp_buffers
11631163
},
11641164

11651165
{
@@ -1414,7 +1414,8 @@ static struct config_int ConfigureNamesInt[] =
14141414
{
14151415
{"wal_buffers",PGC_POSTMASTER,WAL_SETTINGS,
14161416
gettext_noop("Sets the number of disk-page buffers in shared memory for WAL."),
1417-
NULL
1417+
NULL,
1418+
GUC_UNIT_XBLOCKS
14181419
},
14191420
&XLOGbuffers,
14201421
8,4,INT_MAX,NULL,NULL
@@ -3606,8 +3607,18 @@ parse_int(const char *value, int *result, int flags)
36063607
endptr+=2;
36073608
}
36083609

3609-
if (used&& (flags&GUC_UNIT_BLOCKS))
3610-
val /= (BLCKSZ/1024);
3610+
if (used)
3611+
{
3612+
switch (flags&GUC_UNIT_MEMORY)
3613+
{
3614+
caseGUC_UNIT_BLOCKS:
3615+
val /= (BLCKSZ/1024);
3616+
break;
3617+
caseGUC_UNIT_XBLOCKS:
3618+
val /= (XLOG_BLCKSZ/1024);
3619+
break;
3620+
}
3621+
}
36113622
}
36123623

36133624
if ((flags&GUC_UNIT_TIME)&&endptr!=value)
@@ -3647,10 +3658,18 @@ parse_int(const char *value, int *result, int flags)
36473658
endptr+=1;
36483659
}
36493660

3650-
if (used&& (flags&GUC_UNIT_S))
3651-
val /=MS_PER_S;
3652-
elseif (used&& (flags&GUC_UNIT_MIN))
3653-
val /=MS_PER_MIN;
3661+
if (used)
3662+
{
3663+
switch (flags&GUC_UNIT_TIME)
3664+
{
3665+
caseGUC_UNIT_S:
3666+
val /=MS_PER_S;
3667+
break;
3668+
caseGUC_UNIT_MIN:
3669+
val /=MS_PER_MIN;
3670+
break;
3671+
}
3672+
}
36543673
}
36553674

36563675
if (endptr==value||*endptr!='\0'||errno==ERANGE
@@ -4961,23 +4980,34 @@ GetConfigOptionByNum(int varnum, const char **values, bool *noshow)
49614980
/* unit */
49624981
if (conf->vartype==PGC_INT)
49634982
{
4964-
if (conf->flags&GUC_UNIT_KB)
4965-
values[2]="kB";
4966-
elseif (conf->flags&GUC_UNIT_BLOCKS)
4967-
{
4968-
staticcharbuf[8];
4983+
staticcharbuf[8];
49694984

4970-
snprintf(buf,sizeof(buf),"%dkB",BLCKSZ/1024);
4971-
values[2]=buf;
4985+
switch (conf->flags& (GUC_UNIT_MEMORY |GUC_UNIT_TIME))
4986+
{
4987+
caseGUC_UNIT_KB:
4988+
values[2]="kB";
4989+
break;
4990+
caseGUC_UNIT_BLOCKS:
4991+
snprintf(buf,sizeof(buf),"%dkB",BLCKSZ/1024);
4992+
values[2]=buf;
4993+
break;
4994+
caseGUC_UNIT_XBLOCKS:
4995+
snprintf(buf,sizeof(buf),"%dkB",XLOG_BLCKSZ/1024);
4996+
values[2]=buf;
4997+
break;
4998+
caseGUC_UNIT_MS:
4999+
values[2]="ms";
5000+
break;
5001+
caseGUC_UNIT_S:
5002+
values[2]="s";
5003+
break;
5004+
caseGUC_UNIT_MIN:
5005+
values[2]="min";
5006+
break;
5007+
default:
5008+
values[2]="";
5009+
break;
49725010
}
4973-
elseif (conf->flags&GUC_UNIT_MS)
4974-
values[2]="ms";
4975-
elseif (conf->flags&GUC_UNIT_S)
4976-
values[2]="s";
4977-
elseif (conf->flags&GUC_UNIT_MIN)
4978-
values[2]="min";
4979-
else
4980-
values[2]="";
49815011
}
49825012
else
49835013
values[2]=NULL;
@@ -5246,8 +5276,15 @@ _ShowOption(struct config_generic * record, bool use_units)
52465276

52475277
if (use_units&&result>0&& (record->flags&GUC_UNIT_MEMORY))
52485278
{
5249-
if (record->flags&GUC_UNIT_BLOCKS)
5250-
result *=BLCKSZ/1024;
5279+
switch (record->flags&GUC_UNIT_MEMORY)
5280+
{
5281+
caseGUC_UNIT_BLOCKS:
5282+
result *=BLCKSZ/1024;
5283+
break;
5284+
caseGUC_UNIT_XBLOCKS:
5285+
result *=XLOG_BLCKSZ/1024;
5286+
break;
5287+
}
52515288

52525289
if (result %KB_PER_GB==0)
52535290
{
@@ -5266,10 +5303,15 @@ _ShowOption(struct config_generic * record, bool use_units)
52665303
}
52675304
elseif (use_units&&result>0&& (record->flags&GUC_UNIT_TIME))
52685305
{
5269-
if (record->flags&GUC_UNIT_S)
5270-
result=result*MS_PER_S;
5271-
elseif (record->flags&GUC_UNIT_MIN)
5272-
result=result*MS_PER_MIN;
5306+
switch (record->flags&GUC_UNIT_TIME)
5307+
{
5308+
caseGUC_UNIT_S:
5309+
result *=MS_PER_S;
5310+
break;
5311+
caseGUC_UNIT_MIN:
5312+
result *=MS_PER_MIN;
5313+
break;
5314+
}
52735315

52745316
if (result %MS_PER_D==0)
52755317
{

‎src/backend/utils/misc/postgresql.conf.sample

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,9 @@
9898

9999
# - Memory -
100100

101-
#shared_buffers =32000kB# min 128kB or max_connections*16kB
101+
#shared_buffers =32MB# min 128kB or max_connections*16kB
102102
# (change requires restart)
103-
#temp_buffers =8000kB# min 800kB
103+
#temp_buffers =8MB# min 800kB
104104
#max_prepared_transactions = 5# can be 0 or more
105105
# (change requires restart)
106106
# Note: increasing max_prepared_transactions costs ~600 bytes of shared memory
@@ -111,7 +111,7 @@
111111

112112
# - Free Space Map -
113113

114-
#max_fsm_pages =1600000# min max_fsm_relations*16, 6 bytes each
114+
#max_fsm_pages =1638400# min max_fsm_relations*16, 6 bytes each
115115
# (change requires restart)
116116
#max_fsm_relations = 1000# min 100, ~70 bytes each
117117
# (change requires restart)
@@ -154,7 +154,7 @@
154154
# fsync_writethrough
155155
# open_sync
156156
#full_page_writes = on# recover from partial page writes
157-
#wal_buffers =8# min 4, 8kB each
157+
#wal_buffers =64kB# min 4, 8kB each
158158
# (change requires restart)
159159
#commit_delay = 0# range 0-100000, in microseconds
160160
#commit_siblings = 5# range 1-1000

‎src/bin/initdb/initdb.c

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
* Portions Copyright (c) 1994, Regents of the University of California
4343
* Portions taken from FreeBSD.
4444
*
45-
* $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.122 2006/09/14 23:21:47 momjian Exp $
45+
* $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.123 2006/10/0321:11:55 momjian Exp $
4646
*
4747
*-------------------------------------------------------------------------
4848
*/
@@ -1113,10 +1113,14 @@ test_config_settings(void)
11131113
staticconstinttrial_conns[]= {
11141114
100,50,40,30,20,10
11151115
};
1116+
1117+
/*
1118+
* Candidate values for shared_buffers in kB. When the value is
1119+
* divisible by 1024, we write it in MB-unit to configuration files.
1120+
*/
11161121
staticconstinttrial_bufs[]= {
1117-
32000,28000,24000,20000,16000,12000,
1118-
8000,7200,6400,5600,4800,4000,
1119-
3200,2400,1600,800,400
1122+
32768,28672,24576,20480,16384,12288,
1123+
8192,7200,6400,5600,4800,4000,
11201124
};
11211125

11221126
charcmd[MAXPGPATH];
@@ -1190,7 +1194,10 @@ test_config_settings(void)
11901194
n_buffers=test_buffs;
11911195
n_fsm_pages=FSM_FOR_BUFS(n_buffers);
11921196

1193-
printf("%dkB/%d\n",n_buffers,n_fsm_pages);
1197+
if (n_buffers %1024==0)
1198+
printf("%dMB/%d\n",n_buffers/1024,n_fsm_pages);
1199+
else
1200+
printf("%dkB/%d\n",n_buffers,n_fsm_pages);
11941201
}
11951202

11961203
/*
@@ -1213,11 +1220,14 @@ setup_config(void)
12131220
snprintf(repltok,sizeof(repltok),"max_connections = %d",n_connections);
12141221
conflines=replace_token(conflines,"#max_connections = 100",repltok);
12151222

1216-
snprintf(repltok,sizeof(repltok),"shared_buffers = %dkB",n_buffers);
1217-
conflines=replace_token(conflines,"#shared_buffers = 32000kB",repltok);
1223+
if (n_buffers %1024==0)
1224+
snprintf(repltok,sizeof(repltok),"shared_buffers = %dMB",n_buffers/1024);
1225+
else
1226+
snprintf(repltok,sizeof(repltok),"shared_buffers = %dkB",n_buffers);
1227+
conflines=replace_token(conflines,"#shared_buffers = 32MB",repltok);
12181228

12191229
snprintf(repltok,sizeof(repltok),"max_fsm_pages = %d",n_fsm_pages);
1220-
conflines=replace_token(conflines,"#max_fsm_pages =1600000",repltok);
1230+
conflines=replace_token(conflines,"#max_fsm_pages =1638400",repltok);
12211231

12221232
#ifDEF_PGPORT!=5432
12231233
snprintf(repltok,sizeof(repltok),"#port = %d",DEF_PGPORT);

‎src/include/utils/guc_tables.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
99
*
10-
* $PostgreSQL: pgsql/src/include/utils/guc_tables.h,v 1.28 2006/08/14 02:27:27 momjian Exp $
10+
* $PostgreSQL: pgsql/src/include/utils/guc_tables.h,v 1.29 2006/10/03 21:11:55 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -132,12 +132,13 @@ struct config_generic
132132

133133
#defineGUC_UNIT_KB0x0400/* value is in 1 kB */
134134
#defineGUC_UNIT_BLOCKS0x0800/* value is in blocks */
135-
#defineGUC_UNIT_MEMORY(GUC_UNIT_KB|GUC_UNIT_BLOCKS)
135+
#defineGUC_UNIT_XBLOCKS0x0C00/* value is in xlog blocks */
136+
#defineGUC_UNIT_MEMORY0x0C00/* mask for KB, BLOCKS, XBLOCKS */
136137

137138
#defineGUC_UNIT_MS0x1000/* value is in milliseconds */
138139
#defineGUC_UNIT_S0x2000/* value is in seconds */
139140
#defineGUC_UNIT_MIN0x4000/* value is in minutes */
140-
#defineGUC_UNIT_TIME(GUC_UNIT_MS|GUC_UNIT_S|GUC_UNIT_MIN)
141+
#defineGUC_UNIT_TIME0x7000/* mask for MS, S, MIN */
141142

142143
/* bit values in status field */
143144
#defineGUC_HAVE_TENTATIVE0x0001/* tentative value is defined */

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp