Настройка RelStorage и параметров PostgreSQL на сайте Plone

Я много раз получал ошибку POSKeyError. Я думаю, что нашей настройке недостаточно параметров PostgreSQL. Потому что система изменила хранилище от MySQL до PostgreSQL. Я получил ошибку много раз перед ченгингом.

Пожалуйста, дайте мне знать конкретные настройки или любые моменты.

Используя версию:

  • Plone 4.3.1
  • RelStorage 1.5.1 с PostgreSQL на RDS, AWS
  • shared-blob-dir true (хранится в файловой системе)
  • Plone Quick Upload 1.8.2

1 ответ

Решение

Вот некоторые настройки PostgreSQL в postgresql.conf:

# shared_buffers and effective_cache_size should be 30%-50%
# of your machine free memory

shared_buffers = 3GB
effective_cache_size = 2GB
checkpoint_segments = 64
checkpoint_timeout = 1h
max_locks_per_transaction = 512
max_pred_locks_per_transaction = 512

# If you know what you're doing you can uncomment and adjust the following values

#cpu_tuple_cost = 0.0030
#cpu_index_tuple_cost = 0.0001
#cpu_operator_cost = 0.0005

И вот они объяснили Йенс В. Кляйн:

  1. самое важное: shared_buffers = 3 ГБ (установите 30%-50% свободной памяти вашей машины)
  2. checkpoint_segments = 64,
  3. checkpoint_timeout = 1 ч (уменьшает затраты на регистрацию)
  4. max_locks_per_transaction = 512,
  5. max_pred_locks_per_transaction = 512 (для relstorage их много)
  6. ffective_cache_size = 4 ГБ (отрегулируйте до ~50% вашей памяти)
  7. просто для импорта вы можете отключить fsync в конфиге, тогда это должно быть очень быстро, но не выключайте машину
  8. Твики процессора. Мы не трогали значения по умолчанию для них, но если вы знаете, что делаете, сделайте это. Ниже приведены некоторые рекомендуемые значения:
    • cpu_tuple_cost = 0,0030,
    • cpu_index_tuple_cost = 0,001,
    • cpu_operator_cost = 0.0005 (оптимизация планирования запросов, значения по умолчанию - несколько лет, поэтому текущий процессор быстрее, это более точные оценки, но я не знаю, как получить здесь "реальные" значения)

Вам также следует прочитать https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server

И вот наш buildout.cfg:

[instance1]
recipe = plone.recipe.zope2instance
rel-storage =
  type postgresql
  host 10.11.12.13
  dbname datafs
  user zope
  password secret
  blob-dir /var/sharedblobstorage/blobs
  blob-cache-size 350MB
  poll-interval 0
  cache-servers 10.11.12.14:11211
  cache-prefix datafs
Другие вопросы по тегам