Visit the site
Visit the siteOrganizations Involved
Community contributions
Nginx cache clear - A new Drupal 7 module was released as part of this project which would enable the control of the nginx cache files from Drupal itself.
The News Minute (TNM) is a premier news publishing agency located in India delivering news tailored for 5 major southern states in the country. The News Minute serves content only through their digital publishing platform and has an average of 8 Million Users/Month. Being delivering authentic and validated content, The News Minute has gained much popularity among the English speaking crowd in the country.
About the project
Increasing popularity poses new challenges.
With its increasing popularity, came the need to address quick surge of concurrent visitors in the platform as a result of breaking news releases. At times, platform experienced server outages, when the concurrent users increase beyond 500. Being a platform having good reputation and rapidly growing number of visitors, eliminating server outages and improving stability has become the need of the day. This made The News Minute to think of improving the architecture of platform to the scale where users will not experience these sever outages again.
Approach
As the platform was transferred to Zyxware from another vendor, the primary decision was to conduct an audit focussing on performance and architecture aspects of the platform. This helped in identifying the bottlenecks in the system. The output from this audit was used to provide recommendations that will help the platform to become stable and scalable.
A performance testing was also conducted as a part of this audit. As a precaution to prevent site outage during performance testing, it was decided to create a staging server simulating the exact environment of the production server to identify the problems.
Findings and Recommendations
- The platform audit revealed that, the platform is hosted on a server infrastructure with high end configuration and this can be optimized further to improve the performance. From the stress test on staging environment it was clear that the current system could handle up-to 1,500 concurrent users or more with a fine tuning on the server
- The performance testing also unwrapped another issue where Nginx was writing its error logs as a result of an error in configuration.
- On the caching front, although Drupal caching was enabled it was not activated due to a session variable issue. Also, Drupal page level, block and view level caching was disabled.
- The cron system on the Drupal 7 site was also found to be configured incorrectly.
- The major driver for increase in load on server was due to high level of insertions and writes occurring to the database due to improper code, site configurations and access log creation.
Overall from the analysis, it was clear that the system is capable of handling the current load and stress, but fails due to the lack of optimization. It was recommended to optimize the performance aspects of system to cater a minimum of 1500 concurrent users. This include enabling Nginx caching and moving the platform to a distributed environment which can handle the traffic surges and reduce the infrastructure cost. There was also a recommendation to use a CDN network or Amazon s3 bucket as an immediate solution for helping in avoiding the issues with quick traffic surges and server loads.
Although the initial scope involved only the audit practice, we went ahead and implemented the recommendations made by us to optimize the platform performance. This includes, resolving issues with page caching, view caching, disabling and truncating access logs and enabling Nginx caching. The implementations have yielded positive results and it has made the platform light and swift, while resolving the grave issue of platform crashing at a mere increase on visitors. As a result of this, the platform was able to handle 9,543 concurrent users in place of 500 concurrent visitors. Even after 1 year, the platform still continues in its steady state and has even made a record of 15,000+ concurrent visitors for a breaking news.
Why Drupal was chosen
Drupal was chosen for its impressive Content Management capabilities, scalability and performance under load.
Technical Specifications
Drupal version:
Key modules/theme/distribution used:
Nginx cache clear module was developed to address the challenge of individually clearing the cache files from the Drupal interface.