Is ARM64 architecture officially supported ?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Is ARM64 architecture officially supported ?

Emilio Fernandes
Hola Tomcat community!

We consider using AWS Graviton [1] based instances which use ARM64
processors for our backend services.
I've googled around and found [2] saying that Tomcat is being tested on
ARM64 architecture at TravisCI! This is great!
Does this mean that Tomcat is officially supported on ARM64 ? I was not
able to find any specific documentation listing which platforms are
officially supported.

Does anyone from the community have any experience with Tomcat/HTTPD on
ARM64 in production ?

Gracias,
Emilio

1. https://aws.amazon.com/ec2/graviton/
2. https://tomcat.apache.org/ci.html#TravisCI
Reply | Threaded
Open this post in threaded view
|

Re: Is ARM64 architecture officially supported ?

Owen Rubel
I run tomcat on Armbian https://www.armbian.com/

Owen Rubel
[hidden email]


On Fri, Apr 17, 2020 at 4:14 AM Emilio Fernandes <
[hidden email]> wrote:

> Hola Tomcat community!
>
> We consider using AWS Graviton [1] based instances which use ARM64
> processors for our backend services.
> I've googled around and found [2] saying that Tomcat is being tested on
> ARM64 architecture at TravisCI! This is great!
> Does this mean that Tomcat is officially supported on ARM64 ? I was not
> able to find any specific documentation listing which platforms are
> officially supported.
>
> Does anyone from the community have any experience with Tomcat/HTTPD on
> ARM64 in production ?
>
> Gracias,
> Emilio
>
> 1. https://aws.amazon.com/ec2/graviton/
> 2. https://tomcat.apache.org/ci.html#TravisCI
>
Reply | Threaded
Open this post in threaded view
|

Re: Is ARM64 architecture officially supported ?

Mark Thomas-2
In reply to this post by Emilio Fernandes
On 17/04/2020 12:04, Emilio Fernandes wrote:
> Hola Tomcat community!
>
> We consider using AWS Graviton [1] based instances which use ARM64
> processors for our backend services.
> I've googled around and found [2] saying that Tomcat is being tested on
> ARM64 architecture at TravisCI! This is great!
> Does this mean that Tomcat is officially supported on ARM64 ? I was not
> able to find any specific documentation listing which platforms are
> officially supported.

Tomcat is supported on any certified Java runtime providing it meets the
minimum Java version requirements for the Tomcat version you are using.
There are no restrictions on hardware or operating system.

The more exotic the platform and/or operating system, the less likely
the developers will have access to a version for testing so platform
specific issues may be harder to track down.

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Is ARM64 architecture officially supported ?

Emilio Fernandes
Hi Mark,

Thank you for the answer!

El vie., 17 abr. 2020 a las 15:13, Mark Thomas (<[hidden email]>)
escribió:

> On 17/04/2020 12:04, Emilio Fernandes wrote:
> > Hola Tomcat community!
> >
> > We consider using AWS Graviton [1] based instances which use ARM64
> > processors for our backend services.
> > I've googled around and found [2] saying that Tomcat is being tested on
> > ARM64 architecture at TravisCI! This is great!
> > Does this mean that Tomcat is officially supported on ARM64 ? I was not
> > able to find any specific documentation listing which platforms are
> > officially supported.
>
> Tomcat is supported on any certified Java runtime providing it meets the
> minimum Java version requirements for the Tomcat version you are using.
> There are no restrictions on hardware or operating system.
>
>
Right, for Java based apps it just depends whether there is a JDK/JRE for
the CPU architecture.
What about the C based code - tcnative and the connectors (mod_jk) ?


> The more exotic the platform and/or operating system, the less likely
> the developers will have access to a version for testing so platform
> specific issues may be harder to track down.
>

At the moment ARM64 is still exotic on the server side but since cloud
providers (e.g. AWS and Huawei) started promoting it we think it might
become more popular in near future.

Gracias,
Emilio


> Mark
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Is ARM64 architecture officially supported ?

Mark Thomas-2
On 17/04/2020 13:36, Emilio Fernandes wrote:

<snip/>

> Right, for Java based apps it just depends whether there is a JDK/JRE for
> the CPU architecture.
> What about the C based code - tcnative and the connectors (mod_jk) ?

Generally, if httpd builds then mod_jk should build and my default
position would be that we should consider it a bug if it didn't. I guess
there might be an exception there but I can't think of one.

