acho que nao deve ser a questao dos semaforos nao pq senao ele nem subia o banco.
voce poderia usar o pgpool para as conexoes ----- Original Message ----- From: "Aldrey Galindo" <[EMAIL PROTECTED]> To: "Comunidade PostgreSQL Brasileira" <pgbr-geral@listas.postgresql.org.br> Sent: Monday, June 09, 2008 10:06 AM Subject: Re: [pgbr-geral]Fwd: servidor com 100% de uso de cpu/memória Rafael, Veja a questão do número de processos que você está utilizando, pode precisar mexer nos semáforos do sistema. Segue abaixo algumas referências que já utilizei: 1- http://www.puschitz.com/TuningLinuxForOracle.shtml 2- http://www.dicas-l.com.br/dicas-l/20050921.php 3- http://www.midstorm.org/~fike/weblog/index.php/2007/04/01/3000-conexoes-simultaneas-no-postgresql-como-assim/ 4- http://www.forumpcs.com.br/viewtopic.php?t=160637 Abraços, Aldrey Galindo 2008/6/9 Rafael Bragatto Gratz <[EMAIL PROTECTED]>: > Xenon 3.0 com 2gb de memória. > > > > On Mon, Jun 9, 2008 at 9:42 AM, Aluisio Gouveia > <[EMAIL PROTECTED]> wrote: >> >> Rafael Bragatto Gratz escreveu: >> > Boa tarde pessoal, estou com um problema sério em um dos meus clientes. >> > >> > Há 300 máquinas conectadas (em torno de 2 conexões por máquina) no >> > servidor postgres e o servidor está com o processor a 100% de uso e >> > memória com 1900gb em uso e está MUITO LENTO. >> > >> > Se alguém puder me ajudar eu agradeço. >> > >> > A configuraçào do meu postgre.conf está assim: >> > >> > * >> > >> > #--------------------------------------------------------------------------- >> > # CONNECTIONS AND AUTHENTICATION >> > >> > #--------------------------------------------------------------------------- >> > >> > # - Connection Settings - >> > >> > listen_addresses = 'localhost' # what IP address(es) to >> > listen on; >> > # comma-separated list of addresses; >> > # defaults to 'localhost', '*' = all >> > # (change requires restart) >> > port = 5432 # (change requires restart) >> > max_connections = 1200 # (change requires restart) >> > # Note: increasing max_connections costs ~400 bytes of shared memory >> > per >> > # connection slot, plus lock space (see max_locks_per_transaction). >> > You >> > # might also need to raise shared_buffers to support more connections. >> > #superuser_reserved_connections = 3 # (change requires restart) >> > #unix_socket_directory = '' # (change requires restart) >> > #unix_socket_group = '' # (change requires restart) >> > #unix_socket_permissions = 0777 # octal >> > # (change requires restart) >> > #bonjour_name = '' # defaults to the computer name >> > # (change requires restart) >> > >> > # - Security & Authentication - >> > >> > #authentication_timeout = 1min # 1s-600s >> > #ssl = off # (change requires restart) >> > #password_encryption = on >> > #db_user_namespace = off >> > >> > # Kerberos >> > #krb_server_keyfile = '' # (change requires restart) >> > #krb_srvname = 'postgres' # (change requires restart) >> > #krb_server_hostname = '' # empty string matches any keytab >> > entry >> > # (change requires restart) >> > #krb_caseins_users = off # (change requires restart) >> > >> > # - TCP Keepalives - >> > # see 'man 7 tcp' for details >> > >> > #tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds; >> > # 0 selects the system default >> > #tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds; >> > # 0 selects the system default >> > #tcp_keepalives_count = 0 # TCP_KEEPCNT; >> > # 0 selects the system default >> > >> > >> > >> > #--------------------------------------------------------------------------- >> > # RESOURCE USAGE (except WAL) >> > >> > #--------------------------------------------------------------------------- >> > >> > # - Memory - >> > >> > shared_buffers = 256MB # min 128kB or max_connections*16kB >> > # (change requires restart) >> > #temp_buffers = 8MB # min 800kB >> > #max_prepared_transactions = 5 # can be 0 or more >> > # (change requires restart) >> > # Note: increasing max_prepared_transactions costs ~600 bytes of >> > shared memory >> > # per transaction slot, plus lock space (see >> > max_locks_per_transaction). >> > work_mem = 2MB # min 64kB >> > maintenance_work_mem = 16MB # min 1MB >> > #max_stack_depth = 2MB # min 100kB >> > >> > # - Free Space Map - >> > >> > max_fsm_pages = 204800 # min max_fsm_relations*16, 6 bytes each >> > # (change requires restart) >> > #max_fsm_relations = 1000 # min 100, ~70 bytes each >> > # (change requires restart) >> > >> > # - Kernel Resource Usage - >> > >> > #max_files_per_process = 1000 # min 25 >> > # (change requires restart) >> > #shared_preload_libraries = '' # (change requires restart) >> > >> > # - Cost-Based Vacuum Delay - >> > >> > #vacuum_cost_delay = 0 # 0-1000 milliseconds >> > #vacuum_cost_page_hit = 1 # 0-10000 credits >> > #vacuum_cost_page_miss = 10 # 0-10000 credits >> > #vacuum_cost_page_dirty = 20 # 0-10000 credits >> > #vacuum_cost_limit = 200 # 0-10000 credits >> > >> > # - 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 = on # turns forced synchronization on or off >> > #wal_sync_method = fsync # the default is the first option >> > # supported by the operating system: >> > # open_datasync >> > # fdatasync >> > # fsync >> > # fsync_writethrough >> > # open_sync >> > #full_page_writes = on # recover from partial page writes >> > #wal_buffers = 64kB # min 32kB >> > # (change requires restart) >> > #commit_delay = 0 # range 0-100000, in microseconds >> > #commit_siblings = 5 # range 1-1000 >> > >> > # - Checkpoints - >> > >> > #checkpoint_segments = 3 # in logfile segments, min 1, 16MB each >> > #checkpoint_timeout = 5min # range 30s-1h >> > #checkpoint_warning = 30s # 0 is off >> > >> > # - Archiving - >> > >> > #archive_command = '' # command to use to archive a logfile >> > segment >> > #archive_timeout = 0 # force a logfile segment switch after this >> > # many seconds; 0 is off >> > >> > >> > >> > #--------------------------------------------------------------------------- >> > # 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 = 128MB >> > >> > # - 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 >> > >> > >> > >> > >> > #--------------------------------------------------------------------------- >> > # 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? >> > # 'on' requires stats_start_collector >> > # and stats_row_level to also be on >> > #autovacuum_naptime = 1min # time between autovacuum runs >> > #autovacuum_vacuum_threshold = 500 # min # of tuple updates before >> > # vacuum >> > #autovacuum_analyze_threshold = 250 # min # of tuple updates before >> > # analyze >> > #autovacuum_vacuum_scale_factor = 0.2 # fraction of rel size before >> > # vacuum >> > #autovacuum_analyze_scale_factor = 0.1 # fraction of rel size before >> > # analyze >> > #autovacuum_freeze_max_age = 200000000 # maximum XID age before >> > forced vacuum >> > # (change requires restart) >> > #autovacuum_vacuum_cost_delay = -1 # default vacuum cost delay for >> > # autovacuum, -1 means use >> > # vacuum_cost_delay >> > #autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for >> > # autovacuum, -1 means use >> > # vacuum_cost_limit >> > >> > >> > >> > #--------------------------------------------------------------------------- >> > # 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, dmy' >> > #timezone = unknown # actually, defaults to TZ >> > # environment setting >> > #timezone_abbreviations = 'Default' # select the set of available >> > timezone >> > # abbreviations. Currently, there are >> > # Default >> > # Australia >> > # India >> > # However you can also create your own >> > # file in share/timezonesets/. >> > #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 = 'Portuguese_Brazil' # locale for system error >> > message >> > # strings >> > lc_monetary = 'Portuguese_Brazil' # locale for monetary >> > formatting >> > lc_numeric = 'Portuguese_Brazil' # locale for number >> > formatting >> > lc_time = 'Portuguese_Brazil' # locale for time >> > formatting >> > >> > # - Other Defaults - >> > >> > #explain_pretty_print = on >> > #dynamic_library_path = '$libdir' >> > #local_preload_libraries = '' >> > >> > >> > >> > #--------------------------------------------------------------------------- >> > # LOCK MANAGEMENT >> > >> > #--------------------------------------------------------------------------- >> > >> > #deadlock_timeout = 1s >> > #max_locks_per_transaction = 64 # min 10 >> > # (change requires restart) >> > # Note: each lock table slot uses ~270 bytes of shared memory, and >> > there are >> > # max_locks_per_transaction * (max_connections + >> > max_prepared_transactions) >> > # lock table slots. >> > >> > >> > >> > #--------------------------------------------------------------------------- >> > # VERSION/PLATFORM COMPATIBILITY >> > >> > #--------------------------------------------------------------------------- >> > >> > # - Previous Postgres Versions - >> > >> > #add_missing_from = off >> > #array_nulls = on >> > #backslash_quote = safe_encoding # on, off, or safe_encoding >> > #default_with_oids = off >> > #escape_string_warning = on >> > #standard_conforming_strings = off >> > #regex_flavor = advanced # advanced, extended, or basic >> > #sql_inheritance = on >> > >> > # - Other Platforms & Clients - >> > >> > #transform_null_equals = off >> > >> > >> > >> > #--------------------------------------------------------------------------- >> > # CUSTOMIZED OPTIONS >> > >> > #--------------------------------------------------------------------------- >> > >> > #custom_variable_classes = '' # list of custom variable class >> > names >> > * >> > >> > >> > -- >> > Rafael Bragatto Gratz >> > >> > [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> >> > Projeta Sistemas Orientados Ao Seu Mundo >> > www.projetasistemas.com.br <http://www.projetasistemas.com.br> >> > >> > >> > ------------------------------------------------------------------------ >> > >> > _______________________________________________ >> > pgbr-geral mailing list >> > pgbr-geral@listas.postgresql.org.br >> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> > >> Qual a configuração do hardware? >> >> >> -- >> Cordialmente; >> >> Aluisio Gouveia >> >> _______________________________________________ >> pgbr-geral mailing list >> pgbr-geral@listas.postgresql.org.br >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > > > -- > Rafael Bragatto Gratz > > [EMAIL PROTECTED] > Projeta Sistemas Orientados Ao Seu Mundo > www.projetasistemas.com.br > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral