Java菜鸟在这里。
使用以下 java.exe 进程运行 Selenium Grid 时,我看到“奇怪”的内存行为。
java.exe -jar selenium-grid.jar -role hub -port 84 -timeout 100
任务管理器中的“私有字节”指标以大约 100 MB/分钟的速度缓慢上升,直到达到令人担忧的大小(>20 GB!)。
我还没有确定它是否真的引起了问题。我只是怀疑健康的过程没有那么大。我附加了 YourKit 分析器,看到一个非常健康的堆在 < 350 MB 1处徘徊。
YourKit 允许我在 JVM 内部强制执行 GC 操作,所以我选择了它,“私有字节”从 20 GB 下降到 ~500 MB。所以没有泄漏或任何东西。
我做了一些关于 GC 设置的阅读,并开始使用 -Xmx 和 -Xincgc 并得到一些稍微不同的行为,但我总是以这个经历巨大 GC 操作的巨大过程结束。我团队中的一些人认为这会降低可靠性,但我目前没有任何因果数据。
所以我出于好奇发帖。有人用自定义的 GC 设置运行 Selenium Grid 吗?GC 专家——这里有什么想法——这有什么不健康的吗?
- Windows Server 2012 数据中心
- 32 GB RAM,带 Xeon 2x L5640 2.27GHz
- JRE SE 7 U9
- Selenium WebDriver 2.31.0.0