Поделитесь настройками постгреса

1. supp 3 31.01.12 07:45 Сейчас в теме
поднял Centos+PGSQL
Несколько дней убил на тестирование под бухгалтерией - серваки с 8-12 ГБ опры. i5-i7, ставил на обычный и SSD винт - разницы вообще не ощутил.

В конфигах перековырял все параметры - такое впечатление, что кроме effective_cache_size ничего полезного нет.

Что я делаю не так? :)
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. dedtver 31.01.12 15:48 Сейчас в теме
так и есть, целесообразно поставить 2.3 памяти, остальное мертвому припарка. Клево вообще чтобы логи писались на другой винт, но это для загруженных систем. у меня связка Win2008 + postgres b debian + postgres. танцы с бубном ни к чему не приводят. Хоть меняй, хоть не меняй.
1. сервер 1 - железо 775, CoreDuo2 3Ггц, 4гб озу, SSD Corsar - тест гилева на Debian x64 603 показывает 27 пунктов в SQL режиме, на винде 21 пункт.
2 Сервак 2 железо 1366, камень i7 960, 12 Гб Озу, SSD Corsar тест гилева на Debian показывает 21 пунктов в SQL режиме, на винде тоже самое 21 пункт.
Хоть обнастраивайся. на втором серваке сидит 10 человек работает не мнгновенно как 7-ка, но вообще сносно. Вообще топик нужный, может кто свет на тайны прольет.
Debian603 x64 + 64 Postgres(902) 1c x86 сервер
Win2008 x 64 + 86 Postgres 8.4.3 1c x86 сервер
3. shotsdv 03.02.12 10:44 Сейчас в теме
Я бы посоветовал Постгри ставить от Этерсофта (http://etrsoft.ru)
Он уже настроен под 1С
4. audion 06.02.12 15:26 Сейчас в теме
Еще вот это:

- убрать мусор в логах:
escape_string_warning = off

- без этого были проблемы с pg_restore
standard_conforming_strings = off

- и вот это позволяет ускорить формирование некоторых отчетов (о действии см. http://www.postgresql.org/docs/8.2/static/explicit-joins.html)
join_collapse_limit = 1

Кстати, вот официальное заявление по этому поводу (отсюда http://downloads.v8.1c.ru/content/Platform/8_2_15_294/ERROTHER_8_2_15.HTM ):

----------------
Зависает PostgreSQL 9.0 (сценарий Расчет себестоимости)
Проблема:
Причиной зависания является отсутствие актуальной статистики по таблицам, участвующим в запросе. Количество записей в этих таблицах сильно изменилось с начала транзакции (было 0 стало 140000). Autovacuum не видит этих изменений снаружи транзакции и статистика остается неактуальной.
Способы решения:
Установить в postgresql.conf значение параметра join_collapse_limit=1
Ожидается патч, который на основе анализа изменений будет запускать сбор статистики по таблице

Дата публикации: 2011-10-05
------------------

А вообще - присоединяюсь к 2, очень важно разнести временные и журнальные записи по разным физическим дискам, все это должно работать на RAID 1+0 с избыточным количеством дисков и, если у RAID-контроллера есть резервное питание, то fsync = off.
5. dedtver 13.02.12 14:02 Сейчас в теме
Есть у кого еще мысли по поводу ускорения?
6. audion 17.02.12 18:40 Сейчас в теме
Гм... Кластер? Сервер 1С отдельно + кластер серверов PostgreSQL.
Кстати, кто-нибудь пробовал делать мост из двух сетевух? Как оно - сильно влияет?
7. dedtver 17.02.12 22:53 Сейчас в теме
Да, сначала нужно хоть без кластера, на две разных тачки поставить! Буду пробовать! ИМХО Две сетевухи не помогут, гигабиный свитч стоит, узкое место не сеть.
9. audion 05.03.12 17:41 Сейчас в теме
(7) dedtver, ясно, спасибо большое! Тогда, получается, надо городить нечто такое: сервер 1С с двумя сетевыми, одна из них работает только с сервером PostgreSQL, другая - с клиентами (тут больше по соображениям безопасности, да и знакомый админ из крупной конторы очень настаивал на именно таком варианте). А на сервере БД RAID 1+0 из 4 или даже 6 дисков на 10 тыс. об./мин., те же VelociRaptor или SAS 15k.
В общем, чувствую, предстоит мне это все к концу мая.
8. neyasytyf 20.02.12 21:58 Сейчас в теме
а кто нибудь использовал совет отсюда http://infostart.ru/public/79517/
10. dedtver 06.03.12 07:50 Сейчас в теме
(8) neyasytyf, а вы отзывы читали по этой ссылке, как человек 9 месяцев с бубном вокруг базы ходил. Это не тот метод ускорения, который нужен.
11. aprk 27.03.12 11:53 Сейчас в теме
Работает сервер 1С и postgresql 9.0 на одном сервере. В постгре мало реагирует на настройки, а вот сервер 1С, а именно настройка рабочих процессов влияет на быстродействие. ну и перенос лог на другой массив тоже имеет значение.!
Может есть специалист по настройке сервера 1С, вот эти рекомендации пригодились бы?!
12. audion 10.04.12 18:37 Сейчас в теме
(11) Извините, не понял, какой именно лог Вы имеете в виду? Просто есть x_log и c_log у постгри, их таки да, надо на другой физический диск или массив переносить, или речь о логе 1с - считаете, его тоже надо?

Вот сейчас сижу и читаю книгу Gregory Smith. PostgreSQL 9.0 High performance. В инете ищется на раз, в pdf. Рекомендую всем - настолько все классно расписано, причем как в отношении настроек самой СУБД, так и по железу.

Вообще, друзья, может мы в рамках этой темы обсудим конкретные мероприятия по настройке postgre? Аргументированно и хоть с каким-нибудь объективным тестированием, хоть даже тестом Гилева?

Заказал приличное железо для сервера (RAID-контроллер с батарейкой, винты, еще всякой всячины), на следующей неделе придет. Результаты экспериментов кому-нибудь будут интересны? Хотелось бы, чтобы в итоге этого обсуждения появились какие-то готовые практические рекомендации для начинающих пингвиноводов.
13. dedtver 15.04.12 13:50 Сейчас в теме
(12) audion, Конечно тесты в студию!
14. audion 18.04.12 20:54 Сейчас в теме
Итак, краткий отчет.
Железо:
MB Asus P8P67 rev.3.1
CPU Intel Core i5 2600 (4 ядра, 3.2 ГГц/ядро)
RAM 16 GB Kingston 13333 MHz
Корпус Chieftec BA-01B-B-B (Full Tower, w/o PSU)
БП Corsair TX750
Дисковая система (пока еще не полностью сформирована, как хочется):
WD VelociRaptor 300 GB (/, /boot, /opt, /tmp, /var/log, /swap) #да, знаю, не оптимально, но пока норм.
WD Green 500 GB - /opt/backup
WD VelociRaptor 600 GB - pg_xlog (подмонтирован куда глаза глядели, ln -s куда надо :-))
Ну и база лежит на рэйде:
Intel RS2BL080 + Battery backup unit (AXXRSBBU7) (8 channel, sata/sas)
Файловые системы везде ext4, базы и pg_xlog смонтированы с noatime.
В рэйде 4 винта Western Digital RE4, WD1003FBYX в RAID10. Один такой же лежит отдельно для запасу.
Прошивку контроллера сразу пришлось обновить на последнюю.

Система: CentOS 6 (ядро 2.6.32-220.7.1.el6.x86-64), PostgreSQL 9.0.4-alt1 (с этерсофта), 1С 8.2.15.301 (скоро поставлю 310).

Настройки PostgreSQL не оптимальные, надо еще вылизывать (я их приводил в соседнем треде, см. http://forum.infostart.ru/forum16/topic51353/ пост №8), рекомендовать как истину в последней инстанции не буду. RAID-контроллер работает пока еще в "щадящем" режиме - батарейка тренируется, пока еще Write-Through, потом переключиться на Write-Back with BBU, будет побыстрее.
На сервере крутятся 50+ баз (БП и ЗУП), регламентные операции практически постоянно, т.е. еще дополнительно потеря производительности.
Результаты теста Гилева (кроме меня во время тестирования работало еще 12-15 пользователей): 18,73; 19,66; 19,34.
В реальной работе затык наблюдается по процессору, нагрузка на дисковую систему очень невелика, ни разу не более 30%.

В перспективе система и pg_xlog перейдут на RAID1 (каждый в отдельности, есть еще 4 свободных канала на контроллере), а объем ОЗУ можно нарастить до 32 ГБ.
ИМХО в качестве бюджетного варианта получилось вполне нормально.
15. zale 19 23.04.12 14:27 Сейчас в теме
я поставил постгрес от etersoft работает уже несколько месяцев без проблем. демон 1с падал но после обновления платформы все стало нормально. полет норм уже 2 месяца без вылета, одновременно подключено более 30 юзеров.
16. audion 23.04.12 20:32 Сейчас в теме
Ага, было такое, сейчас какая у Вас платформа, 301? Очень глючная была 537-я, потом 301-я - претензий почти не было, сейчас 310 - вроде бы полет нормальный.
Тест Гилева не запускали?
17. audion 23.04.12 20:45 Сейчас в теме
2ALL, вот еще одна засада вскрылась :-) В общем, в BIOS материнки (см. мой пост № 14) были неоптимальные настройки производительности процессора, поставил на max performance - таки лучше. Гилевский тест стабильно дает более 22, максимум доходил до 23.31. Сначала грешил на cpuspeed (вдруг поставилось yum-ом с какого-нибудь перепою) - нет, все ОК. А вообще вполне бывает, что из-за установленного cpuspeed очень сильно снижается производительность сервера.
А настройки постгреса я несколько изменил, теперь (несущественные не привожу):

fsync = on # turns forced synchronization on or off
wal_sync_method = fdatasync # the default is the first option
random_page_cost = 2.0 # same scale as above
autovacuum = on # Enable autovacuum subprocess? 'on'
autovacuum_vacuum_threshold = 1800 # min number of row updates before
datestyle = 'iso, dmy'
lc_messages = 'ru_RU.UTF-8' # locale for system error message
lc_monetary = 'ru_RU.UTF-8' # locale for monetary formatting
lc_numeric = 'ru_RU.UTF-8' # locale for number formatting
lc_time = 'ru_RU.UTF-8' # locale for time formatting
default_text_search_config = 'pg_catalog.russian'
deadlock_timeout = 2s
max_locks_per_transaction = 250
default_statistics_target = 100
maintenance_work_mem = 1024MB
constraint_exclusion = on
checkpoint_completion_target = 0.9
effective_cache_size = 4096MB
work_mem = 8MB
wal_buffers = 16MB
checkpoint_segments = 40
enable_nestloop = off # существенный рост производительности для ОЧЕНЬ больших отчетов
shared_buffers = 2048MB
temp_buffers = 8MB
max_connections = 200
max_locks_per_transaction = 150
escape_string_warning = off
standard_conforming_strings = off
join_collapse_limit = 1

Своп жрать перестал, свободной памяти не более 300 МБ, ИМХО это правильно.
Да, отключать fsync я не стал, даже с учетом батарейного питания RAID-контроллера: прирост производительности есть, а надежность все-таки важнее.
Вполне вероятно, есть смысл поэкспериментировать с различными файловыми системами, есть подозрение, что, отключив журналирование, прирост производительности будет очень заметным. Сам уже экспериментировать не буду, все, хватит :-)

Удачи всем!
18. dedtver 28.08.12 17:11 Сейчас в теме
сейчас поставил Xeon 2620 + Asus WS X79 + DDR 1333 16Гб + SSD OCZ 120 + Win2008 X64 + 1с X64 8.2.16 + postgres 9.1.2 x64 - плачу - тест показывает 9 очков. Настройки postgres пока дефолтные. Делаю вывод - одназначно полагаться на тест, нельзя! Но при тестировании ориентироваться буду на него.
19. arez 29.08.12 08:14 Сейчас в теме
Конфигурация:
ESXi 5.0
Debian 6
ядро 2.6.32-5-amd64
PostgreSQL 9.0.4
2х2 ядра
8Гб оперативки

postgres.conf
# -----------------------------
# PostgreSQL configuration file
# -----------------------------
#
# This file consists of lines of the form:
#
#   name = value
#
# (The "=" is optional.)  Whitespace may be used.  Comments are introduced with
# "#" anywhere on a line.  The complete list of parameter names and allowed
# values can be found in the PostgreSQL documentation.
#
# The commented-out settings shown in this file represent the default values.
# Re-commenting a setting is NOT sufficient to revert it to the default value;
# you need to reload the server.
#
# This file is read on server startup and when the server receives a SIGHUP
# signal.  If you edit the file on a running system, you have to SIGHUP the
# server for the changes to take effect, or use "pg_ctl reload".  Some
# parameters, which are marked below, require a server shutdown and restart to
# take effect.
#
# Any parameter can also be given as a command-line option to the server, e.g.,
# "postgres -c log_connections=on".  Some parameters can be changed at run time
# with the "SET" SQL command.
#
# Memory units:  kB = kilobytes        Time units:  ms  = milliseconds
#                MB = megabytes                     s   = seconds
#                GB = gigabytes                     min = minutes
#                                                   h   = hours
#                                                   d   = days


#------------------------------------------------------------------------------
# FILE LOCATIONS
#------------------------------------------------------------------------------

# The default values of these variables are driven from the -D command-line
# option or PGDATA environment variable, represented here as ConfigDir.

#data_directory = 'ConfigDir'           # use data in another directory
                                        # (change requires restart)
#hba_file = 'ConfigDir/pg_hba.conf'     # host-based authentication file
                                        # (change requires restart)
#ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file
                                        # (change requires restart)

# If external_pid_file is not explicitly set, no extra PID file is written.
#external_pid_file = '(none)'           # write an extra PID file
                                        # (change requires restart)


#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'                  # 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 = 100                   # (change requires restart)
# Note:  Increasing max_connections costs ~400 bytes of shared memory per
# connection slot, plus lock space (see max_locks_per_transaction).
#superuser_reserved_connections = 3     # (change requires restart)
#unix_socket_directory = ''             # (change requires restart)
#unix_socket_group = ''                 # (change requires restart)
#unix_socket_permissions = 0777         # begin with 0 to use octal notation
                                        # (change requires restart)
#bonjour = off                          # advertise server via Bonjour
                                        # (change requires restart)
#bonjour_name = ''                      # defaults to the computer name
                                        # (change requires restart)

# - Security and Authentication -

#authentication_timeout = 1min          # 1s-600s
#ssl = off                              # (change requires restart)
#ssl_ciphers = 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH'      # allowed SSL ciphers
                                        # (change requires restart)
#ssl_renegotiation_limit = 512MB        # amount of data between renegotiations
#password_encryption = on
#db_user_namespace = off

# Kerberos and GSSAPI
#krb_server_keyfile = ''
#krb_srvname = 'postgres'               # (Kerberos only)
#krb_caseins_users = off

# - 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 = 32MB                   # min 128kB
                                        # (change requires restart)
#temp_buffers = 8MB                     # min 800kB
#max_prepared_transactions = 0          # zero disables the feature
                                        # (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).
# It is not advisable to set max_prepared_transactions nonzero unless you
# actively intend to use prepared transactions.
#work_mem = 1MB                         # min 64kB
#maintenance_work_mem = 16MB            # min 1MB
#max_stack_depth = 2MB                  # min 100kB

# - 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 = 0ms                # 0-100 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                # 1-10000 credits

# - Background Writer -

#bgwriter_delay = 200ms                 # 10-10000ms between rounds
#bgwriter_lru_maxpages = 100            # 0-1000 max buffers written/round
#bgwriter_lru_multiplier = 2.0          # 0-10.0 multipler on buffers scanned/round

# - Asynchronous Behavior -

#effective_io_concurrency = 1           # 1-1000. 0 disables prefetching


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

# - Settings -

#wal_level = minimal                    # minimal, archive, or hot_standby
                                        # (change requires restart)
#fsync = on                             # turns forced synchronization on or off
#synchronous_commit = on                # immediate fsync at commit
#wal_sync_method = fsync                # the default is the first option
                                        # supported by the operating system:
                                        #   open_datasync
                                        #   fdatasync (default on Linux)
                                        #   fsync
                                        #   fsync_writethrough
                                        #   open_sync
#full_page_writes = on                  # recover from partial page writes
#wal_buffers = 64kB                     # min 32kB
                                        # (change requires restart)
#wal_writer_delay = 200ms               # 1-10000 milliseconds

#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_completion_target = 0.5     # checkpoint target duration, 0.0 - 1.0
#checkpoint_warning = 30s               # 0 disables

# - Archiving -

#archive_mode = off             # allows archiving to be done
                                # (change requires restart)
#archive_command = ''           # command to use to archive a logfile segment
#archive_timeout = 0            # force a logfile segment switch after this
                                # number of seconds; 0 disables

# - Streaming Replication -

#max_wal_senders = 0            # max number of walsender processes
                                # (change requires restart)
#wal_sender_delay = 200ms       # walsender cycle time, 1-10000 milliseconds
#wal_keep_segments = 0          # in logfile segments, 16MB each; 0 disables
#vacuum_defer_cleanup_age = 0   # number of xacts by which cleanup is delayed

# - Standby Servers -

#hot_standby = off                      # "on" allows queries during recovery
                                        # (change requires restart)
#max_standby_archive_delay = 30s        # max delay before canceling queries
                                        # when reading WAL from archive;
                                        # -1 allows indefinite delay
#max_standby_streaming_delay = 30s      # max delay before canceling queries
                                        # when reading streaming WAL;
                                        # -1 allows indefinite delay


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

# - Planner Method Configuration -

#enable_bitmapscan = on
#enable_hashagg = on
#enable_hashjoin = on
#enable_indexscan = on
#enable_material = 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 = 512MB

# - 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
#geqo_seed = 0.0                        # range 0.0-1.0

# - Other Planner Options -

#default_statistics_target = 100        # range 1-10000
#constraint_exclusion = partition       # on, off, or partition
#cursor_tuple_fraction = 0.1            # range 0.0-1.0
#from_collapse_limit = 8
#join_collapse_limit = 8                # 1 disables collapsing of explicit
                                        # JOIN clauses


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

# - Where to Log -

log_destination = 'stderr'              # Valid values are combinations of
                                        # stderr, csvlog, syslog, and eventlog,
                                        # depending on platform.  csvlog
                                        # requires logging_collector to be on.

# This is used when logging to stderr:
logging_collector = on                  # Enable capturing of stderr and csvlog
                                        # into log files. Required to be on for
                                        # csvlogs.
                                        # (change requires restart)

# These are only used if logging_collector is on:
log_directory = 'pg_log'                # directory where log files are written,
                                        # can be absolute or relative to PGDATA
log_filename = 'postgresql-%a.log'      # log file name pattern,
                                        # can include strftime() escapes
log_truncate_on_rotation = on           # If on, an existing log file of the
                                        # same name as the new log file will be
                                        # truncated rather than appended to.
                                        # But such truncation only occurs on
                                        # time-driven rotation, not on restarts
                                        # or size-driven rotation.  Default is
                                        # off, meaning append to existing files
                                        # in all cases.
log_rotation_age = 1d                   # Automatic rotation of logfiles will
                                        # happen after that time.  0 disables.
log_rotation_size = 0                   # Automatic rotation of logfiles will
                                        # happen after that much log output.
                                        # 0 disables.

# These are relevant when logging to syslog:
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'

#silent_mode = off                      # Run server silently.
                                        # DO NOT USE without syslog or
                                        # logging_collector
                                        # (change requires restart)


# - When to Log -

#client_min_messages = notice           # values in order of decreasing detail:
                                        #   debug5
                                        #   debug4
                                        #   debug3
                                        #   debug2
                                        #   debug1
                                        #   log
                                        #   notice
                                        #   warning
                                        #   error

#log_min_messages = warning             # values in order of decreasing detail:
                                        #   debug5
                                        #   debug4
                                        #   debug3
                                        #   debug2
                                        #   debug1
                                        #   info
                                        #   notice
                                        #   warning
                                        #   error
                                        #   log
                                        #   fatal
                                        #   panic

#log_min_error_statement = error        # values in order of decreasing detail:
                                        #   debug5
                                        #   debug4
                                        #   debug3
                                        #   debug2
                                        #   debug1
                                        #   info
                                        #   notice
                                        #   warning
                                        #   error
                                        #   log
                                        #   fatal
                                        #   panic (effectively off)

#log_min_duration_statement = -1        # -1 is disabled, 0 logs all statements
                                        # and their durations, > 0 logs only
                                        # statements running at least this numbe                                                                           r
                                        # of milliseconds


# - What to Log -

#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = on
#log_checkpoints = off
#log_connections = off
#log_disconnections = off
#log_duration = off
#log_error_verbosity = default          # terse, default, or verbose messages
#log_hostname = off
#log_line_prefix = ''                   # special values:
                                        #   %a = application name
                                        #   %u = user name
                                        #   %d = database name
                                        #   %r = remote host and port
                                        #   %h = remote host
                                        #   %p = process ID
                                        #   %t = timestamp without milliseconds
                                        #   %m = timestamp with milliseconds
                                        #   %i = command tag
                                        #   %e = SQL state
                                        #   %c = session ID
                                        #   %l = session line number
                                        #   %s = session start timestamp
                                        #   %v = virtual transaction ID
                                        #   %x = transaction ID (0 if none)
                                        #   %q = stop here in non-session
                                        #        processes
                                        #   %% = '%'
                                        # e.g. '<%u%%%d> '
#log_lock_waits = off                   # log lock waits >= deadlock_timeout
#log_statement = 'none'                 # none, ddl, mod, all
#log_temp_files = -1                    # log temporary files equal or larger
                                        # than the specified size in kilobytes;
                                        # -1 disables, 0 logs all temp files
#log_timezone = unknown                 # actually, defaults to TZ environment
                                        # setting


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

# - Query/Index Statistics Collector -

#track_activities = on
#track_counts = on
#track_functions = none                 # none, pl, all
#track_activity_query_size = 1024       # (change requires restart)
#update_process_title = on
#stats_temp_directory = 'pg_stat_tmp'


# - 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 track_counts to also be on.
#log_autovacuum_min_duration = -1       # -1 disables, 0 logs all actions and
                                        # their durations, > 0 logs only
                                        # actions running at least this number
                                        # of milliseconds.
#autovacuum_max_workers = 3             # max number of autovacuum subprocesses
                                        # (change requires restart)
#autovacuum_naptime = 1min              # time between autovacuum runs
#autovacuum_vacuum_threshold = 50       # min number of row updates before
                                        # vacuum
#autovacuum_analyze_threshold = 50      # min number of row updates before
                                        # analyze
#autovacuum_vacuum_scale_factor = 0.2   # fraction of table size before vacuum
#autovacuum_analyze_scale_factor = 0.1  # fraction of table size before analyze
#autovacuum_freeze_max_age = 200000000  # maximum XID age before forced vacuum
                                        # (change requires restart)
#autovacuum_vacuum_cost_delay = 20ms    # default vacuum cost delay for
                                        # autovacuum, in milliseconds;
                                        # -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
#temp_tablespaces = ''                  # a list of tablespace names, '' uses
                                        # only default tablespace
#check_function_bodies = on
#default_transaction_isolation = 'read committed'
#default_transaction_read_only = off
#session_replication_role = 'origin'
#statement_timeout = 0                  # in milliseconds, 0 is disabled
#vacuum_freeze_min_age = 50000000
#vacuum_freeze_table_age = 150000000
#bytea_output = 'hex'                   # hex, escape
#xmlbinary = 'base64'
#xmloption = 'content'

# - Locale and Formatting -

datestyle = 'iso, dmy'
#intervalstyle = 'postgres'
#timezone = unknown                     # actually, defaults to TZ environment
                                        # setting
#timezone_abbreviations = 'Default'     # Select the set of available time zone
                                        # abbreviations.  Currently, there are
                                        #   Default
                                        #   Australia
                                        #   India
                                        # You can create your own file in
                                        # share/timezonesets/.
#extra_float_digits = 0                 # min -15, max 3
#client_encoding = sql_ascii            # actually, defaults to database
                                        # encoding

# These settings are initialized by initdb, but they can be changed.
lc_messages = 'ru_RU.UTF-8'                     # locale for system error messag                                                                           e
                                                # strings

lc_monetary = 'ru_RU.UTF-8'                     # locale for monetary formatting
lc_numeric = 'ru_RU.UTF-8'                      # locale for number formatting
lc_time = 'ru_RU.UTF-8'                         # locale for time formatting

# default configuration for text search
default_text_search_config = 'pg_catalog.russian'

# - Other Defaults -

#dynamic_library_path = '$libdir'
#local_preload_libraries = ''


#------------------------------------------------------------------------------
# LOCK MANAGEMENT
#------------------------------------------------------------------------------

#deadlock_timeout = 1s
max_locks_per_transaction = 150         # 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 PostgreSQL Versions -

#array_nulls = on
#backslash_quote = safe_encoding        # on, off, or safe_encoding
#default_with_oids = off
#escape_string_warning = on
#lo_compat_privileges = off
#sql_inheritance = on
#standard_conforming_strings = off
#synchronize_seqscans = on

# - Other Platforms and Clients -

#transform_null_equals = off


#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------

#custom_variable_classes = ''           # list of custom variable class names
Показать
20. dedtver 29.08.12 23:08 Сейчас в теме
Железо тоже - Xeon 2620 + Asus WS X79 + DDR 1333 16Гб + SSD OCZ 120 теперь Win2008 X64 + 1с X64 8.2.16 + MSSQL 2008 R2 x64 - 20 очков по тесту, работает в 10 раз лучше чем на POSTGRES. Но postgres бесплатный в этом его плюс. Надо крутить настройки postgresa - 20 очков такое железо обязано дать.
Настройки MSSQL 13000 гигов под скуль, все 12 ядер тоже.
21. volit 11.09.12 19:18 Сейчас в теме
22. xmolex 12 25.05.13 00:20 Сейчас в теме
А что за конфигурация у вас? При каких запросах тормозит? Сколько таблиц в pg базе, каков размер?
Вообще, в основном у всех узкое место - это запись, поэтому если сильные тормаза, то купите UPS и отключите fsync. Если отключить fsync нет возможности, то checkpoint_segments стоит увеличить.
Вообщем, дайте больше информации. pg тюнинговать нужно под каждую систему индивидуально.
23. aprk 18.06.13 15:39 Сейчас в теме
Господин Гилев уже все, что можно про PostreSQL и 1С написал, ищите в инете его статьи, там все подробненько написано.
24. supp 3 22.06.13 10:54 Сейчас в теме
2 aprk очень информативно, да. Особенно после фразы "тест Гилева" - вы посылаете читать его статьи. Никто наверное не читал?

Смотрю на результаты тестов и плачу. На Postgre выдавает 20, на файловой - 40. на MSSQL выдвавал 25-30.

Скоро буду на свежих версиях постгре тестить. Может на 8.3 попробую. Видимо в управляемые блокировки копать.
25. Hot_Serg 5 07.07.13 11:10 Сейчас в теме
На курсах говорили, что Postgres SQL для 1С надо только с сайта 1С, т.к. там уже заточено под 1С. На практике, даже MS SQL Express (бесплатный) быстрее ворочает, чем Postgres SQL.
26. dedtver 07.07.13 19:22 Сейчас в теме
Моя практика:
1 правильно настроенный Postgres работает так же хорошо, как и установленный по умолчанию mssql.
AlexandrIII; audion; +2 Ответить
27. AllexSoft 07.07.13 19:38 Сейчас в теме
правильно говорят, дело больше не в том что используете а в настройках.. а по поводу транзакций то конечно mssql ... если у вас 3 юзера работают, а база весит 10гиг то лучше postgres будет (в плане цена\качество)
28. ut11 2 18.09.13 11:54 Сейчас в теме
Коллеги, есть ли что-то новое по этой теме? "Серебрянная пуля" c настройками?
29. AllexSoft 18.09.13 14:23 Сейчас в теме
(28) ut11, нет и не будет... все очень индивидуально от конфигурации сервера, от размера базы, от того какой учет ведется в базе
30. audion 24.09.13 15:26 Сейчас в теме
Друзья, так может тогда совместными усилиями попробуем сформулировать хотя бы алгоритм настройки?
Ведь в сущности тут не так то и много параметров. Требования к железу многократно разжевывались, значит, можно ограничиться только PostgreSQL. Информации даже больше, чем надо, просто она в разных местах и ее слишком трудно выуживать. Что-то типа ФАКа надо, наверное.
И еще. Сейчас у большинства народу тестирование производительности - процесс скорее интуитивный. Запустили тест Гилева, посмотрели, чего-то поменяли, опять запустили, стало только хуже, вернули на обратно - вообще кошмар получился :-)
Может, подумаем, как же все-таки находить узкие места "домачными средствами", в смысле, штатными утилитами типа iostat или htop? В сущности, основные бутылочные горлышки - дисковая, ОЗУ и проц. А то очень часто люди просят готовое решение, даешь свои конфиги, пробуют, а потом обижаются - только хуже стало.
31. dimisa 135 14.11.13 17:47 Сейчас в теме
Народ подскажите скрипт копирования базы из одной в другую.
Надо на лету не выгоняя пользователей из рабочей базы копировать в копию.
32. audion 18.11.13 14:20 Сейчас в теме
(31) dimisa, дык эта, "элементарно, Ватсон" ;-):
su - postgres

