LAMP Uptime and Performance: Best Practices with Monitis Performance Monitoring Software-as-a-Service

The acronym LAMP refers to a stack of free, open source software used together to run Web sites and services. The expansion of the acronym is: Linux (operating system), Apache (web server), MySQL (database), and PHP, Perl, or Python (scripting language). Though the creators of these open source technologies did not design them all to work specifically with each other, the combination has become popular because of its low cost and the ubiquity and familiarity of its components. When used together, they are a robust stack of technologies with a wide range of applications.

The LAMP software stack (Linux, Apache, MySQL, and PHP/Python) is very popular with the new generation of Web 2.0 services. These services provide high uptime and good performance for such applications as gaming, educational and corporate portals, e-commerce and travel reservations, and many others. However, many issues such as database performance, hardware failure, application bugs, DoS attacks, and others can negatively impact the performance of your LAMP service. The best practice is to monitor key performance indicators and set up notification rules so that you can respond quickly to failures and limit downtime.

The first step of the process is the simple and installer-free process of adding external availability and performance monitors; we recommend setting Monitis external HTTP monitors for front page applications and important dynamic pages in addition to doing the same for important files such as scripts and flash items. Furthermore, a simple ping setup allows the user to check if the server is available. You also have the option to ping the router and firewall, giving the chance to determine where the failure is located in the larger system. SSH users can also set up SSH monitoring, if SSH fails but the overall system remains active, you can isolate the SSH problem specifically. MySQL monitoring is an important part as well and the user must make sure it is accessible from the Monitis IP addresses. DNS checks provide a final preventative measure against early problems with your DNS.

After completing the setup of external monitoring for your application server, you’ll need to set up internal server resource monitoring. It will help with both troubleshooting and prevention of failures. After installing Monitis agent on your server (Windows, Linux, Solaris, FreeBSD and Mac agents are available), add the following server monitors from the Monitis web interface: Linux average load, CPU, hard disk space, and memory consumption. The threshold for average load should be set at 10-15 for notification. Set reasonable threshold for the free memory and hard disk space monitors as well. The Apache/PHP and MySQL processes should also be monitored. Set the threshold for CPU utilization per server and per process (60-70%), especially for MySQL. It is often the cause of poor performance. Setting low threshold may result in large number of alerts, too high may trigger an alert when the situation on server is already critical.

For a greater comfort level, we recommend using Monitis Application and Transaction monitoring service. It is very helpful with complex multi-step applications such as online reservations, e-commerce, online banking, and Web 2.0 services. It is similar to external monitoring, but it is able to check the complete application flow in one check. Monitis provides the Transaction Recorder plug-in for your browser. In your browser, you can record a script by navigating through application pages and adding checkpoints. Upload the script to the Monitis server to have Monitis check your application on regular intervals. With all of the Monitis checks combined, 100% application uptime for your users is much closer to a reality.