ZODB FileStorage打包是将数据从一个文件选择性复制到另一个文件的过程(只有"年轻"然后指定年龄的事务).在此复制开始之前,一些软索引构建在内存中以帮助处理.因此整个ZODB包装包含以下步骤:
我通常通过监测相结合的过程中top
,vmstat
/ dstat
,watch ls -la var/filestorage
.
正如Geir所说,您可以拥有专门用于包装的独立ZEO客户端.这是合理的,因为你调用的封装从封锁到打包完成.现在没有必要使用ZEO.ZEO服务器提供zeopack
直接连接到ZEO的实用程序(不需要专用的ZEO客户端)并启动FileStorage打包.其中一个好处是不需要密码,只需要适当的权限来访问ZEO控件套接字.
由于ZEO服务器(甚至不是服务器而是FileStorage本身)执行打包,因此限制了向ZEO客户端正确通信进度的可能性.ZEO协议不是为了传达这种类型的信息而设计的.
IMHO FileStorage本身在通过日志文件进行通信时可能会更加冗长.可以建立一些进展.如果你觉得需要进度指示器,那么你可以通过记录模块设计某种反馈通道回ZEO-client/Zope-instance回传给浏览器.
由于FileStorage打包是非常密集的磁盘操作,因此会降低磁盘子系统的吞吐量.此外,它还会清除磁盘缓存(在FileStorage较大的情况下),即使在打包完成后也会影响磁盘性能,因为缓存应该再次预热.可能的改进导致更长的打包时间,但对FileStorage中的系统影响较小的是:
O_DIRECT
操作(不触摸文件缓存)ionice
执行打包的线程的磁盘调度优先级(在Linux上) 归档时间: |
|
查看次数: |
590 次 |
最近记录: |