IMPORTANT: This document outlines all suggestions we have for speed and optimizing your server.  For further assistance contact us. We have service plans that support our clients.

Optimize Your Database (Highly Suggested)

The software uses MySQL for the database.  There are a couple configuration options you can adjust to improve the speed of MySQL.

All tables for the software are in INNODB format.  Meaning that you will need to ensure that the config options for INNODB are ok.  On some servers the default setting for INNODB tables is very low causing significant slow downs when dealing with data.  So you can see a big increase in performance by making the following changes on those servers.

Steps we suggest:

  1. Find and open your MySQL config file.
    On linux this is typically at /etc/my.cnf.   On Windows this is typically a file in your MySQL folder named my.ini
  2. Add a line (or update if it is there) with the following:
    innodb_flush_log_at_trx_commit=0
  3. Add a line (or update if it is there) with the following:
    innodb_buffer_pool_size=1G
  4. Set the above size to 50% of the available memory on the server.  In the above we set it to “1G” for if you have 2GB available on the server.  If you have 8 GB on the server you could set this to “4G”
  5. You MUST restart MYSQL on the server for these changes to be used.

Other database notes:

  • We do not suggest using the cloud (any cloud) for running your database
  • An average sized install should have 8-16GB of ram. Larger installs may require more.
  • We suggest multiple quad-core processors
  • We do not advise running Windows/IIS.  Linux is preferred.
  • For optimal results have a server dedicated for your database with only MySQL installed on that server.

Optimize Your Mail Server

Consider a commercial mail server:

  • We suggest you look into Google Mail server exclusively. It will provide greater speed, configuration options, and reliability.

If you are using QMAIL:

  • There are a couple setting files that you will want to take a look at.  If you do not have these files you can try to create them.
    • /var/qmail/control/concurrencyremote
      Usually is a default around 10 or 20. We suggest to increase this to 250 or above if your memory can handle it.   This is the file that you want to adjust.
    • /var/qmail/control/concurrencylocal
      Usually is a default around 20 or 30.  You can increase this to a higher number. Please note however – when sending large amounts of mail (to users outside of your server) concurrencyremote will be the file you want to change.
  • The files should simply contain the number you wish to have for that concurrency type.  After you change the files (or create the files) you MUST restart the Qmail service on your server.  If you want to see the current settings that your Qmail is using you can run # /var/qmail/bin/qmail-showctl.  There is a hard limit that is set when Qmail is built – so you do not want to go crazy with your concurrency settings.  Often you can push the concurrency up to 500 and in some default setups of Qmail you can go up to 1,000.  You should ensure that you have the memory/RAM to back up your settings though.  If you set your concurrency connections to several hundred, be prepared for Qmail to start using up more memory as the server is online.

If you are using Sendmail:

  • Here is some information to help you optimize and work with Sendmail on your server.
    • There is a main configuration file when dealing with Sendmail.  This can be found at:
      /etc/sendmail.cf
    • This is the file that you will likely want to edit to make your optimizations.
    • There are numerous custom changes and modifications you could make to Sendmail.  Here are a couple we would suggest looking into:
      • Change the Timeout.ident setting to be “Timeout.ident=0s”
      • Configure Sendmail’s command-line submission tool to background itself after getting the email  instead of trying to deliver it to the main Sendmail daemon
      • Setup your own DNS server.  Then configure Sendmail to use your new DNS server to resolve MX and A records.
      • Tune Sendmail (http://www.sendmail.org/~ca/email/doc8.12/TUNING)
      • Try switching to Qmail or Postfix and you will likely see improved speed even with the default configurations of both Qmail and Postfix.

Optimize Your Software

If you optimize your database and mail server you can then look at the Settings > Mail Connections page to check the throttle or mail pausing settings.  These settings are designed to limit or slow down the sending speed if needed.  Regardless of these settings your sending speed may be slower due to your web server performance and/or your mail server performance.

Suggested Server Specs

With that being said our ideal server would be:

  • Linux server (typically we go with Kubuntu (LTS)): Never use Bata servers in production
  • PHP5 (latest stable version)
  • MySQL (latest stable version)
  • Optimized MySQL for Innodb tables (see above)
  • Google mail for the mail server (see above)
  • A good amount of memory (RAM) on the server (we suggest 8-16GB as a minimum for an average install, large installs should have more) but you can use any mail server that you feel comfortable
  • A higher end processor (we suggest multiple quad-cores)
  • We do not suggest having your database server in the cloud at all

The above specs are a combination of what we personally like and use for our own marketing.  You can certainly use the software on many other configurations if you wish.

IMPORTANT: This document outlines all suggestions we have for speed and optimizing your server.  For further assistance contact our team as we have service plans that support our clients using these technologies.

Fully Managed Option: You are eligible for free migration assistance to our hosted service (where we manage the servers, delivery, upgrades, etc..)  Contact us for more details