Memcache | https://www.drupal.org/project/memcache

Syslog | https://www.drupal.org/docs/8/core/modules/syslog/overview

S3FS | https://www.drupal.org/project/s3fs

Database Administration Tool | https://www.drupal.org/project/dat

Memory Limit Policy | https://www.drupal.org/project/memory_limit_policy

 

In this article we will introduce the 5 best server side drupal modules we use in our projects. These modules helped us a lot in improving the overall application performance that is why we think these are the most useful. I will be introducing each and explain how we are using them and the problems they solved. Keep in mind though that these are based on our experience and does not necessarily mean the best for everyone.

 

Memcache

At the top of our list is memcache. The database is the core component that separates CMSs like Drupal from other websites. And it is because of this that we always need to prioritize the performance of this portion in our web applications. For small CMS websites, performance may not be that much of an issue since there are only a few visitors to cater to but for big businesses it’s usually the other way around. That is why most corporate infrastructure requires the database to be separated from the application server.

 

In most cases caching is not that much of an issue as long as you keep your database ready to take in a spike in site visits. But keeping a database that does this is expensive so we have to look for an alternative solution. And the solution we found effective is having the cache on the application server instead of the database.

 

Depending on your infrastructure, you will need to have either of the two extension packages [ memcache or memcached ] compatible with memcache installed on your application server. You can go to https://www.drupal.org/node/1131458 for more information on how to install the extensions mentioned.

 

Download the Module here | https://www.drupal.org/project/memcache

 

Syslog

For the same reason as above, we want to free up the database and have it store only core data. Syslog is a module that integrates best with the Linux file system to store System logs which can be found in the Database Log module [ dblog ]. Surely the Database Log is efficient enough in saving all the logs you configured on your site until the database hits a snag. It’s fine and easy to use for small applications but not for large businesses with visitors you accommodate by the minute.

 

Syslog enables you to save the logs on a log file in your application server and in most cases we store it on a secured S3 bucket when on AWS. Other providers such as Acquia and Pantheon have their own separate instructions and recommendations for setting up the syslog module. 

 

Documented Instructions | https://www.drupal.org/docs/8/core/modules/syslog/overview

 

Syslog is already included in the Drupal Core and all you need to do is enable the module. But if your Drupal installation is hosted on a shared hosting server then there’s a big chance it is not supported because of the fact the syslog module needs some modification on the operating system side.

 

S3FS

Another module that we use a lot especially when using the AWS infrastructure is the S3FS module or the S3 File System. This module, as the name suggests, provides an additional file system that allows you to store files into an amazon s3 bucket. 

 

So what’s wrong with the regular file system? It is fine in some environments but imagine an infrastructure that requires the storage of high definition images in 2 or more application servers  configured under a load balancer. In a regular configuration, this means that the same images will be stored in two different servers. This setup becomes a big problem during disaster recovery scenarios wherein you have to restore large application storage.

 

The S3FS module is the best solution for AWS configured infrastructure with autoscaling enabled and load balancer enabled. It allows for quicker deployment instances during a disaster recovery and horizontal scale up situations.

 

You can find information and download the module here | https://www.drupal.org/project/s3fs


 

Database Administration Tool

We don’t use this module a lot but it comes handy in some projects where there is no access to the database. There are those instances wherein a client was left with a site that has no ssh access to the database. Sure you can get the database login information from settings.php but without ssh there’s not much.

 

This module enables developers and non-developers to access the database tables from within Drupal. If you are familiar with phpmyadmin then this module’s interface will be a breeze to navigate. Easy to setup but requires a lot of caution that’s why we only use this as a last resort.

You can get more information here | https://www.drupal.org/project/dat

 


 

Memory Limit Policy

 

If you have encountered issues with some pages that break because it’s too heavy or when you have a view page that has data export that is too large and you don’t want to limit the memory usage globally. Then you have to try this module out.

 

The memory limit policy module lets you override the default php memory limit without having to configure it for other pages that don’t need it. It is not advisable to enable unlimited memory globally because it could open your site to potential attacks and suffer performance issues. This module has a user friendly interface, at least for us, that’s why we count it as part of our top 5 modules. 

 

The latest version can be found here | https://www.drupal.org/project/memory_limit_policy