Saturday, July 04, 2015

2015-07-04 Saturday - SaaS Performance Tuning Notes

When exploring possible SaaS performance issues, there are a couple of possible questions/concerns that might be worth examining as possible contributing factors:
  • Is there possible saturation of server CPU % utilization?
  • Is there possible saturation of server Memory % utilization?
  • Is there possible saturation of server Disk % utilization?
  • Is there possible saturation of the available network bandwidth?
    • Check the NIC % utilization on all servers, particularly for the database
    • What is the average response time within the data center network?
  • Is there possible database thread starvation occurring?
  • Are there inefficient SQL queries excessively consuming resources?
  • Does the application leverage any SQL query caching?
  • Is there lock contention occurring on database operations?
  • Would a Master-Slave configuration help distribute some database I/O 
    • Write against Master
    • Read from Slave (need to understand latency of Master to Slave replication)
  • Is there possible excessive session management overhead being incurred?
    • How much data is being stored in session management for an average user?
  • Is there possible File I/O contention for read/write of session data files?
  • Is there possible excessive overhead being incurred for static content delivery?
    • Is static content being served up by the same domain for which cookies are specified?
    • If so, cookies will be sent for each GET of a static content file

AppDynamics.com can be instrumental in helping isolate problems - as well as additional monitoring tools (e.g. such as Ganglia, SolarWinds, etc.)

In a recent experiment, moving two static content files to an externally hosted Content Delivery Network (CDN) appeared to suggest a possible 66% reduction in page load time.




2015-07-04 Saturday - R Programming Language (v3.2.1)

Experimenting today with the newest 2015-06-18 release of the R programming language (3.2.1)
http://www.r-project.org/
http://www.r-bloggers.com/

exploring The R Manuals
http://cran.r-project.org/manuals.html
http://cran.r-project.org/doc/manuals/r-release/R-intro.html

As well as the 3.4.2 StateET for R Eclipse plugin
http://www.walware.de/goto/statet

 ...In the new Eclipse 4.5 Mars release
https://www.eclipse.org/mars/noteworthy/

Saturday, June 06, 2015

2015-06-06 Saturday - Network Bandwidth Monitoring Tools

First let me preface this posting by saying, I am not a hardware guy - nor do I specialize in network configuration.  You should definitely do your own homework...and consult the appropriate experts with your respective network service providers, and network hardware vendors.

I suspect most folks are not very familiar with the overhead of the TCP protocol - and would probably be astonished at the impact that even apparently minor differences can make in the limitations on actual bandwidth availability and utilization. A simple difference such as 10ms vs 50 ms in latency can make a huge difference.

Some day you may be in a situation where the monitoring metrics across your application tiers (such as CPU and memory utilization) are within well accepted ranges - but response times may seem quite excessive in a number of cases.  One possible area to explore is your available theoretical network bandwidth vs actual network bandwidth - and what percentage of the actual available is being utilized.  Here are a few possible areas to examine:
  • Is there an inefficient application in your data center that is behaving in an excessively chatty way (e.g. sending thousands of requests to complete the display of a single page)?
  • How is the setting for tcp window scaling option configured?  
  • What is the profile of transactions across your network? Is there something that is using an excessive % of your available network bandwidth - that might be a candidate for refactoring - or somehow isolating from the web application tier?
  • What is the latency between your application tiers / servers / external third party services?
  • Are all of the devices in your network using a consistently sized Network Interface Controller adapter that supports the target maximum theoretical speed of your fastest NIC device?
  • Are your customer facing web applications on the same network segment as your heavy-lifting back-end systems?
  • Will your customer facing web applications benefit by partitioning some lower-priority / high data volume / large data packet consuming applications into one or more separate network segments?
  • If you upgraded your network to use 10 Gigabit Ethernet, did you also upgarde the cabling from cat 5 to cat 6 (or at least cat 5e) - to mitigate interference - which can impact packet loss.?
  • Is your network cabling sufficiently separated by some distance from your power cabling - to mitigate interference - which can impact packet loss?
I'm doing some research today, looking at various possible tools to help monitor network performance and bandwidth utilization for applications running in a data center, or across a corporate WAN.

This posting is a placeholder for some of my background reading and research...

Some basic background material...

An excellent list curated by staff at Stanford University...

Examples of some tools to provide basic types of operational monitoring capabilities you should have in place...

Some help with basic calculations...

Some links to possible tools and vendor specific resources...

Tuesday, May 12, 2015

2015-05-12 Tuesday - Dream Teams

Trust, Innovation, and Ability are three of the most critical qualities in my line of work that I value the most in people. When thinking of who I would call on to tackle a major new project, there is a short list of names I mentally review from time-to-time as the core of my primary dream team. Those folks are already in my LinkedIn network - and it seems I may have need to call on them soon...

Saturday, May 09, 2015

2015-05-09 Saturday - Graph Databases

I'm doing some research today on Graph Databases and happened to come across this very nice concise deck by Max De Marzi that provides some good examples of use cases that illustrate the benefits of Graph Database (using Nejo4j):
http://www.slideshare.net/maxdemarzi/bootstrapping-recommendations-with-neo4j

There's also a 2nd Edition of the O'Reilly book, Graph Databases now available.

Thursday, May 07, 2015

2015-05-07 Thursday - Architecture Documentation with Sparx

If your organization is like most  - architecture documentation is often missing, out-of-date, inaccurate, or incomplete.

I offer a three week time-boxed service to work on-site with your teams and create Sparx Enterprise Architect models to capture your current-state architecture.

Please contact me via kmeeks@intltechventures.com to discuss a convenient time to schedule an engagement.