Top 3 PHP Performance Tips for Continuous Delivery


Are you developing or hosting PHP applications? Are you doing performance sanity checks along your delivery pipeline? No? Not Yet? Then start with a quick check. It only takes 15 minutes and it really pays off. As developer you can improve your code, and as somebody responsible for your build pipeline you can automate these checks and enforce additional quality gates. And as a PHP Hosting company/group you will be able optimize your deployment and run more of these apps and ... More >

Sync your Timeouts: When Load Balancers Cause Database Deadlocks


Have you seen this error message before “java.sql.Exception: ORA-00060: deadlock detected while waiting for resource”? This is caused when parallel updates require locks on either rows or tables in your database. I recently ran into this exception on an instance of an IBM eCommerce Server. The first thought was that there are simply too many people hitting the same functionality that updates Sales Tax Summary information – which was showing up in the call stack of the ... More >

Database Access Patterns Gone Wild: Inside Telerik, SharePoint and ASP.NET


Telerik Controls are great for building modern, rich clients, and web applications often seen at the enterprise level. I just worked with a company that uses these controls in their soon to be released customer facing SharePoint portal. They ran a small load test which showed that the response times were ranging between 150ms and 1.3s for most of their pages – which is acceptable. Still, they wanted my opinion on the data – so they shared a dynaTrace session with me. I ... More >

Don‘t Trust Your Log Files: How and Why to Monitor ALL Exceptions

Don‘t Trust Your Log Files

I would say that only one out of a million exceptions thrown in an application actually makes it to a log file - unless you run your application in verbose logging mode  – Do you agree? No? Here is why I think that is: Because most exceptions are handled by your code or by the frameworks your app uses. Here is a chart from an enterprise application showing that there are about 4000x more custom application exception objects thrown than important log messages ... More >

Love or Hate Flash; Here’s How to Use Web Server Content Compression Properly


Are you serving .SWF files from your web server and getting complaints from your end users that your flash app is “just slow?” Or has your Ops team wondered why you see such high web request response times for some of the web service calls executed by your Flash Client? I was just working with a bank that uses a Flash Component for one of their internal risk management applications. For years they wondered why users were complaining about very slow response times when ... More >

Software Quality Metrics for your Continuous Delivery Pipeline – Part I


How often do you deploy new software? Once a month, once a week or every hour? The more often you deploy the smaller your changes will be. That’s good! Why? Because smaller changes tend to be less risky since it’s easier to keep track of what has really changed. For developers, it’s certainly easier to fix something you worked on three days ago than something you wrote last summer. An analogy from a recent conference talk from AutoScout24 is to think about your release like a ... More >

SAP Performance Problems? When to Blame the Untrained End User


In my previous posts I wrote about how important it is to have end-to-end visibility into SAP in order to avoid serious problems in our delivery chain or to discover that application performance degradation was caused by malfunctioning hardware. One of our New Zealand customers, Fonterra, who is the world's largest exporter of dairy products, uses SAP to support its delivery chain of dairy products made from 22 billion liters of milk collected each year. In this ... More >

Memory Leaks, Load Balancing and Deployment Settings: Testing Lessons learned from the eCommerce industry


It is common knowledge that large scale testing should be done prior to releasing new software. Otherwise, how would you know if the system works as expected under real user load? The story today comes from one of our eCommerce customers that enhanced its Gift Card Balance Check with new features. Before going live the company runs large scale load tests to make sure things are working correctly. The first tests run by the testing team highlighted Memory Leaks that ... More >

How Stable are Your Unit Tests? Best Practices to Raise Test Automation Quality


Most of our 10k+ unit tests are written in Java using JUnit and run with the gradle build automation tool. The more tests we added over time, the more often we ran into the problem that unit test executions became unstable. New tests impacted the execution of existing tests. Our “failed test” metric for tests that ran fine for months started to increase. It was tempting to blame bad application code, but through careful analysis we found the real reason for these unstable ... More >

APM Myth Busters: Sampling is as Good as Having all Transactions


Is sampling data as good as capturing all transactions in detail? At first glance having all transactions is better than just some of them – but let’s dig a little deeper. If we’re not capturing all transactions – how do we select those we do capture? Or to be more precise, how do we select the transactions to be captured with full details vs. those with just high-level information. Sampling One way of selecting the transactions you follow in depth would be to sample, ... More >