pg_dump -Fc --clean somebase > /opt/backup/1cv82/somebase.out

createdb newbase

pg_restore -d newbase /opt/backup/1cv82/somebase.out

База создана, но 1с пока еще об этом не знает.

Идем в Пуск — Программы — 1С Предприятие 8.2 — Дополнительно — Администрирование серверов 1С Предприятия

Здесь нужно создать новую базу, где в строке База данных указать название вновь созданной ИБ (здесь я ее назвал newbase). И для контроля — не ставить псису на опции Создать, если база не существует. Существует, и еще как. Все, теперь можно добавлять путь к новой базе из меню клиента.

Добавлю: если база одна и та же, то придется, наверное, так (чтобы избежать лишних проблем):

pg_dump -Fc --clean somebase > /opt/backup/1cv82/somebase.out

dropdb newbase
createdb newbase

pg_restore -d newbase /opt/backup/1cv82/somebase.out

Ну и соответственно ничего прописывать уже не потребуется.
33. w-w-w-w-w- 16.09.15 17:38 Сейчас в теме
Вариант установки
Установка Postgres@Etersoft 9.2.4 (x86_64)- можно воспользоваться одной из сторонних сборок PgSQL с патчами 1С для Ubuntu 14.04.
Рассмотрим установку PostgreSQL@Etersoft 9.2.4.
Загрузите DEB-пакеты в каталог /usr/local/src (для хранения дистрибутивов сторонних программ рекомендуется использовать именно этот каталог3).
mkdir -p /usr/local/src/Etersoft/pgsql/9.2
cd /usr/local/src/Etersoft/pgsql/9.2
wget -c -r -np -nH --cut-dirs=7 "ftp://updates.etersoft.ru/pub/Etersoft/Postgres@Etersoft/9.2.4/x86_64/Ubuntu/14.04/*"
После того как пакеты скачались устанавливаем в систему
dpkg -i -R /usr/local/src/Etersoft/pgsql/9.2
PostgreSQL установлен . Далее надо произвести его настройку.
34. w-w-w-w-w- 16.09.15 18:08 Сейчас в теме
Настройка
Настройка PostgreSQL
Прежде чем проводить какие-либо операции с установленным PostgreSQL его в первую очередь необходимо проинициализировать с русской локалью. Это нужно для корректной работы внутренних механизмов 1С:
locale-gen en_US ru_RU ru_RU.UTF-8
export LANG="ru_RU.UTF-8"
service postgresql initlib
Обязательно удостоверьтесь, что кластер Postgresql был создан с русской локалью:
grep "ru_RU" /var/lib/postgresql/data/postgresql.conf
выхлоп должен быть таким
lc_messages = 'ru_RU.UTF-8' # locale for system error message
lc_monetary = 'ru_RU.UTF-8' # locale for monetary formatting
lc_numeric = 'ru_RU.UTF-8' # locale for number formatting
lc_time = 'ru_RU.UTF-8' # locale for time formatting
================
Настройте далее PostgreSQL для использования всех ресурсов сервера при помощи утилиты PGTUNE
# /var/lib/postgresql/data/postgresql.conf.orig
# pgtune -i /var/lib/postgresql/data/postgresql.conf.orig -o /var/lib/postgresql/data/postgresql.conf
# chown postgres:postgres /var/lib/postgresql/data/postgresql.conf
# - права рута
Настройте способ аутентификации MD5 в PostgreSQL. Для этого в файле /var/lib/postgresql/data/pg_hba.conf укажите метод md5:
local all all md5
host all all 0.0.0.0/0 md5
host all all ::1/128 md5
======================
Настройте автозагрузку
update-rc.d postgresql defaults
запустите рабочий экземпляр
service postgresql start

