Imagine you have just started a new company. As the company owner what will you focus on next? Will it be maximising initial profit to allow for company growth, or rapidly expanding the company to allow for an easier uptake in workload, which will then result in profit. Whatever business method you employ, if successful it will lead to the inevitable expansion of your business and workforce. Sounds great right? But have you thought about more than just the results of your methodology? Have you given any thought to how this uptake in employee’s will affect your company’s servers? As with everything else, the more your company grows, the more strain will be put on the server and systems you employ to run your business.
Let’s use an example we are all familiar with, pay-day. I think most of us will agree we have felt the sense of happiness we get the moment your salary is credited at month-end (or the 24th to you lucky ones). A typical banking application during the heavy month end transaction will have to process money withdrawals for salaries, fund transfer, balance enquiry, statement generation, also some backend batch sessions that run parallel during this time which naturally will result in very high server utilization. This server needs to be monitored continuously since at any point it might get overloaded and crash, which can have a severe impact on your day to day business. Don’t believe me? Just think, how would you react if your salary isn’t credited at the end of the month? Would you check with your colleagues, call your company/bank, cry into a pillow?
Such problems or issues arise as an effect of not having appropriate monitoring processes in place and would lead to application slowness in any organization going unchecked. With appropriate monitoring in place, we can overcome such situations by taking preventive measures like load balancing, throttling, upgrading the server, upgrading your RAM, memory, Processor or Disk space on your server.
Monitoring mechanisms can not only measure the performance aspects of your CPU but also your Memory, Disk, Network, job queues and subsystems. They will also look at various components like the web server, Database server, Firewall, third-party system and load balancers. In turn, this helps a great deal for analysis and appropriate actions. Performance monitoring will help to understand any applications traffic throughout the day (which includes Application Performance Monitoring and Real User Monitoring).
The best thing about this type of monitoring, is if you are working to a budget, Performance Monitoring of any application can now be done free of charge using many open source monitoring tools available in the market! A few examples are;
- Grafana, an open platform for analytics and monitoring. Which allows you to query, visualize, alert on and understand your metrics no matter where they are stored. Create, explore, and share dashboards with your team and foster a data driven culture
- CollectD, collecting system and application performance metrics and providing mechanisms to store the values in a variety of ways
- Prometheus, a free software ecosystem for monitoring and alerting, with focus on reliability and simplicity. It’s a multi-dimensional data model with time series data identified by metric name and key/value pairs
- Server monitoring is made easy in Nagios because of the flexibility to monitor your servers with and without agents.
With such free open source performance monitoring tools in place, the issue you faced with your company’s extra workload or the delay in your salary been credited to your account can be monitored, and if need be, fixed well ahead of time. All thanks to performance monitoring tools you can literally get for free… not a bad deal, right?
To summarize, always make sure when undertaking any task in your business that will cause additional strain to your servers, you implement these additional steps;
- Assess whether this action will cause an increase of strain on your server or systems
- Source Performance Monitoring application (if you need ideas check the bullets points above)
- Implement
- Monitor and prevent any potential system overloads
- Sit back and relax!