Skip to content
Advertisement

JAX WS Server implementation performance issue for Linux JVM?

I’ve faced with a very weird problem. The built-in JAX WS server implementation works 100 times slower on linux machines then on Mac OS X or Windows.

I’ve created and shared a JMH test: https://github.com/Andremoniy/linuxjvmjaxwstest

Basically it does the following:

  • starts a JAX WS with one SOAP method:

    endpoint = Endpoint.publish(“http://localhost:8888/“, new FooServiceImpl());

  • performs client requests to this method:

    String result = state.client.foo(state.foo);

On Mac OS X with 2 Cores Intel Core i7 it gives me:

JavaScript

The same machine, docker without CPU limitations:

JavaScript

I’ve tried docker openjdk:8u151 as well as OracleJava. I’ve also tried to run it on VirtualBox Ubuntu 16.04, on AWS EC2 Ubuntu instance – on linux machines it is always around ~20 ops/s.

But when I change server implementation to Jetty:

JavaScript

the difference between performance on linux and other OS’s disappears. That means that there is some bug in builtin HTTP Server implementation for JRE/OpenJDK for Linux. Or am I missing something?

Advertisement

Answer

This was admitted as a bug by the Java Developer Support team:

https://bugs.openjdk.java.net/browse/JDK-8193236

User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement