如何在多处理器机器上从 JavaEE 服务器获得最大性能?
How to get maximum performance from a JavaEE server on a multi processor machine?
我的服务器有 8 个处理器、16 个线程(Intel Xeon E5 E5-2630v3)和 64GB 内存。我想从我的服务器获得最大性能。
我想在 Java 上编写一个上传服务器,它将接受视频文件、存储在远程存储中并将作业放入队列中以处理视频文件。但问题是我不知道 JavaEE 如何使用处理器。如果我 运行 一个 java 服务器,它会使用 8 个处理器还是只使用 1 个?
我需要平衡所有处理器之间的工作量。像这样:
如果我同时有 10 个上传,那么每个处理器将有 1 或 2 个保存任务。
如果我同时有 100 个上传,那么每个处理器将有 12 或 13 个保存任务。
如何正确 运行 Java tomcat 上的 EE 实例以获得多处理器服务器的最大性能?在 tomcat 上 运行 一个 JEE 项目实例还是 运行 16 个虚拟机每个 JEE 实例更好?
操作系统应负责跨所有可用处理器和线程调度作业。 Tomcat 或任何其他服务器无需配置为使用多个处理器。
虽然,服务器上的代码 运行 可以使用专为利用多核系统而设计的最新 java API 来实现。
一些参考资料(未测试)
https://dzone.com/articles/building-multi-core-ready-java
http://www.theregister.co.uk/2014/03/20/java_8_security_multi_core/
我的服务器有 8 个处理器、16 个线程(Intel Xeon E5 E5-2630v3)和 64GB 内存。我想从我的服务器获得最大性能。
我想在 Java 上编写一个上传服务器,它将接受视频文件、存储在远程存储中并将作业放入队列中以处理视频文件。但问题是我不知道 JavaEE 如何使用处理器。如果我 运行 一个 java 服务器,它会使用 8 个处理器还是只使用 1 个?
我需要平衡所有处理器之间的工作量。像这样:
如果我同时有 10 个上传,那么每个处理器将有 1 或 2 个保存任务。
如果我同时有 100 个上传,那么每个处理器将有 12 或 13 个保存任务。
如何正确 运行 Java tomcat 上的 EE 实例以获得多处理器服务器的最大性能?在 tomcat 上 运行 一个 JEE 项目实例还是 运行 16 个虚拟机每个 JEE 实例更好?
操作系统应负责跨所有可用处理器和线程调度作业。 Tomcat 或任何其他服务器无需配置为使用多个处理器。 虽然,服务器上的代码 运行 可以使用专为利用多核系统而设计的最新 java API 来实现。 一些参考资料(未测试) https://dzone.com/articles/building-multi-core-ready-java http://www.theregister.co.uk/2014/03/20/java_8_security_multi_core/