PostgreSQL with Zabbix - problem of newbe

From: Krzysztof Kardas <krzychk2(at)gmail(dot)com>
To: pgsql-performance(at)postgresql(dot)org
Subject: PostgreSQL with Zabbix - problem of newbe
Date: 2010-04-08 09:23:17
Message-ID: v2w4ff8a7a31004080223mec26e053n69a2b80f24328f37@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Hi,
I am using zabbix monitoring software. The backbone database for
zabbix is postgresql 8.1 installed od linux.

Database server has 3GB of RAM, 1 CPU Dual Core and 2 SAS disks in RAID 1.

Zabbix makes a lot of inserts and updates on database. The problem is
that when autovaccum starts the database freezes.
I am trying to make better performance, I have read a lot of documents
and sites about performance tunning but still no luck.

My current database variables:

add_missing_from | off
| Automatically adds missing table references to FROM
clauses.
archive_command | unset
| WAL archiving command.
australian_timezones | off
| Interprets ACST, CST, EST, and SAT as Australian ti
me zones.
authentication_timeout | 60
| Sets the maximum time in seconds to complete client
authentication.
autovacuum | on
| Starts the autovacuum subprocess.
autovacuum_analyze_scale_factor | 0.1
| Number of tuple inserts, updates or deletes prior t
o analyze as a fraction of reltuples.
autovacuum_analyze_threshold | 5000
| Minimum number of tuple inserts, updates or deletes
prior to analyze.
autovacuum_naptime | 60
| Time to sleep between autovacuum runs, in seconds.
autovacuum_vacuum_cost_delay | -1
| Vacuum cost delay in milliseconds, for autovacuum.
autovacuum_vacuum_cost_limit | -1
| Vacuum cost amount available before napping, for au
tovacuum.
autovacuum_vacuum_scale_factor | 0.2
| Number of tuple updates or deletes prior to vacuum
as a fraction of reltuples.
autovacuum_vacuum_threshold | 100000
| Minimum number of tuple updates or deletes prior to
vacuum.
backslash_quote | safe_encoding
| Sets whether "\'" is allowed in string literals.
bgwriter_all_maxpages | 5
| Background writer maximum number of all pages to fl
ush per round
bgwriter_all_percent | 0.333
| Background writer percentage of all buffers to flus
h per round
bgwriter_delay | 200
| Background writer sleep time between rounds in mill
iseconds
bgwriter_lru_maxpages | 5
| Background writer maximum number of LRU pages to fl
ush per round
bgwriter_lru_percent | 1
| Background writer percentage of LRU buffers to flus
h per round
block_size | 8192
| Shows size of a disk block
bonjour_name | unset
| Sets the Bonjour broadcast service name.
check_function_bodies | on
| Check function bodies during CREATE FUNCTION.
checkpoint_segments | 32
| Sets the maximum distance in log segments between a
utomatic WAL checkpoints.
checkpoint_timeout | 300
| Sets the maximum time in seconds between automatic
WAL checkpoints.
checkpoint_warning | 30
| Logs if filling of checkpoint segments happens more
frequently than this (in seconds).
client_encoding | UTF8
| Sets the client's character set encoding.
client_min_messages | notice
| Sets the message levels that are sent to the client
.
commit_delay | 0
| Sets the delay in microseconds between transaction
commit and flushing WAL to disk.
commit_siblings | 5
| Sets the minimum concurrent open transactions befor
e performing commit_delay.
config_file | /var/lib/pgsql/data/postgresql.conf
| Sets the server's main configuration file.
constraint_exclusion | off
| Enables the planner to use constraints to optimize
queries.
cpu_index_tuple_cost | 0.001
| Sets the planner's estimate of processing cost for
each index tuple (row) during index scan.
cpu_operator_cost | 0.0025
| Sets the planner's estimate of processing cost of e
ach operator in WHERE.
cpu_tuple_cost | 0.01
| Sets the planner's estimate of the cost of processi
ng each tuple (row).
custom_variable_classes | unset
| Sets the list of known custom variable classes.
data_directory | /var/lib/pgsql/data
| Sets the server's data directory.
DateStyle | ISO, MDY
| Sets the display format for date and time values.
db_user_namespace | off
| Enables per-database user names.
deadlock_timeout | 1000
| The time in milliseconds to wait on lock before che
cking for deadlock.
debug_pretty_print | off
| Indents parse and plan tree displays.
debug_print_parse | off
| Prints the parse tree to the server log.
debug_print_plan | off
| Prints the execution plan to server log.
debug_print_rewritten | off
| Prints the parse tree after rewriting to server log
.
default_statistics_target | 100
| Sets the default statistics target.
default_tablespace | unset
| Sets the default tablespace to create tables and in
dexes in.
default_transaction_isolation | read committed
| Sets the transaction isolation level of each new tr
ansaction.
default_transaction_read_only | off
| Sets the default read-only status of new transactio
ns.
default_with_oids | off
| Create new tables with OIDs by default.
dynamic_library_path | $libdir
| Sets the path for dynamically loadable modules.
effective_cache_size | 190000
| Sets the planner's assumption about size of the dis
k cache.
enable_bitmapscan | on
| Enables the planner's use of bitmap-scan plans.
enable_hashagg | on
| Enables the planner's use of hashed aggregation pla
ns.
enable_hashjoin | on
| Enables the planner's use of hash join plans.
enable_indexscan | on
| Enables the planner's use of index-scan plans.
enable_mergejoin | on
| Enables the planner's use of merge join plans.
enable_nestloop | on
| Enables the planner's use of nested-loop join plans
.
enable_seqscan | on
| Enables the planner's use of sequential-scan plans.
enable_sort | on
| Enables the planner's use of explicit sort steps.
enable_tidscan | on
| Enables the planner's use of TID scan plans.
escape_string_warning | off
| Warn about backslash escapes in ordinary string lit
erals.
explain_pretty_print | on
| Uses the indented output format for EXPLAIN VERBOSE
.
external_pid_file | unset
| Writes the postmaster PID to the specified file.
extra_float_digits | 0
| Sets the number of digits displayed for floating-po
int values.
from_collapse_limit | 8
| Sets the FROM-list size beyond which subqueries are
not collapsed.
fsync | on
| Forces synchronization of updates to disk.
full_page_writes | on
| Writes full pages to WAL when first modified after
a checkpoint.
geqo | on
| Enables genetic query optimization.
geqo_effort | 5
| GEQO: effort is used to set the default for other G
EQO parameters.
geqo_generations | 0
| GEQO: number of iterations of the algorithm.
geqo_pool_size | 0
| GEQO: number of individuals in the population.
geqo_selection_bias | 2
| GEQO: selective pressure within the population.
geqo_threshold | 12
| Sets the threshold of FROM items beyond which GEQO
is used.
hba_file | /var/lib/pgsql/data/pg_hba.conf
| Sets the server's "hba" configuration file
ident_file | /var/lib/pgsql/data/pg_ident.conf
| Sets the server's "ident" configuration file
integer_datetimes | off
| Datetimes are integer based.
join_collapse_limit | 8
| Sets the FROM-list size beyond which JOIN construct
s are not flattened.
krb_caseins_users | off
| Sets whether Kerberos user names should be treated
as case-insensitive.
krb_server_hostname | unset
| Sets the hostname of the Kerberos server.
krb_server_keyfile |
FILE:/etc/sysconfig/pgsql/krb5.keytab | Sets the location of the
Kerberos server key file.
krb_srvname | postgres
| Sets the name of the Kerberos service.
lc_collate | pl_PL.UTF-8
| Shows the collation order locale.
lc_ctype | pl_PL.UTF-8
| Shows the character classification and case convers
ion locale.
lc_messages | pl_PL.UTF-8
| Sets the language in which messages are displayed.
lc_monetary | pl_PL.UTF-8
| Sets the locale for formatting monetary amounts.
lc_numeric | pl_PL.UTF-8
| Sets the locale for formatting numbers.
lc_time | pl_PL.UTF-8
| Sets the locale for formatting date and time values
.
listen_addresses | *
| Sets the host name or IP address(es) to listen to.
log_connections | off
| Logs each successful connection.
log_destination | stderr
| Sets the destination for server log output.
log_directory | pg_log
| Sets the destination directory for log files.
log_disconnections | off
| Logs end of a session, including duration.
log_duration | off
| Logs the duration of each completed SQL statement.
log_error_verbosity | default
| Sets the verbosity of logged messages.
log_executor_stats | off
| Writes executor performance statistics to the serve
r log.
log_filename | postgresql-%a.log
| Sets the file name pattern for log files.
log_hostname | off
| Logs the host name in the connection logs.
log_line_prefix | unset
| Controls information prefixed to each log line
log_min_duration_statement | -1
| Sets the minimum execution time in milliseconds abo
ve which statements will be logged.
log_min_error_statement | panic
| Causes all statements generating error at or above
this level to be logged.
log_min_messages | notice
| Sets the message levels that are logged.
log_parser_stats | off
| Writes parser performance statistics to the server
log.
log_planner_stats | off
| Writes planner performance statistics to the server
log.
log_rotation_age | 1440
| Automatic log file rotation will occur after N minu
tes
log_rotation_size | 0
| Automatic log file rotation will occur after N kilo
bytes
log_statement | none
| Sets the type of statements logged.
log_statement_stats | off
| Writes cumulative performance statistics to the ser
ver log.
log_truncate_on_rotation | on
| Truncate existing log files of same name during log
rotation.
maintenance_work_mem | 256000
| Sets the maximum memory to be used for maintenance
operations.
max_connections | 400
| Sets the maximum number of concurrent connections.
max_files_per_process | 1000
| Sets the maximum number of simultaneously open file
s for each server process.
max_fsm_pages | 1000000
| Sets the maximum number of disk pages for which fre
e space is tracked.
max_fsm_relations | 1000
| Sets the maximum number of tables and indexes for w
hich free space is tracked.
max_function_args | 100
| Shows the maximum number of function arguments.
max_identifier_length | 63
| Shows the maximum identifier length
max_index_keys | 32
| Shows the maximum number of index keys.
max_locks_per_transaction | 64
| Sets the maximum number of locks per transaction.
max_prepared_transactions | 100
| Sets the maximum number of simultaneously prepared
transactions.
max_stack_depth | 10240
| Sets the maximum stack depth, in kilobytes.
password_encryption | off
| Encrypt passwords.
port | 5432
| Sets the TCP port the server listens on.
pre_auth_delay | 0
| no description available
preload_libraries | unset
| Lists shared libraries to preload into server.
random_page_cost | 3
| Sets the planner's estimate of the cost of a nonseq
uentially fetched disk page.
redirect_stderr | on
| Start a subprocess to capture stderr output into lo
g files.
regex_flavor | advanced
| Sets the regular expression "flavor".
search_path | $user,public
| Sets the schema search order for names that are not
schema-qualified.
server_encoding | UTF8
| Sets the server (database) character set encoding.
server_version | 8.1.11
| Shows the server version.
shared_buffers | 95000
| Sets the number of shared memory buffers used by th
e server.
silent_mode | off
| Runs the server silently.
sql_inheritance | on
| Causes subtables to be included by default in vario
us commands.
ssl | off
| Enables SSL connections.
standard_conforming_strings | off
| '...' strings treat backslashes literally.
statement_timeout | 0
| Sets the maximum allowed duration (in milliseconds)
of any statement.
stats_block_level | on
| Collects block-level statistics on database activit
y.
stats_command_string | on
| Collects statistics about executing commands.
stats_reset_on_server_start | off
| Zeroes collected statistics on server restart.
stats_row_level | on
| Collects row-level statistics on database activity.
stats_start_collector | on
| Starts the server statistics-collection subprocess.
superuser_reserved_connections | 2
| Sets the number of connection slots reserved for su
perusers.
syslog_facility | LOCAL0
| Sets the syslog "facility" to be used when syslog e
nabled.
syslog_ident | postgres
| Sets the program name used to identify PostgreSQL m
essages in syslog.
tcp_keepalives_count | 0
| Maximum number of TCP keepalive retransmits.
tcp_keepalives_idle | 0
| Seconds between issuing TCP keepalives.
tcp_keepalives_interval | 0
| Seconds between TCP keepalive retransmits.
temp_buffers | 1000
| Sets the maximum number of temporary buffers used b
y each session.
TimeZone | Poland
| Sets the time zone for displaying and interpreting
time stamps.
trace_notify | off
| Generates debugging output for LISTEN and NOTIFY.
trace_sort | off
| Emit information about resource usage in sorting.
transaction_isolation | read committed
| Sets the current transaction's isolation level.
transaction_read_only | off
| Sets the current transaction's read-only status.
transform_null_equals | off
| Treats "expr=NULL" as "expr IS NULL".
unix_socket_directory | unset
| Sets the directory where the Unix-domain socket wil
l be created.
unix_socket_group | unset
| Sets the owning group of the Unix-domain socket.
unix_socket_permissions | 511
| Sets the access permissions of the Unix-domain sock
et.
vacuum_cost_delay | 10
| Vacuum cost delay in milliseconds.
vacuum_cost_limit | 200
| Vacuum cost amount available before napping.
vacuum_cost_page_dirty | 20
| Vacuum cost for a page dirtied by vacuum.
vacuum_cost_page_hit | 1
| Vacuum cost for a page found in the buffer cache.
vacuum_cost_page_miss | 10
| Vacuum cost for a page not found in the buffer cach
e.
wal_buffers | 2000
| Sets the number of disk-page buffers in shared memo
ry for WAL.
wal_sync_method | fdatasync
| Selects the method used for forcing WAL updates out
to disk.
work_mem | 1600000
| Sets the maximum memory to be used for query worksp
aces.
zero_damaged_pages | off
| Continues processing past damaged page headers.
(163 rows)

I would be very grateful for any help.

Greetings for all.

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Grzegorz Jaśkiewicz 2010-04-08 09:31:34 Re: PostgreSQL with Zabbix - problem of newbe
Previous Message Sabin Coanda 2010-04-08 06:29:07 Re: How check execution plan of a function