With the deployment of Nginx as a Web and proxy server in high traffic websites, performance considerations for Nginx are a priority for DevOps teams. Any degradation in performance alters user experience negatively leading to possible site abandonment and lost revenue. To manage Nginx performance effectively, monitoring of Nginx servers must be factored into overall application performance monitoring initiatives and practices. For example, if an Nginx HTTP server is forwarding requests to Docker containers, Nginx monitoring should be performed in conjunction with Docker container monitoring to derive accurate performance metrics for user experience. Similarly, if an Nginx HTTP server is forwarding requests to a Java application server and a Java performance test is run, Nginx performance monitoring should be carried out concurrently with Java application monitoring to obtain more comprehensive performance data for Web server and Java performance tuning.
Dynatrace, a leading provider of application performance management solutions, provides tools for Nginx performance monitoring, application tier monitoring (for example, Java, PHP, and Docker performance monitoring, and infrastructure tier monitoring (for example, database monitoring). Dynatrace also offers a network performance management solution to monitor network performance in the data center to ensure that network elements do not cause performance bottlenecks in the infrastructure tier.
Dynatrace performs Nginx performance monitoring by loading an agent at Nginx server startup. This agent captures the health of CPU, memory, network, and storage for the host. Additionally, it works with Dynatrace’s patented PurePath Technology® to monitor transaction metrics like transaction failure rate, execution time per transaction, contribution by Nginx to transaction response time, and number of failed transactions. Using this data, any issues with host health and transaction bottlenecks on the Nginx server can be discovered quickly, and the configuration of the Nginx server can be tuned to improve Nginx performance.
PurePath also enables end-to-end application transaction monitoring capturing all transaction activity from user interactions to method invocations to database queries. It allows monitoring in most environments including virtualization monitoring, and drills down to code-level details to make root-cause analysis less challenging.
Nginx is designed to be highly scalable and can support more concurrent users than many other Web and proxy servers. After deploying an Nginx server, it can be tested for performance by using a load tester. Load testing enables Nginx performance to be monitored for throughput to ensure that it’s deployment configuration is optimal, and host resources are adequate to support expected user loads.