For tcnative, if APR builds and OpenSSL builds then tcnative should
build and, as above, I'd expect it to be a bug if it didn't.

>> The more exotic the platform and/or operating system, the less likely
>> the developers will have access to a version for testing so platform
>> specific issues may be harder to track down.
>
> At the moment ARM64 is still exotic on the server side but since cloud
> providers (e.g. AWS and Huawei) started promoting it we think it might
> become more popular in near future.

Those we can probably handle via the cloud providers. It is the
platforms that have more expensive hardware requirements that can be
tricky. If a committer a) has the time and b) works for a company that
happens to have a dev system they can test on then all is good. If not,
we have to get a little more creative. There is usually a way. I have,
in the past for example, ssh'd into a user's dev system to debug an
issue for them.

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Is ARM64 architecture officially supported ?

Martin Grigorov
In reply to this post by Emilio Fernandes
Hi Emilio,

On Fri, Apr 17, 2020 at 2:14 PM Emilio Fernandes <
[hidden email]> wrote:

> Hola Tomcat community!
>
> We consider using AWS Graviton [1] based instances which use ARM64
> processors for our backend services.
> I've googled around and found [2] saying that Tomcat is being tested on
> ARM64 architecture at TravisCI! This is great!
> Does this mean that Tomcat is officially supported on ARM64 ? I was not
> able to find any specific documentation listing which platforms are
> officially supported.
>
> Does anyone from the community have any experience with Tomcat/HTTPD on
> ARM64 in production ?
>

I work a lot with ARM64 servers lately!
So far we didn't face any issue related to ARM64 & Tomcat in our
application!
I've introduced the testing on TravisCI that you have found. In addition
for my daily job we have created a nightly test setup:
- build and test Tomcat 9.x (as at Travis)
- run some smoke tests with our application
- run some performance tests on x86_64 and ARM64 VMs with similar hardware
specs. The results for both architectures are very similar. One thing that
still bothers me is that the throughput on HTTPS is 3 times less than HTTP.
It must be something in our setup, I believe. The SSL handshake should
happen once per connection and then the connection should be reused with
keep-alive.
Once I feel more certain what is happening I will probably write a blog to
share our experience.

Regards,
Martin


>
> Gracias,
> Emilio
>
> 1. https://aws.amazon.com/ec2/graviton/
> 2. https://tomcat.apache.org/ci.html#TravisCI
>
Reply | Threaded
Open this post in threaded view
|

Re: Is ARM64 architecture officially supported ?

Michael Osipov
Am 2020-04-19 um 19:51 schrieb Martin Grigorov:

> Hi Emilio,
>
> On Fri, Apr 17, 2020 at 2:14 PM Emilio Fernandes <
> [hidden email]> wrote:
>
>> Hola Tomcat community!
>>
>> We consider using AWS Graviton [1] based instances which use ARM64
>> processors for our backend services.
>> I've googled around and found [2] saying that Tomcat is being tested on
>> ARM64 architecture at TravisCI! This is great!
>> Does this mean that Tomcat is officially supported on ARM64 ? I was not
>> able to find any specific documentation listing which platforms are
>> officially supported.
>>
>> Does anyone from the community have any experience with Tomcat/HTTPD on
>> ARM64 in production ?
>>
>
> I work a lot with ARM64 servers lately!
> So far we didn't face any issue related to ARM64 & Tomcat in our
> application!
> I've introduced the testing on TravisCI that you have found. In addition
> for my daily job we have created a nightly test setup:
> - build and test Tomcat 9.x (as at Travis)
> - run some smoke tests with our application
> - run some performance tests on x86_64 and ARM64 VMs with similar hardware
> specs. The results for both architectures are very similar. One thing that
> still bothers me is that the throughput on HTTPS is 3 times less than HTTP.

OpenSSL or SunJSSE?

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Is ARM64 architecture officially supported ?

Martin Grigorov
Hi Michael,

On Sun, Apr 19, 2020 at 9:08 PM Michael Osipov <[hidden email]> wrote:

