PG auf Windows nimmt zuwenig Speicher

Ich setze Postgres auf Win2000 Professional ein, genaue Version derzeit
8.2.4 on i686-pc-mingw32, auf einem AMD dreikommairgendwas mit 3 GB RAM.

Die Maschine ist ein reiner Datenbankserver, ich würde der postmaster.exe gerne 2GB zur Verfügung stellen.

Postgresql weigert sich aber standhaft, mehr als rund 530 MB shared Ram für rund 10 bis 15 postmaster-prozesse zu verwenden - wenn ich die entsprechenden Werte in der postgresql.conf erhöhe, startet der Dienst nicht mehr.

Der Server bedient im wesentlichen eine derzeit rund 120 GB grosse Datenbank und steht mit rund 20 inserts und updates sowie mindestens sovielen selects pro Sekunde, steht also rund um die Uhr unter recht heftigem Beschuss - ich freue mich über weitere Optimierungsvorschläge, die der Geschwindigkeit zuträglich sind - im wesentlichen möchte ich aber das Speicherproblem lösen: Wie kriege ich PGSQL dazu, mehr als 530MB Speicher zu verwenden?

# -----------------------------
# PostgreSQL configuration file
# -----------------------------

#-----------------------------------------------
listen_addresses = '*'        # what IP address(es) to listen on; 
port = 5432                # (change requires restart)
max_connections = 200            # (change requires restart)
#---------------------------------------------------------------------------
# RESOURCE USAGE (except WAL)
#---------------------------------------------------------------------------

shared_buffers = 500MB            # min 128kB or max_connections*16kB
temp_buffers = 32MB            # min 800kB
max_prepared_transactions = 50        # can be 0 or more
work_mem = 16MB                # min 64kB
maintenance_work_mem = 12MB        # min 1MB
max_stack_depth = 2MB            # min 100kB

# - Free Space Map -
max_fsm_pages = 304800        # min max_fsm_relations*16, 6 bytes each
#max_fsm_pages =  700000
#max_fsm_relations = 1000        # min 100, ~70 bytes each

# - Kernel Resource Usage -
#max_files_per_process = 1000        # min 25
#shared_preload_libraries = ''        # (change requires restart)


# - Background writer -
#bgwriter_delay = 200ms            # 10-10000ms between rounds
#bgwriter_lru_percent = 1.0        # 0-100% of LRU buffers scanned/round
#bgwriter_lru_maxpages = 5        # 0-1000 buffers max written/round
#bgwriter_all_percent = 0.333        # 0-100% of all buffers scanned/round
#bgwriter_all_maxpages = 5        # 0-1000 buffers max written/round


#---------------------------------------------------------------------------
# WRITE AHEAD LOG
#---------------------------------------------------------------------------

# - Settings -

fsync = off                # turns forced synchronization on or off
#full_page_writes = on            # recover from partial page writes
wal_buffers = 512kB            # min 32kB
                    # (change requires restart)
commit_delay = 1000            # range 0-100000, in microseconds
commit_siblings = 5            # range 1-1000

#---------------------------------------------------------------------------
# QUERY TUNING
#---------------------------------------------------------------------------

# - Planner Method Configuration -

#enable_bitmapscan = on
#enable_hashagg = on
#enable_hashjoin = on
#enable_indexscan = on
#enable_mergejoin = on
#enable_nestloop = on
#enable_seqscan = on
#enable_sort = on
#enable_tidscan = on

# - Planner Cost Constants -

#seq_page_cost = 1.0            # measured on an arbitrary scale
#random_page_cost = 4.0            # same scale as above
#cpu_tuple_cost = 0.01            # same scale as above
#cpu_index_tuple_cost = 0.005        # same scale as above
#cpu_operator_cost = 0.0025        # same scale as above
effective_cache_size = 2048MB

# - Genetic Query Optimizer -

#geqo = on
#geqo_threshold = 12
#geqo_effort = 5            # range 1-10
#geqo_pool_size = 0            # selects default based on effort
#geqo_generations = 0            # selects default based on effort
#geqo_selection_bias = 2.0        # range 1.5-2.0

# - Other Planner Options -

#default_statistics_target = 10        # range 1-1000
#constraint_exclusion = off
#from_collapse_limit = 8
#join_collapse_limit = 8        # 1 disables collapsing of explicit 
                    # JOINs


#---------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#---------------------------------------------------------------------------

#---------------------------------------------------------------------------
# RUNTIME STATISTICS
#---------------------------------------------------------------------------

# - Query/Index Statistics Collector -

#stats_command_string = on
#update_process_title = on

stats_start_collector = on        # needed for block or row stats
                    # (change requires restart)
#stats_block_level = off
stats_row_level = on
#stats_reset_on_server_start = off    # (change requires restart)


# - Statistics Monitoring -

#log_parser_stats = off
#log_planner_stats = off
#log_executor_stats = off
#log_statement_stats = off


#---------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#---------------------------------------------------------------------------

autovacuum = on            # enable autovacuum subprocess
#---------------------------------------------------------------------------
# CLIENT CONNECTION DEFAULTS
#---------------------------------------------------------------------------

# - Statement Behavior -

#search_path = '"$user",public'        # schema names
#default_tablespace = ''        # a tablespace name, '' uses
                    # the default
#check_function_bodies = on
#default_transaction_isolation = 'read committed'
#default_transaction_read_only = off
#statement_timeout = 0            # 0 is disabled
#vacuum_freeze_min_age = 100000000

# - Locale and Formatting -

datestyle = 'iso, mdy'
#timezone = unknown            # actually, defaults to TZ 
                    # environment setting
#extra_float_digits = 0            # min -15, max 2
#client_encoding = sql_ascii        # actually, defaults to database
                    # encoding

# These settings are initialized by initdb -- they might be changed
lc_messages = 'C'            # locale for system error message 
                    # strings
lc_monetary = 'C'            # locale for monetary formatting
lc_numeric = 'C'            # locale for number formatting
lc_time = 'C'                # locale for time formatting

# - Other Defaults -

#explain_pretty_print = on
#dynamic_library_path = '$libdir'
#local_preload_libraries = ''

tom