We can serve pages ok, but when we use jmeter and test with some connections, CPU on our applicationserver is going close to 100% and requests are handled slowly.
Even when we only request pages manually and hit F5 the CPU-usage is increasing fast.
We have added more CPU’s to the VM and that helps a bit, but there must hopefully be some tuning we can do?
We have an Apache-server in front of the applicationserver.
Hmm… Time to interactive is measured in the browser and can heavily relate to client side activity. I recommend you install and run our Livetrace app to diagnose performance on the server (available on market). This will often also reveal any bottlenecks in your application code.
You can click the triangles to the left in order to inspect the individual request further! A developer can then take a look at the most lengthy steps and see if it’s possible improve the performance of that step, either by optimizing the code, implementing cache using lib-cache, identify slow-loading (large) images, or if it’s slow resources: see if resources can be served differently (use minimized resources or use a Content Delivery Network)
Example from enonic.com: In the image below, you see that there is an “add-script” step on the front page which takes 535 milliseconds - half of the page load time. The rest of the components on the page seem healthy, there are hardly any parts that use more than a dozen milliseconds to render.
This should hopefully be a quick start for you to identify what causes your performance problems, at least when it comes to page rendering speed on the server side.
Thank you for input, espesialy about lib-cache. I don’t know if our developers has used that.
Yes we have seen this, but the main problem is when we got more than one request to the site.
What are other companies using as cachingsoftware?
I know XP sites that run behind Varnish, and XP sites that run behind BigIP, and there are probably many other options out there as well. I think services like CloudFlare also offers cache? I don’t know enough about these products to give you any advice on what to use and when to use it, but perhaps it’s a start.
Well, since these are companies that I was a front-end developer at a number of years ago, I don’t know how easy it would be to find the right contact person, in a world where many such services are outsourced to other consultant companies. But off the top of my head I know that SSB has been running Varnish for many years, and that Posten/Bring and Gjensidige have been running BigIP - I think the former uses/used Tata Consultancy Services and the latter uses/used EVRY as their hosting provider which is responsible for setting up and managing the BigIP cache. I don’t know who SSB uses to manage Varnish, it’s been five years since I was on a project there.
Usually, my XP sites run just fine without needing any extra front-end cache (>_<)
I’m running sites on Google Cloud and Enonic Cloud.
How much compute capacity do you have? As in vCPU’s? You cannot compare numbers directly when running on a laptop Compared to a server. Also, are you using SSD’s?
You say that you’re running the XP server in a Virtual Machine. Is it a dedicated VM, or are there other processes running? I’ve heard of people experiencing slowness because they were running inside a VM that shared resources with other processes, and where switching to a dedicated server solved the bottleneck.
With 8vCPU you should be able to run a minimum of between 4 and 8 parallell rendering processes. If each render takes 2 second, your server will only have a throughout of 2-4 pages/second. If it takes 500ms, 8-16 per second. So, you need to optimize your code.