Apache Performance Tuning: Configuring MPM Directives

 

Our previous article in this series focused on defining and fitting MPM to match your environment.  Building off of our last tutorial we will be discussing specific details on how to adjust the previously mentioned Apache configuration directives on the various types of Liquid Web servers.  

 

 

Core-managed CentOS 6/7 Servers

On CentOS servers, Apache configuration files are located in /etc/httpd/.

  1. Log in to the server over SSH or FTP.
  2. First, create an optimization file. It’s necessary for the optimization file to be loaded last so that it will override all other previous settings. We suggest naming the file z-optimize.conf.touch /etc/httpd/conf.d/z-optimize.conf
  3. Open file for editing with your favorite editor:vim /etc/httpd/conf.d/z-optimize.conf
  4. Input necessary directive change, using IfModule statements for compatibility.Configuration example for Centos 6/7 servers.
  5. Save the file.
  6. Reload Apache.service httpd restart

Core-managed Ubuntu 14.04/16.04 LTS Servers

On Ubuntu servers, Apache configuration files are located in /etc/apache2/.

  1. Backup existing apache2.conf file:cp -p /etc/apache2/apache2.conf{,.bak.$(date +%F_%H%M%S)}
    ls -lah /etc/apache2/apache2.conf*
  2. Open file for editing with your favorite editor:vim /etc/apache2/apache2.conf
  3. Append the necessary directive changes to the very bottom of the config file. Configuration examples for Centos 6/7, Ubuntu 14.04/16.04 servers.
  4. Save the file.
  5. Reload Apache.apache2ctl reload

Fully-managed CentOS 6/7 cPanel Servers

Out of the box, our Fully-Managed cPanel servers come with general optimization suitable for most small and mid-range sites. cPanel servers use a sophisticated template system for managing Apache configurations. cPanel typically handles all configurations seamlessly by using the WHM and cPanel interfaces. However, it is still quite simple to set up an optimization configuration file. You have the choice to compose an optimized configuration file via command line over SSH/FTP or within the WHM interface.

Command Line Method (SSH/FTP)

The Apache configuration files on cPanel servers are stored in: /usr/local/apache/conf/includes/

You can use several included files for optimization. It’s necessary for the optimization file to be loaded last so that it will override all other previous settings. For this reason, the post_ include files work best, specifically the post_virtualhost_global.conf file.

 

  1. Log in to the server with SSH or FTP.
  2. Open the post_virtualhost_global.conf file in your favorite editor. (This file is typically empty and maybe missing entirely. This is okay and not unexpected.)vim /usr/local/apache/conf/includes/post_virtualhost_global.conf
  3. Input necessary directive change, using IfModule statements for compatibility. Configuration examples for Centos 6/7, Ubuntu 14.04/16.04 servers.
  4. Save the file.
  5. Reload Apache./scripts/restartsrv_apache
  6. Reload Apache PHP FPM servers./scripts/restartsrv_apache_php_fpm


WMH Method

  1. Log in to Webhost Manager (WHM) on the necessary server.
  2. Type apache in the quick find box.
  3. Click on Apache Configuration in the Service Configuration section.
  4. Click on Include Editor.
  5. Scroll down to Post VirtualHost Include.
  6. Select All Versions from the drop down.
  7. In the box input the necessary directives for optimization. Configuration examples for Centos 6/7, Ubuntu 14.04/16.04 servers.
  8. Click the Update button when finished to save the change.
  9. On the left-hand navigation pane in the Restart Services section at the bottom click on HTTP Server(Apache).
  10. Click on the Yes button.
  11. Back to the left-hand navigation pane in the Restart Services section at the bottom click on PHP-FPM services for Apache.
  12. Click on the Yes button to complete the configuration.

Fully-managed CentOS 7 Plesk Onyx 17 Linux Servers

Out of the box, our Fully-Managed Linux Plesk servers come with general optimization suitable for most small and mid-range sites. Plesk uses mostly a standard CentOS based Apache2 installation so that it can be modified in the same manner as our Core-managed CentOS 6/7 servers:

 

On CentOS servers, Apache configuration files are located in /etc/httpd/.

 

  1. Log in to the server over SSH or FTP.
  2. First, create an optimization file. It’s necessary for the optimization file to be loaded last so that it will override all other previous settings. Suggested name: z-optimize.conf.touch /etc/httpd/conf.d/z-optimize.conf
  3. Open file for editing with your favorite editor:vim /etc/httpd/conf.d/z-optimize.conf
  4. Input necessary directive change, using IfModule statements for compatibility.Configuration examples for Centos 6/7, Ubuntu 14.04/16.04 servers.
  5. Save the file.
  6. Reload Apache.service httpd restart


Our Heroic Support™ team is equipped with talented and knowledgeable techs who can discuss ways to enhance your environment.  After reading through our series if you still have questions our techs can walk you through the outlined steps. For our customer with Fully Managed servers, we are happy to pick up the torch and take the lead by directly implementing the changes in this article.  We are just a phone call, chat or ticket away from aiding you through the process.

How to enable EPEL repository?

The EPEL repository is an additional package repository that provides easy access to install packages for commonly used software. This repo was created because Fedora contributors wanted to use Fedora packages they maintain on RHEL and other compatible distributions.

To put it simply the goal of this repo was to provide greater ease of access to software on Enterprise Linux compatible distributions.

What’s an ‘EPEL repository’?

