Amadeus Consulting Discusses Best Practices in System Performance

Computers & TechnologyTechnology

  • Author John Basso
  • Published December 20, 2010
  • Word count 1,087

My fridge broke. It wasn’t cooling food. I was slammed that week at work so I didn’t even try to fix it and instead I called for a repair person. They pulled out the main circuit board and switched the pump and promptly charged me $400! I am not even sure the repair person was sure the circuit board needed to be replaced but that is how they do it.

Two weeks later my clothes dryer stopped working. After feeling more than a little slighted for being charged $400 for a $10 pump I decided enough is enough and I was going to at least take a look to see what was wrong. After checking all the obvious items such as the fuse box there was no option but to open the dryer up. To my surprise there was a troubleshooting manual inside the dryer – and a good one at that! After a couple of hours of poking around and vacuuming lint from the inside I was able to figure out that the heating coil was broken. I ordered a part online, replaced it and all was looking good until the dryer turned itself off before my clothes were dry. Turns out the vent on the outside was also clogged. So I spent a couple of minutes vacuuming and all was good.

I have to admit the next day I felt pretty manly for fixing something, especially since there was an ohm meter, high voltage and power tools involved. After the buzz of accomplishment wore off I tried to remember when the dryer stopped working. It sounds like a question with an obvious answer – the day it stopped drying. The problem is it completely stopped drying a couple of weeks ago but up to that point we have been running the clothes through multiple cycles for some time and still the clothes were never really dry. I thought maybe I was putting too many clothes in the dryer or maybe this was the performance to be expected from an electric dry. Surely gas dryers are better than electric dryers.

So what does this all have to do with computers?

People tend to think of a computer system as either working or not working, but it is far more complicated than that. For example, say your website isn’t online, it is clear that it isn’t working. But when your system is running in a degraded state you may never know because it has always been running in a degraded state so you just think that is how it is supposed to run. This is especially true for complex systems where it is often hard to predetermine performance.

On the flip side it just doesn’t make financial sense to write every system with the same performance requirements of the New York Stock Exchange. The cost for even a simple system could be 10 times as expensive. So what is the best way to approach the issue of performance and your expectations?

Here are some recommendations.

  1. Note any known loads and expectations upfront – be realistic. Exaggerating will be expensive and the extra money saved can always be used in the future to enhance the system performance.

  2. Code the system from front to back and insure functionality is complete but if there are sections of the system that are suspect from the beginning create some simple tests to see if your concerns are valid.

  3. Over time allocate time and budget for reworking the most important sections of the system. As databases grow, users change their habits and technology changes, so it makes sense to do checkups on the system the same way you have an annual health physical.

  4. In almost all but the rare circumstance a system can be made to perform faster. Even if the code is as good as it is going to get, the underlying hardware and network can be tuned by implementing high performance servers, advanced storage systems and upgrading networks.

  5. Design decisions can have a big impact. So go back to some initial assumptions now that you know your business better and challenge them.

  6. Sometime old is better. Lots of new programming techniques focus on decreasing the time it takes to code a system but returning to the "old school" can yield enormous results. For example maybe a 3rd party tool was used to reduce the coding effort of importing and exporting data but writing manual import and exports often yield large performance gains.

  7. Each and every part of the system matters; database, network, hardware. Your users don’t care what type of web server you have they care about the overall user experience. You could spend your entire budget fixing a section of code that is slow only to find out that section of code is barely ever used and only accounts for 1% of the user experience time.

  8. Finally remember that 9 nurses don’t make a surgeon. There are many common and well understood aspects of custom programming but performance tuning is better left to the custom software development experts. If there is an issue with performance put your best developer on it.

  9. Create a robust test harness and use it from day one. Use it even if the system isn’t 100% working. By getting in the habit of looking at your data the organization will gravitate toward understanding the performance aspects of the system.

  10. Figure out how to measure inside the system. A hardware friend of mine said they put test points right in their chips so they can measure between different points within the chip. This isn’t easy but without real-time analysis abilities it is going to be hard to understand what is going wrong.

  11. Make sure the logging, monitoring and debugging doesn’t actually make the problem worse by introducing too much load. There is no getting around the laws of the universe (Heisenberg Uncertainty Principle) but monitoring and logging should be extremely high performance and non-invasive.

If no performance tuning has ever been done on your system the first try should yield the best results. During each tuning phase new ideas will be generated that can be acted on during future phases. With each iteration, it gets harder and harder to show improvements but there is always, always some part of the system that can be made better.

Amadeus Consulting has a full team of in-house, 24x7 software support and maintenance developers. Our team is well-versed in software development support and performance implications. Contact us today to learn more.

John Basso is the CIO at Amadeus Consulting. His passion is evenly divided between cool technology and the importance of sustainability. As a result, he helped create the BLAST! (Business Leaders in Action for Sustainability Today)! program. His vision has helped Amadeus Consulting become a zero-waste company, and his Green Blog is full of tips and ideas to inform others of the latest in the sustainability market.

Article source: https://articlebiz.com
This article has been viewed 847 times.

Rate article

Article comments

There are no posted comments.

Related articles