> Am 2020-04-19 um 19:51 schrieb Martin Grigorov:
> > Hi Emilio,
> >
> > On Fri, Apr 17, 2020 at 2:14 PM Emilio Fernandes <
> > [hidden email]> wrote:
> >
> >> Hola Tomcat community!
> >>
> >> We consider using AWS Graviton [1] based instances which use ARM64
> >> processors for our backend services.
> >> I've googled around and found [2] saying that Tomcat is being tested on
> >> ARM64 architecture at TravisCI! This is great!
> >> Does this mean that Tomcat is officially supported on ARM64 ? I was not
> >> able to find any specific documentation listing which platforms are
> >> officially supported.
> >>
> >> Does anyone from the community have any experience with Tomcat/HTTPD on
> >> ARM64 in production ?
> >>
> >
> > I work a lot with ARM64 servers lately!
> > So far we didn't face any issue related to ARM64 & Tomcat in our
> > application!
> > I've introduced the testing on TravisCI that you have found. In addition
> > for my daily job we have created a nightly test setup:
> > - build and test Tomcat 9.x (as at Travis)
> > - run some smoke tests with our application
> > - run some performance tests on x86_64 and ARM64 VMs with similar
> hardware
> > specs. The results for both architectures are very similar. One thing
> that
> > still bothers me is that the throughput on HTTPS is 3 times less than
> HTTP.
>
> OpenSSL or SunJSSE?
>

Both.
With OpenSSL it is slightly faster than with JSSE, but again around 3 times
slower than HTTP.

Here are some details:
Tomcat: 9.x nightly build
tcnative: nightly build from master branch
JDK: AdoptJDK 14
OpenSSL 1.1.1  11 Sep 2018 (this comes from Ubuntu 18.04 repos. I will try
with a newer build)
JMeter: 5.2.1
The application is Spring Boot 2.2.6 with REST GET/PUT/POST/DELETE
endpoints that simply sets/gets data to/from Memcached. No usage of Spring
Security! No redirects from HTTP to HTTPS!

Let me know if you need more information!
Reply | Threaded
Open this post in threaded view
|

Re: Is ARM64 architecture officially supported ?

Christopher Schultz-2
Martin,

On 4/20/20 03:28, Martin Grigorov wrote:

> Hi Michael,
>
> On Sun, Apr 19, 2020 at 9:08 PM Michael Osipov <[hidden email]> wrote:
>
>> Am 2020-04-19 um 19:51 schrieb Martin Grigorov:
>>> Hi Emilio,
>>>
>>> On Fri, Apr 17, 2020 at 2:14 PM Emilio Fernandes <
>>> [hidden email]> wrote:
>>>
>>>> Hola Tomcat community!
>>>>
>>>> We consider using AWS Graviton [1] based instances which use ARM64
>>>> processors for our backend services.
>>>> I've googled around and found [2] saying that Tomcat is being tested on
>>>> ARM64 architecture at TravisCI! This is great!
>>>> Does this mean that Tomcat is officially supported on ARM64 ? I was not
>>>> able to find any specific documentation listing which platforms are
>>>> officially supported.
>>>>
>>>> Does anyone from the community have any experience with Tomcat/HTTPD on
>>>> ARM64 in production ?
>>>>
>>>
>>> I work a lot with ARM64 servers lately!
>>> So far we didn't face any issue related to ARM64 & Tomcat in our
>>> application!
>>> I've introduced the testing on TravisCI that you have found. In addition
>>> for my daily job we have created a nightly test setup:
>>> - build and test Tomcat 9.x (as at Travis)
>>> - run some smoke tests with our application
>>> - run some performance tests on x86_64 and ARM64 VMs with similar
>> hardware
>>> specs. The results for both architectures are very similar. One thing
>> that
>>> still bothers me is that the throughput on HTTPS is 3 times less than
>> HTTP.
>>
>> OpenSSL or SunJSSE?
>>
>
> Both.
> With OpenSSL it is slightly faster than with JSSE, but again around 3 times
> slower than HTTP.
>
> Here are some details:
> Tomcat: 9.x nightly build
> tcnative: nightly build from master branch
> JDK: AdoptJDK 14
> OpenSSL 1.1.1  11 Sep 2018 (this comes from Ubuntu 18.04 repos. I will try
> with a newer build)
> JMeter: 5.2.1
> The application is Spring Boot 2.2.6 with REST GET/PUT/POST/DELETE
> endpoints that simply sets/gets data to/from Memcached. No usage of Spring
> Security! No redirects from HTTP to HTTPS!
>
> Let me know if you need more information!

Coming back to this almost a year later. :)

My guess about the TLS performance is that your x86 chips have built-in
hardware support for crypto primitives used by the cipher suite(s) you
are testing, and your ARM64 chips do not.

Either that, or neither OpenSSL nor Java are able to use those ARM64
hardware features because they are not aware of them (yet, I would guess).

