【发布时间】:2013-12-04 03:35:28
【问题描述】:
我正在 IBM WebSphere Application Server v8.5.5.1 中执行一个长时间运行的批处理,它从 ECM 存储库获取数据,然后将其转换为 PDF 文档。它运行大约 20k 个小文档,构成整个批次。
现在我的速度约为 20 文档/秒,但系统的 CPU 使用率只有 45-55%,所以有些东西阻止我让它全速工作
我在 HP Proliant DL385p Gen8 上运行 Windows 2012 R2 Standard(32GB RAM,2 个 AMD Opteron 6272,每个具有 16 个 2.1GHz 内核)
所有资源都存储在本地,因此几乎不会影响网络流量。
我也尝试将 PDF 输出文档写入 RAMDISK,但完全没有改进。
我应该从哪里偷看让这个进程使用我的服务器的全部功能?
谢谢!!
PS:请看附件图片
【问题讨论】:
-
如果我没记错的话,47% 的 CPU 使用率意味着 16 个核心中有 8 个处于全速运转状态。代码线程是否正确?
-
我实际上是在使用 ThreadPoolExecutor(64 个线程池大小)对进程进行多线程处理。在我看来,它只使用了 1 个 CPU,但 Java 应该跨越所有可用的 CPU,我说得对吗?
-
您可能应该查看资源监视器并确保您的瓶颈不在硬盘驱动器或网络上。在我看来,这种活动很快就会被 I/O 阻止。
-
Peek,我已经查看了网络和 HDD,但它们没有显示百分比使用情况,这就是我什至尝试 RAMDISK 方法的原因。有什么建议吗?
-
我会建议使用线程数并找出测试 I/O 饱和度的方法。
标签: java performance websphere windows-server-2012-r2