Plone 更具交互性的ZODB打包
当前的ZMI管理“包数据库”功能有点粗糙 1) 是否有可能为web UI提供某种进度指示器?例如,告知剩余多少分钟/小时,至少给出某种估算 2) ZODB包装如何影响现场的响应度?是否所有交易都被阻止 3) 是否有任何带有进度指示器的命令行脚本可用,以便您可以从ZEO命令行客户端执行此操作Plone 更具交互性的ZODB打包,plone,zope,packing,zodb,Plone,Zope,Packing,Zodb,当前的ZMI管理“包数据库”功能有点粗糙 1) 是否有可能为web UI提供某种进度指示器?例如,告知剩余多少分钟/小时,至少给出某种估算 2) ZODB包装如何影响现场的响应度?是否所有交易都被阻止 3) 是否有任何带有进度指示器的命令行脚本可用,以便您可以从ZEO命令行客户端执行此操作 4) 至少要注销输出的某种日志标记。。。[信息]完成30%。。。3:15出发这不是一个问题,而是一个功能请求。由于ZMI是Zope 2特有的功能,因此应该在输入,或者更好,因为ZMI是Zope 2特有的功能。
4) 至少要注销输出的某种日志标记。。。[信息]完成30%。。。3:15出发这不是一个问题,而是一个功能请求。由于ZMI是Zope 2特有的功能,因此应该在输入,或者更好,因为ZMI是Zope 2特有的功能。1)没有这样的指标,可能很难实现(我希望通过Zope日志系统至少看到一些进度指标) 2) 未阻塞,但根据打包阶段,您可能会看到高IO和CPU使用率 3) 没有
4) 否建议对大型站点进行打包的方法是在专用于此类任务的单独ZEO实例上运行它,而这根本不侦听http请求 这也将消除对所需任何功能的需求。 ZODB文件存储打包是将数据从一个文件选择性复制到另一个文件的过程(仅限于比指定时间“年轻”的事务)。在开始复制之前,内存中会建立一些软索引,以帮助进行复制。因此,整个ZODB包装包含以下步骤:
top
,vmstat
/dstat
,监视ls-la var/filestorage
来监视流程
正如Geir所提到的,您可以拥有专门用于打包的单独ZEO客户端。这是合理的,因为在打包完成之前,您从阻塞调用打包的线程。现在,如果您使用ZEO,就没有必要这样做。ZEO服务器提供了直接连接到ZEO(无需专用ZEO客户端)并启动文件存储打包的zeopack
实用程序。好处之一是不需要密码,只需要适当的权限即可访问ZEO控制套接字
包装进度
由于打包是由ZEO服务器(甚至不是服务器而是文件存储本身)执行的,所以将进度正确地传递给ZEO客户端的可能性是有限的。ZEO协议的设计目的不是传递这种类型的信息
IMHO文件存储本身在通过日志文件进行通信时可能会更加详细。我们可以在这方面取得一些进展。如果您觉得需要进度指示器,那么您可以设计某种反馈通道,通过日志记录模块返回到ZEO client/Zope实例,以便与浏览器通信
包装时的性能
由于文件存储打包是相当密集的磁盘操作,它减少了磁盘子系统的吞吐量。此外,它还可以删除磁盘缓存(在文件存储较大的情况下),即使在打包完成后也会影响磁盘性能,因为缓存应该重新预热。可能会延长打包时间但对文件存储中的系统影响较小的改进包括:
- 恢复到直接操作(不接触文件缓存)
- 减少执行打包的线程的磁盘调度优先级(
Linux上)ionice
- 节流填料速度