Wednesday, June 11, 2014

Let's talk performance...

Ok.  I admit it.  No matter how much I try to position myself as a pure business executive, I sometimes have a tendency to revert to my inner geek.  You know, it's that conversation that switches to performance, and all of the sudden, you remember everything you've learned about performance.

So, I thought I'd make a few general observations.  I was reading an article on Linked-In today, about how some people make assumptions that everyone else knows what they know... or that some of this stuff is just common sense.  I think sometimes I fall in that group.  So hear goes....

  1. The more you expect from a system, the more effort you need to put into tuning it properly.   E.g. it's easy to run Microsoft's SQL Server.  It's much more difficult to do this at a very large scale.
  2. Just because a system can auto-tune itself, it doesn't mean that it's can be much better with a great performance tuning expert.
  3. It's really easy to make good software suffer from a performance perspective, and then blame the software.
  4. There are MANY people in this world that claim to be expert.  They are so overly confident that they have convinced themselves that they are the ONLY competent people.  There's always someone smarter, better, and probably with better people skills.
  5. Databases like lots of dedicated memory.  If you have it, make sure it's preallocated and tuned properly.
  6. Databases like lots of IOPS.
  7. Faster spinning disks get more IOPS.
  8. More spindles /disks gets more IOPS.
  9. Proper raid level planning is critical for performance.
  10. Selecting the correct raid level has a significant impact on performance, and needs to be aligned to the purpose required.
  11. More cache is a good thing.
  12. SSD helps performance when properly configured to remove bottlenecks.
  13. SSD normally goes through a controller, PCI Solid State drives  are on the bus, and have an opportunity to run much faster.
  14. PCI SSD, properly planned, and with a recovery strategy can reduce the need for lots of spinning disks.  They do need to be part of the recovery strategy, should your PCI SSD fail.
  15. There is a tradeoff between faster processors, more cache, and more cores.  Evaluate this and make the best choice for the load profile.
  16. Database planning is important.
  17. Database tuning is required.
  18. Database recovery requires log files.  You can't roll forward if you don't have a full backup with all of the incremental log files.
  19. Database backup strategies can include cold backups, or a combination of logs and exports, and varies depending on uptime, and acceptable downtime and data loss.
  20. Networks must be properly planned in order to be both secure, and to scale properly.
  21. Firewalls are critical to securing a network.
  22. Performance testing much be consistent, and repeatable.
  23. Production environments must be monitored and tuned.
  24. Systems must evolve, users aren't static, and neither should be our systems.

I could go on... It's been a while since I posted, so I thought I'd do a quick performance memory dump tonight.  Thanks to this, I can now switch back to focusing what's important to the business, and being more leaderly.