Most popular application servers

March 14, 2013 by Vladimir Šor

This is the second post in the series where we publish statistical data about the Java installations. The used dataset originates from free Plumbr installations out there totalling 1,024 different environments we have collected during the past six months.

First post in the series analyzed the foundation – on what OS the JVM is run, whether it is a 32 or 64-bit infrastructure and what JVM vendor and version were used. In this post we are going to focus on the application servers used.

It proved to be a bit more challenging task than originally expected – the best shot we had towards the goal was to extract it from the bootstrap classpath. With queries similar to “grep -i tomcat classpath.log”. Which was easy. As opposed to discovering that:

Out of the 1024 samples 92 did not contain a reference to bootstrap classpath at all. Which was our first surprise. Whether they were really ran without any entries to bootstrap classpath or our statistics just do not record all the entries properly – failed to trace the reason. But nevertheless, this left us with 932 data points.

Out of the remaining 932 we were unable to link 256 reports to any of the application servers known to mankind. Before jumping to the conclusion that approx. 27% of the JVMs out there are running client side programs, we tried to dig further

  • 57 seemed to be launched using Maven plugins, which hides the actual runtime from us. But I can bet the vast majority of those are definitely not Swing applications.
  • 11 environments were running on Play Framework, which is not using Java EE containers to run.
  • 6 environments were launched with Scala runtime attached, so I assume these were also actually web applications.
  • 54 had loaded either jgoodies or swing libraries which make them good candidates for being a desktop application
  • 6 were running on Android. Which we don’t even support. If you guys can shed some light on how you managed to launch Plumbr with Android, let us know.
  • And the remaining 122 – we just failed to categorize – they seemed to range from MQ solutions to batch processes to whatnot.

But 676 reports did contain reference to the Java EE container used. And results are visible from the following diagram:
Application Server Marketshare
The winner should not be a surprise to anyone – Apache Tomcat is being used in 43% of the installations. Other places on the podium are a bit more surprising – Jetty coming in second with 23% of the deployments and JBoss third with 16%. The expected result was exactly reversed, but apparently the gears have shifted during the last years.

Next group contains Glassfish, Geronimo and Weblogic with 7, 6 and 3% of the deployment base respectively. Which is also somewhat surprising – having just 20 Weblogic installations and Websphere nowhere in sight at all – the remaining five containers altogether represent less than 2% of the installations. I guess all the pragmatic-lean-KISS-… approach is finally starting to pay off and we are moving towards tools developers actually enjoy.

If you look forward for the next posts in the series focusing on other interesting statistics about the JVM deployment base, subscribe to our Twitter feed and be notified on time.

Can't figure out what causes your OutOfMemoryError? Read more

ADD COMMENT

COMMENTS

Well I think companies still using behemoths like WebSphere are being forced to by their current technological stack (EJB2), licenses agreements and/or the apparent perceived *support* they get from Oracle and IBM.

andries

Indeed the WLS and WS shops most likely are not the earliest adopters of the new tools in the market. I scheduled a recurring analysis in three years, lets see the results then :)

Ivo Mägi

Tomcat is a fine piece of software so much so I enjoy going through every single code of every new edition to know how it works. Used Jboss for years and had no clue why I had to. Vive Le Pure Open Source. Jboss was open source and it was cool till RedHat takeover.

Skillipedia

I’m not surprised at the low instances of Weblogic or WebSphere here. Since the data set is garnered from installs of free software only, I don’t think we should be surprised that it is naturally skewed towards open, free or almost-free solutions.

Jens

Can't figure out what causes your OutOfMemoryError? Read more

Latest
Recommended
You cannot predict the way you die
When debugging a situation where systems are failing due to the lack of resources, you can no longer count on anything. Seemingly unrelated changes can trigger completely different messages and control flows within the JVM. Read more
Tuning GC - it does not have to be that hard
Solving GC pauses is a complex task. If you do not believe our words, check out the recent LinkedIn experience in garbage collection optimization. It is a complex and tedious task, so we are glad to report we have a whole lot simpler solution in mind Read more
Building a nirvana
We have invested a lot into our continuous integration / delivery infrastructure. As of now we can say that the Jenkins-orchestrated gang consisting of Ansible, Vagrant, Gradle, LiveRebel and TestNG is something an engineer can call a nirvana. Read more
Creative way to handle OutOfMemoryError
Wish to spend a day troubleshooting? Or make enemies among sysops? Registering pkill java to OutOfMemoryError events is one darn good way to achieve those goals. Read more