The EPEL repository is managed by the EPEL group, which is a Special Interest Group within the Fedora Project. The ‘EPEL’ part is an abbreviation that stands for Extra Packages for Enterprise Linux. The EPEL group creates, maintains and manages a high quality set of additional packages. These packages may be software not included in the core repository, or sometimes updates which haven’t been provided yet.
Continue reading “How to enable EPEL repository?”

Fully Managed Templates Now Optimized with FCGI

Your fully managed cPanel server has several different PHP handlers from which to choose, including DSO, SuPHP, and FCGI. These handlers are responsible for reading/interpreting PHP code, then compiling and executing it.

Selecting the best PHP handler for your server is critical to overall performance, but it’s not always an easy choice to make. While FCGI currently is the best-performing PHP handler available on cPanel, it can be somewhat difficult to properly configure.

Since we’re the best Managed Hosting company around, we decided to take care of the initial configuration for you to help make your decision that much easier.

Liquid Web has spent the past few months optimizing FCGI settings to achieve the best performance gains possible while lowering resource utilization and further improving stability. Today, we’re thrilled to announce that we’ve updated our Fully Managed CentOS 6 and CentOS 7 templates to include these optimizations by default!

What type of performance gain does FCGI provide over SuPHP? We’re glad you asked!

To measure performance, we installed a default WordPress site on a Zone C 16 GB Storm VPS, then used Apache Benchmark to hit the server with 10 concurrent connections, and a total of 1,000 requests.

PHP with FCGI and OPcache performed 5 times faster than suPHP in this simpla Apache Benchmark test

With SuPHP as the PHP handler, we were able to get around 30 requests per second. Once we switched the PHP handler to FCGI with our optimizations (which include enabling and configuring OPcache), we were able to get more than 150 requests per second! In this case we saw a 500% increase in performance!

These optimizations are not reserved for new Storm® VPS and Dedicated servers, either. If you have an existing fully managed cPanel server and would like to take advantage of the performance gains FCGI and OPcache can bring to your sites, let us know! Our Heroic Support® technicians can quickly examine your server’s current settings and walk you through any changes necessary to help your server realize its full potential with FCGI and OPcache.

How to Install mlocate (locate and updatedb Commands) on CentOS 6

One of the best tools for quickly finding files by filename is the locate command. The locate command reads one or more databases prepared by updatedb and writes file names matching at least one of the patterns to standard output, one per line.

Pre-Flight Check
  • These instructions are intended specifically for installing mlocate on CentOS 6.
  • I’ll be working from a Liquid Web Self Managed CentOS 6 server, and I’ll be logged in as root.

Continue reading “How to Install mlocate (locate and updatedb Commands) on CentOS 6”

How to Update the glibc (GNU libc) in CentOS / Red Hat

Updating glibc on Red Hat Linux or CentOS Linux is a very simple process. Most commonly you will use the following command in the case of a security vulnerability, or perhaps just to verify that you’re running the most up-to-date library:

Continue reading “How to Update the glibc (GNU libc) in CentOS / Red Hat”

How to Check the glibc (GNU libc) Version on CentOS 6 and CentOS 7

Pre-Flight Check
  • These instructions are intended specifically for checking the installed version of glibc.
  • I’ll be working from a Liquid Web Core Managed CentOS 6 and CentOS 7 server, and I’ll be logged in as root.

Continue reading “How to Check the glibc (GNU libc) Version on CentOS 6 and CentOS 7”

How to Install the Open Query Graph engine (OQGRAPH) for MariaDB 10.0 on CentOS 6

MariaDB is a drop-in replacement for MySQL. It is easy to install, offers many speed and performance improvements, and is easy to integrate into most MySQL deployments. Answers for compatibility questions can be found at MariaDB versus MySQL – Compatibility. MariaDB offers more storage engines than MySQL, including Cassandra (NoSQL), XtraDB (drop-in replacement for InnoDB), and OQGRAPH.

Pre-Flight Check
  • These instructions are intended for installing the Open Query Graph engine (OQGRAPH) for MariaDB 10.0 on CentOS 6.
  • I’ll be working from a Liquid Web Core Managed CentOS 6.5 server, and I’ll be logged in as root.
  • Your server should already have MariaDB 10.0 installed. If you’re working from MySQL 5.1 or MariaDB 5.5, visit our tutorial on How to Upgrade MySQL 5.1 to MariaDB 10.0 on CentOS 6

Continue reading “How to Install the Open Query Graph engine (OQGRAPH) for MariaDB 10.0 on CentOS 6”

How to Install the Cassandra Storage Engine for MariaDB 10.0 on CentOS 6

MariaDB is a drop-in replacement for MySQL. It is easy to install, offers many speed and performance improvements, and is easy to integrate into most MySQL deployments. Answers for compatibility questions can be found at: MariaDB versus MySQL – Compatibility. MariaDB offers more storage engines than MySQL, including Cassandra (NoSQL), XtraDB (drop-in replacement for InnoDB), and OQGRAPH.

Pre-Flight Check
  • These instructions are intended for installing the Cassandra Storage Engine for MariaDB 10.0 on CentOS 6.
  • I’ll be working from a Liquid Web Core Managed CentOS 6.5 server, and I’ll be logged in as root.
  • Your server should already have MariaDB 10.0 installed. If you’re working from MySQL 5.1 or MariaDB 5.5, visit our tutorial on: How to Upgrade MySQL 5.1 to MariaDB 10.0 on CentOS 6

Continue reading “How to Install the Cassandra Storage Engine for MariaDB 10.0 on CentOS 6”