导出多个用户会导致 CPU 和 I/O 使用率过高。我可以使用资源管理器减轻 CPU 使用的影响,并将导出会话设置为低优先级组,但是如何限制磁盘 I/O?我没有并行运行该操作,并且已经阅读了 Oracle 的数据泵性能文档。还有什么我可以做的吗?
这是在 Windows 2008 R2 x64 上。
导出多个用户会导致 CPU 和 I/O 使用率过高。我可以使用资源管理器减轻 CPU 使用的影响,并将导出会话设置为低优先级组,但是如何限制磁盘 I/O?我没有并行运行该操作,并且已经阅读了 Oracle 的数据泵性能文档。还有什么我可以做的吗?
这是在 Windows 2008 R2 x64 上。
通过网络发送
虽然广泛的搜索没有发现本地限制磁盘 io 的方法(并且 serverFault 可能会对此有更多详细信息),但限制 IO 的“自然”方式是直接通过网络发送输出而不接触本地磁盘。然后,这允许您利用所有网络 IO 限制资源。(如果你真的想偷偷摸摸,尝试在本地机器上设置网络资源,但这可能是一个过于可爱的解决方案。)
解调数据泵
文档列出了许多提高数据泵性能的方法,包括对 SGA 的建议更改,以及有关加密和压缩的注意事项。通过颠倒这个建议,尤其是关于压缩和 SGA 的建议,然后限制 CPU 使用,IO 使用可能会因此而减少。
我的问题原来是在开始写入导出文件之前导出的初始阶段。我从 11.2.0.1 升级到 11.2.0.2,切换到统计估计并将方法限制到最低资源管理器组,这似乎解决了问题。这个问题的其他答案可能对其他人有用。