While we have developed our email marketing software to work with the majority of default server settings there are always options you can look into for optimizing your server to make things even faster. While we are continually working to optimize our software the speed is entirely based on your server(s) and server configurations.
IMPORTANT: This document outlines all suggestions we have for speed and optimizing your server. For further assistance you would need to consult with a third party server administrator as server administration is not available with our support services.
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:
- 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
- Add a line (or update if it is there) with the following:
innodb_flush_log_at_trx_commit=0
- Add a line (or update if it is there) with the following:
innodb_buffer_pool_size=1G
- 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”
- 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
When sending email our email marketing software pushes the email to your mail server. Delivery after that is entirely up to your mail server and if your mail server cannot send quickly it could cause your overall sending to be slower than you desire. Here are a couple options to optimize some of the popular mail platforms.
Consider a using our hosted service:
- With our hosted service we manage the sending on an infrastructure designed for speed and reliability.
Can’t use our hosted service? Try a commercial MTA.
- Request more information about using PowerMTA as your mail server.
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 lots 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-showctlThere 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 concurrencyremote to several hundred be prepared for Qmail to start using up more memory as you send.
If you are using Sendmail:
- While we certainly prefer Qmail over Sendmail (for a variety of reasons) here is some information to help you optimize and work with Sendmail on your server.
- There is a main configuartion 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 (http://bit.ly/SaBuu)
- 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
We are often asked what the “ideal” server would be for our software. We design our software in a way that it works on nearly all servers that are properly configured with PHP & MySQL.
With that being said our ideal server would be:
- Linux server (typically we go with Redhat)
- PHP5 (latest stable version)
- MySQL (latest stable version)
- Optimized MySQL for Innodb tables (see above)
- PowerMTA 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)
- A higher end processor (we suggest multiple quad-cores)
- We do not suggest having your database or mail 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 you would need to consult with a third party server administrator as server administration is not available with our support services.
Related posts:
- Moving Your Software to Another Server
- Forwarding Emails to the PIPE Script
- Mail Sending Throttling Settings Explained