【问题标题】:Java heap space error when migrating to Visual Studio Online using OpsHub Migration Tool使用 OpsHub 迁移工具迁移到 Visual Studio Online 时出现 Java 堆空间错误
【发布时间】:2014-07-07 18:47:47
【问题描述】:

我正在尝试使用 OpsHub 迁移工具将我们的源代码导入 Visual Studio Online。在迁移的中途,进度页面指示发生错误并且迁移已停止,但进程仍在继续运行(即 - 迁移状态仍然显示它正在运行,进程管理器指示 opshubtfsservice 仍在完成工作。 exe进程)。

如果我单击错误消息中的超链接,它会打开一个弹出对话框,指示存在某种 Java 堆空间错误。仔细观察正在运行的进程,我可以看到 Java.exe 进程正在使用超过 2GB 的 RAM。我在具有 16GB RAM 和大量可用磁盘空间的 Windows 7 x64 机器上运行迁移工具。源服务器正在运行 TFS 2013。

我现在已经运行了几次该工具,并且在迁移过程中的同一时间遇到了同样的问题(xxxx/yyyy Chaageset(s)/Label(s) 已通过)。它似乎没有达到 xxxx+1/yyyy,但也许我只需要让它运行更长时间,因为它可能会咀嚼某种大型变更集。

关于如何或是否有可能通过此错误的任何建议?我应该对此感到担忧,还是顺其自然,看看如果让这个过程继续下去会发生什么?

【问题讨论】:

    标签: azure-devops opshub


    【解决方案1】:

    默认情况下,迁移实用程序仅限使用 2GB 内存。

    请按照以下步骤让它使用更多内存。

    1) 关闭应用程序

    2) 进入\OpsHub Visual Studio Online Migration Utility\OpsHubServer6.0.16\bin(安装盘可能是:C:\Program Files)

    3) 在记事本中打开 service.bat。找到以下字符串“-Xmx2048m”。将 -Xmx2048m 替换为 -Xmx4096m(或最大内存大小的适当数字)

    4) 保存文件

    5) 在同一个文件夹中

    以管理员身份运行 unregisterservice.bat (这将取消注册 OpsHub 服务。通过打开 services.msc 验证不会有“OpsHub Visual Studio Online Migration Utility”服务)

    以管理员身份运行 registerservice.bat(这将注册 OpsHub 服务。通过打开 services.msc 进行验证,将会有“OpsHub Visual Studio Online Migration Utility”服务“自动”启动类型)

    6) 打开services.msc,右击“OpsHub Visual Studio Online Migration Utility”,点击属性,选择启动类型“手动”点击“应用”

    7) 启动现在将使用 4096m 内存 (4 GB) 或步骤 3 中指定的任何数量的应用程序

    【讨论】:

    • 这似乎确实有帮助。由于内存已用完,我又进行了几次失败的尝试。我现在已将该过程设置为允许使用多达 14GB 的 RAM。该进程仍在运行,但 java.exe 现在的工作集大小为 13.3 GB,并且该进程运行得很慢。我今天只完成了大约 20 个变更集,还有 600 个要完成。交叉手指说它会加快速度并完成,但根据当前的速率和内存使用情况,感觉可能有点牵强。
    • 无法迁移我们的代码。我正在迁移的代码库非常大,但自 1 月(6 个月)以来我们只在现场使用 TFS,而且我们只积累了超过 4000 个变更集。迁移进行得如此缓慢,以至于需要数天甚至数周才能完成。这是假设当工具内存不足时我就在那里。即使设置使用 14GB 的 RAM,该过程仍然失败,并出现与内存相关的错误。看起来我们将丢失历史记录,只需从 TFS 树的顶端将所有内容检入 VSO。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多