You would have to get the specs of the chips to find out whether
hardware acceleration is even a possibility, and then approach the
crypto providers (e.g. Oracle, OpenSSL) with questions about how to
enable those hardware-supported routines.

-chris

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Is ARM64 architecture officially supported ?

Martin Grigorov
Hi Chris,

On Thu, Feb 11, 2021 at 12:13 AM Christopher Schultz <
[hidden email]> wrote:

> Martin,
>
> On 4/20/20 03:28, Martin Grigorov wrote:
> > Hi Michael,
> >
> > On Sun, Apr 19, 2020 at 9:08 PM Michael Osipov <[hidden email]>
> wrote:
> >
> >> Am 2020-04-19 um 19:51 schrieb Martin Grigorov:
> >>> Hi Emilio,
> >>>
> >>> On Fri, Apr 17, 2020 at 2:14 PM Emilio Fernandes <
> >>> [hidden email]> wrote:
> >>>
> >>>> Hola Tomcat community!
> >>>>
> >>>> We consider using AWS Graviton [1] based instances which use ARM64
> >>>> processors for our backend services.
> >>>> I've googled around and found [2] saying that Tomcat is being tested
> on
> >>>> ARM64 architecture at TravisCI! This is great!
> >>>> Does this mean that Tomcat is officially supported on ARM64 ? I was
> not
> >>>> able to find any specific documentation listing which platforms are
> >>>> officially supported.
> >>>>
> >>>> Does anyone from the community have any experience with Tomcat/HTTPD
> on
> >>>> ARM64 in production ?
> >>>>
> >>>
> >>> I work a lot with ARM64 servers lately!
> >>> So far we didn't face any issue related to ARM64 & Tomcat in our
> >>> application!
> >>> I've introduced the testing on TravisCI that you have found. In
> addition
> >>> for my daily job we have created a nightly test setup:
> >>> - build and test Tomcat 9.x (as at Travis)
> >>> - run some smoke tests with our application
> >>> - run some performance tests on x86_64 and ARM64 VMs with similar
> >> hardware
> >>> specs. The results for both architectures are very similar. One thing
> >> that
> >>> still bothers me is that the throughput on HTTPS is 3 times less than
> >> HTTP.
> >>
> >> OpenSSL or SunJSSE?
> >>
> >
> > Both.
> > With OpenSSL it is slightly faster than with JSSE, but again around 3
> times
> > slower than HTTP.
> >
> > Here are some details:
> > Tomcat: 9.x nightly build
> > tcnative: nightly build from master branch
> > JDK: AdoptJDK 14
> > OpenSSL 1.1.1  11 Sep 2018 (this comes from Ubuntu 18.04 repos. I will
> try
> > with a newer build)
> > JMeter: 5.2.1
> > The application is Spring Boot 2.2.6 with REST GET/PUT/POST/DELETE
> > endpoints that simply sets/gets data to/from Memcached. No usage of
> Spring
> > Security! No redirects from HTTP to HTTPS!
> >
> > Let me know if you need more information!
>
> Coming back to this almost a year later. :)
>

Thanks for doing it! I've forgot to update this thread with the problem and
the solution!


>
> My guess about the TLS performance is that your x86 chips have built-in
> hardware support for crypto primitives used by the cipher suite(s) you
> are testing, and your ARM64 chips do not.
>
> Either that, or neither OpenSSL nor Java are able to use those ARM64
> hardware features because they are not aware of them (yet, I would guess).
>
> You would have to get the specs of the chips to find out whether
> hardware acceleration is even a possibility, and then approach the
> crypto providers (e.g. Oracle, OpenSSL) with questions about how to
> enable those hardware-supported routines.
>

At the end the problem was in Apache JMeter 5.2.1 - the tool I used for the
load testing back then.
As I expained here
<https://martin-grigorov.medium.com/compare-apache-tomcat-performance-on-x86-64-and-arm64-cpu-architectures-aacfbb0b5bb6>
one needs to add  --jmeterproperty
httpclient4.validate_after_inactivity=4900 and --jmeterproperty
httpclient4.time_to_live=120000 to JMeter properties, otherwise it was
closing the connection and due to the TLS handshakes it was giving terrible
results. Those settings are default in JMeter 5.3.0+.

Apart from that there is also https://github.com/kunpengcompute/KAE for
HiSilicon/Kunpeng chips, to get even more from OpenSSL on this hardware.

Martin


>
> -chris
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>