在Plone站点上调整RelStorage和PostgreSQL的参数

时间:2015-11-24 05:20:12

标签: postgresql plone zodb relstorage

我多次遇到POSKeyError错误。我认为我们的设置不够PostgreSQL的参数。因为系统将存储从MySQL迁移到PostgreSQL。在翻唱之前,我多次得到错误。

请让我知道具体设置或任何要点。

使用版本:

  • Plone 4.3.1
  • 在RDS上使用PostgreSQL的RelStorage 1.5.1,AWS
  • shared-blob-dir true(存储在文件系统中)
  • Plone快速上传1.8.2

1 个答案:

答案 0 :(得分:4)

以下是 postgresql.conf 中的一些PostgreSQL调整:

# 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

以下是Jens W. Klein的解释:

  1. 最重要: shared_buffers = 3GB(将其设置为您的30%-50%) 机器免费记忆)
  2. checkpoint_segments = 64,
  3. checkpoint_timeout = 1h(减少记录开销)
  4. max_locks_per_transaction = 512,
  5. max_pred_locks_per_transaction = 512(relstorage需要很多)
  6. effective_cache_size = 4GB(调整到〜50%的内存)
  7. 只是为了导入你可以在配置中禁用 fsync ,那么它应该非常快,但不要关闭机器
  8. CPU调整。我们没有触及这些的默认值,但是如果你 知道你在做什么,去吧。贝娄是推荐的一些 值:
    • cpu_tuple_cost = 0.0030,
    • cpu_index_tuple_cost = 0.001,
    • cpu_operator_cost = 0.0005(查询计划优化,默认值是一年之久,因此当前cpus更快,这些是更好的估算,但我不知道如何获得“真实”值)
  9. 您还应该阅读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