Performance Testing @ the Frontline

A hidden world where small things make a big difference

Firebird v2.5 Alpha 1 UPPER() SQL statement resource hog

Posted by Kim on Tuesday, July 15, 2008

During my testing of the Firebird Performance I encountered a strange issue with the UPPER() command in SQL statements. Using the UPPER() command my SQL queries suddenly consumed 100% CPU from the server. All transaction times spike from 1-2 seconds to over 10 for the login operation, and the CPU on the DB machine goes to 100% flat instead of jumping between 30% and 90%… Read the rest of this entry »

Posted in Firebird | Tagged: , | 2 Comments »

Apache, PHP and Firebird Performance Tuning

Posted by Kim on Monday, July 14, 2008

In the last post I commented that I had a test-bed application, based on Apache, PHP and Firebird, and once the problem with the images was solved I could finally start doing the actual performance testing/tuning that I originally wanted to do.

The only major changes from the last post is that I’ve now upgraded the database engine to the “Firebird v2.5 Alpha 1” that supports SMP, and that the application now contains more base data in the tables. Read the rest of this entry »

Posted in Firebird | Tagged: , , , | 4 Comments »

Apache Serves Images Slowly

Posted by Kim on Thursday, July 10, 2008

Today I had a really interesting and strange problem with the Apache WWW server. It served images very slowly under even light loads and there was really no explanation for this. The CPU on the host machine almost idle and network throughput was nominal too.

After some digging on the internet I found other people also had had this problem, and had suggested various methods to remedy this, like enabling caching and putting images on a separate machine and disabling the KeepAlive feature. Read the rest of this entry »

Posted in Main | Tagged: , , , , | 4 Comments »

Poor Processes yield Poor Performace

Posted by Kim on Friday, May 30, 2008

So here I am, sitting in a bar, at an airport, trying to figure out why my flight is over an hour late …

It occurs to me that the processes involved with flights are probably the cause of this, and it dawns on me that a poor process is as much a performance bottleneck as a poorly written piece of software is !!!

The flight was late, according to the lady at the counter, because it left late from the previous airfield. That was something I had figured out by myself, but this seemed to be a perfectly acceptable explanation for her. I of course wanted to know WHY the plane left later than scheduled, but that was something she could not help me with. Read the rest of this entry »

Posted in Main | Leave a Comment »

ScrumWorks SOAP API Test Results

Posted by Kim on Wednesday, May 14, 2008

I won’t go into the details of the specs of the hardware or OS, since there is no reliable way to compare two different systems against each other, but the relative performance on the tested system gives a very good insight as to how it will behave on other systems as well.

I also want to stress that the SOAP API is not the same as the web/desktop client, and may use a different communication model on the server side. The results ARE NOT comparable to the web or desktop client response times.

Read the rest of this entry »

Posted in Main | Tagged: , , | Leave a Comment »

The impact of Digital Signatures

Posted by Kim on Wednesday, May 7, 2008

I recently tested a service that had a Digital Signature system option. At first the Digital Signatures where not enabled, and we were happily testing and getting around 500 ms response times for the service.

Then the Digital Signatures where enabled, and we had to first sign the messages sent, then the server needed to verify the signatures as well.

This turned out to be a major CPU and TIME hog, since on average, regardless of load the verification of the signature took around 200 ms to perform. This made the allover response times increase to around 700 ms for each transaction (200 ms is around 28.5% of 700 ms!). Read the rest of this entry »

Posted in Main | Tagged: , , | Leave a Comment »

More on ScrumWorks Pro API testing

Posted by Kim on Wednesday, April 23, 2008

I today spent most of my time testing the ScrumWorks Pro 3.0 SOAP API, with the MySQL database, and came to the conclusion that there are some potential performance killers in the application.

The test data we used was somewhat larger than a typical small project. This data was scaled to match the expected data amounts of a very large enterprise environment within a few years, with lots of users. Read the rest of this entry »

Posted in Main | Tagged: , , | 1 Comment »

OpenSource PT tools lack in features

Posted by Kim on Tuesday, April 22, 2008

I’ve been investigating some of the OpenSource performance test tools available on the market, and it seems that most of them are lacking in features that are essential for performance testing in enterprise environments. A good list of both functional and performance tools can be found at

The biggest problem is that the tools are not designed to give out analyzable data in exported form, or even in viewable and understandable form on the screen. Read the rest of this entry »

Posted in Main | Tagged: , , | 2 Comments »

LoadRunner as a WebCrawler

Posted by Kim on Monday, April 7, 2008

Today I had the opportunity to use LoadRunner for a completely different task than it has been designed for.

The project I’m working with wanted to have a system that “warms up the caches” before it goes live, so we needed to have a system the crawls the production site at a specific time and speed, excludes a set of links and only goes 3 levels deep.

The resulting script was very easy to make, once the initial think-through was done. The code was very simple put into three sub functions: Process_Level_1(), Process_Level_2() and Process_Level_3(). In each function we call a set of recorded URL’s from the previous processing level.
Read the rest of this entry »

Posted in LoadRunner | Tagged: , | 3 Comments »

ScrumWorks Pro SOAP API

Posted by Kim on Saturday, April 5, 2008

The Scrumworks Pro product has an API that works using SOAP calls, and I needed to LoadTest the application using this interface.
I immediately had some problems with it since there seemed to be no documentation at all for non-Java developers. A had a JavaDoc that really didn’t tell me anything (as I’m not a Java developer), and the only raw SOAP example I had was one Danube’s support sent me, which didn’t work for me as it was meant for other tools than LoadRunner … Read the rest of this entry »

Posted in Main | Tagged: , , | 3 Comments »

Performance Testing Blog – And so it begins

Posted by Kim on Saturday, April 5, 2008

Today it begins, my Performance Testing and Performance Engineering blog, where I’ll outline some of the things I will encounter in this field…

I hope this is going to be a fun and informative place for all of you, but only time and your feedback can determine that!

Helpful tools

The tools I use mostly at work is LoadRunner from HP, but I also use a myriad of other utilities that assist me. The one biggest helpful “utility” i use is probably¬† Delphi, since I can make DLL’s and custom made applications that assist me in the testing process.

Also PHP and Apache are valuable help, since most of my testing is web based. Other very useful tools are WireShark (Network Analyzer) and FireBug (Firefox plugin, HTML analysis).

Posted in Main | Tagged: , , , | Leave a Comment »