Удостоверьтесь, что PostgreSQL работает и демон postmaster слушает порт на внешнем интерфейсе
# netstat -tulpn | grep postmaster
Вывод команды должен быть таким
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 12162/postmaster
tcp6 0 0 :::5432 :::* LISTEN 12162/postmaster
Если это не так, внесите исправления в конфигурационный файл
/var/lib/postgresql/data/postgresql.conf
listen_addresses = '*'
port = 5432
Сделаем перезагрузку
service postgresql restart
Откройте входящий порт в брандмауэре IPTables.Делаем при помощи ufw:
ufw allow 5432 tcp
Осталось установить пароль для пользователя postgres
Так как мы до этого уже установили парольный ввод его надо отменить чтобы зайти без пароля
Настройте способ аутентификации MD5 в PostgreSQL. Для этого в файле
nano /var/lib/postgresql/data/pg_hba.conf
для local all all укажите метод trust:

# TYPE DATABASE USER ADDRESS METHOD
#local all all trust
local all all md5
host all all 0.0.0.0/0 md5
host all all ::1/128 md5

Перезапускаем Postgre:
/etc/init.d/postgresql restart


sudo -u postgres psql postgres
postgres=# postgres=#
postgres=# \password postgres
Введите новый пароль:
Повторите его:
postgres=# \q


psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD 'userpg'"
psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD 'password'"

Меняем trust на mp5, вместо пароля будет храниться хеш. Пароль поменяли

На это м всё.
35. w-w-w-w-w- 13.10.15 11:24 Сейчас в теме
В Postgres@Etersoft/9.2.4/x86_64/ есть ещё ошибка в библиотеке
fasttrun_OLD.so
Если версия PostreSQL 9.2.4 от etersoft,
то "Файл ругательства:
/usr/lib/x86_64-linux-gnu/postgresql/fasttrun.so"

Необходим патченный-вылеченный от ошибки и скомпилированный файл.
В любом случае исходный файл на сервере не удаляется, а переименовывается,
например в fasttrun_OLD.so, а вместо него выкладывается прикрепленный.
Так же обратите внимание на владельца-права этого нового файла,
чтобы были как у прежнего-оригинального, после замен.
Владелец
Sudo chmod u=rwx, go=rx fasttrun.so
Права
sudo chown root:root fasttrun.so
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)