Plone 我的服务器有可用内存,但我的zope进程似乎是;“封顶”;3GB。增加缓存大小不再有用了

Plone 我的服务器有可用内存,但我的zope进程似乎是;“封顶”;3GB。增加缓存大小不再有用了,plone,zope,Plone,Zope,下面的屏幕截图显示了我的zope实例的缓存相关状态随时间的变化(到目前为止已有3个月) 在此期间,我们将缓存大小增加了几倍,从3000一直增加到6000000。除了最近的一个亮点外,我们已经达到了3000万的上限(不确定这是什么参数)(参见“按年”图表)。这发生在缓存大小约1000000的情况下,此后,对缓存大小的更改似乎对zope的缓存对象或内存使用没有影响 zope/plone进程从使用大约500MB的内存转变为使用3GB的内存(此服务器上有8GB) 我所期望的是,向上滑动缓存大小将允许zo

下面的屏幕截图显示了我的zope实例的缓存相关状态随时间的变化(到目前为止已有3个月)

在此期间,我们将缓存大小增加了几倍,从3000一直增加到6000000。除了最近的一个亮点外,我们已经达到了3000万的上限(不确定这是什么参数)(参见“按年”图表)。这发生在缓存大小约1000000的情况下,此后,对缓存大小的更改似乎对zope的缓存对象或内存使用没有影响

zope/plone进程从使用大约500MB的内存转变为使用3GB的内存(此服务器上有8GB)

我所期望的是,向上滑动缓存大小将允许zope利用更多的可用服务器内存,但它被限制在3GB(服务器上可能有8GB)

是否有另一种设置可能会“限制”3GB的容量


猜测一下,您的操作系统限制了每个进程的内存大小

在bashshell中,检查
ulimit-v
,查看是否设置了虚拟内存限制。有关该命令的完整选项列表,请参见
manbash


有关如何使用
ulimit
的更多信息,请参阅。我不知道服务器的内存发生了什么问题,但您的做法是错误的:内存中不能有600万个对象,这是不可能的:在Plone 4.x中的典型安装上,您应该需要介于50 GB150 GB之间的内存

为了解决这个问题,我们需要更多的信息:您使用的是哪种Plone版本?您的数据库中有多少个对象?多少线?您的服务器的体系结构是什么,32位还是64位

其次,确保安装最新版本的插件,以收集有关服务器的可靠信息(Leo Rochael的帽子提示)

第三,阅读以了解如何为缓存大小计算更真实的数字(Hanno Schlichting的帽子提示)

第四,慢慢增加数字,花时间监测结果;检查内存中的对象总数,并不惜任何代价避免内存交换。如果看到对象数低于目标值,则可以停止增加缓存大小。记住:你永远不会把所有的对象都存储在内存中,这相当困难,因为人们往往只访问你内容的一部分

第五,如果您正在进行Plone 4.x测试(在投入生产之前在一台临时服务器上),这将进一步减少您的内存消耗多达40%(有人告诉我它现在在Plone 3.x中也可以工作,但我没有亲自检查)

第六,在网上分享你的结果


晚安,祝你好运

32位平台——不知道是否仅限于Intel——每个进程的容量限制为3GB。这是因为每个进程最多只能寻址4GB,而底层1GB由内核使用。当然,PAE允许您访问高达64GB的数据,但您在这里遇到的每个进程都有一定的限制。你真的不能再在32位平台上运行高流量的plone站点了。通常,最简单的解决方案是将操作系统升级到64位版本,因为除非您拥有非常古老的硬件,否则它应该已经能够运行x86-64。

您确定您的操作系统不限制每个进程的内存大小吗?这是一个非常好的想法。。。将对此进行研究,特别是因为内存使用率图表一直限制在3GB,几乎没有变化。如果您有8GB,为什么不先添加更多的zeo客户端,而不是尝试让一个客户端占用所有内存。此外,很有可能你的站点上没有足够的对象来填满你想要消耗的全部8GB内存。这是32位平台上的Plone 2.5.5,非常旧。那么,这是最糟糕的;减少对象的数量。如果我切换到64位平台呢?看ulimit-v返回“unlimited”。根据其他研究,我发现32位平台上存在硬限制(此处讨论:)