Identifying Performance Bottlenecks
By: Chris Lewis
There are many elements that are involved in email distribution that can affect performance. When you have to send out a few thousand emails performance does not really matter as much, but if you are in the ten's or hundred's of thousands then performance is crucial. The flow of an email distribution system is:
SQL or file-based Database with email addresses and other info (SQL Server, Access, Oracle, etc.)
Email merging and sending software (Campaign Enterprise)
Mail Transport system (SMTP) like PowerMTA, Ironport, etc.
Bottlenecks can occur in these systems, as a result of the merges within an email itself, or depending on how these systems are placed in a network, the connections between them. The way to diagnose this is to start from the back and work your way up front.
Checking the MTA
The #1 bottleneck we have found historically is the MTA. Campaign can send emails faster but it is wait for the MTA to accept the emails. In order to find out if this is the bottleneck you will need to send the emails to a different MTA that will accept emails at an extreme speed. Then, if the sending speed increases due to this switch, then you know it is either the MTA or the connection to the MTA system. The simplest way to do this in Campaign Enterprise is to:
1. Create an SMTP Connection that sends the emails to a folder (EML files) instead of the MTA. Do do this, after logging in as an administrator, go the the Administrator link, choose SMTP Connections, then create a new SMTP connection and select EML Files, and set a scratch folder on a disk the EML files can be sent to.
2. Change your Campaign's sending SMTP setting to this new EML files setting
3. Run the campaign. You can stop it after a few thousand emails or 1 minute, it should be sufficient to get a performance
4. Go to the reports for that campaign and see what your performance is in the Overall Report
If your speed increase after this test, then you can assume the issue is your MTA or the path to it and that should be addressed. Many MTAs are busy doing other things, they could have throttling agents in place for mass-mailings, etc. So if this happens to be the case, then there is plenty to check out. Sometimes when the MTA is on the same box as the database and the Campaign Enterprise, it is true that communications between these system can be really fast, but it may end up being slower overall because the computer has to manage all these processes even with multiple cores.
Writebacks During Send
If you are writing-back to the database after each email goes out, then you should probably disable this code for the test above if there is no improvement. It is possible though this write-back activity could be the bottleneck, so if you can leave it in for this test and reset the data after you run the campaign that would be best.
Merge Field Performance
If you have a lot of merge fields in the message, especially if it is a large message, then that can cause a bottleneck. Remove all the merges from the email and send a test Campaign to the EML files.
If your performance is going down sometimes a your emails may be unknowingly getting bigger and require more transmission time. Reduce your email to a simple 1 line email and test again using the EML files setting. If the performance speeds up this may be the problem.
If you have embedded images in your email, that can slow down transmission of the emails. Also Campaign Enterprise always does a scan for embedded images in an email. If you are not using embedded images you can go to the Miscellaneous tab for the Campaign and check the box to ignore the embedded images scan.
If extreme rare cases your database may be the issue. If none of the steps above help performance then it may be your SQL server or single database file. Best way to test this is just to keep dumbing-down the SQL statement you are using until it is very simple. Usually single database files are very fast, like MS Access, but SQL servers can be busy or on a different computer on a busy network. We found many times an SQL server really slows down when batch processes are being done on them, like backups or mass data updates.
If you find that none of these are helping, we can definitely help further by logging into you system for an analysis.
Campaign Enterprise Version 12
By: Chris Lewis
After years of development and a complete re-write, Campaign Enterprise version is close to completion. We have had many inquires about what will be included in the new release. It might be good first to show how the software has developed over time.
Back in the early 90's, Arial Software was created just about when the internet was gaining steam. The first product we created was a desktop emailing system. It was basically a glorified Microsoft Outlook, had some merging capabilities, but nothing like SPAM or unsubscribes existed back then. As the internet changed and SPAMing became a reality, the software change to accommodate this. Then Campaign Enterprise was created which was the first web-based product we had with a built in webserver. This webserver was pretty simple but there was no configuration required and back then IIS was very difficult to configure and not get hacked. Campaign Enterprise continued to accommodate for new SPAM rules, new online editors, new operating systems, and new databases. During this time the same code has been used and features like multi-threading, SSL security, and other webserver system were added. The things we created ourselves were now becoming available in the .NET programming world and though our systems were stable, it was time to move the system to a new language and platform.
For the past year we have been rewriting Campaign Enterprise from the ground-up. Campaign Enterprise is now completely written in the .NET framework, supports true multi-threading managed by the OS, and the platform for the webserver is now IIS (Microsoft's Internet Information Service). Campaign Enterprise now works as two separate systems working in harmony. The webserver aspect of the product, used for campaign administration, conversion event resolution, views-as-webspage function, and unsubscribe functions is now all IIS driven. Now, you will have control over all aspects of how the products works, like security, SSL certificates for HTTPS functions, NTML user authentication, and everything else IIS offers.
Also, the back-end database for Campaign Enterprise will now be based on Microsoft's SQL server. Campaign Enterprise will include a version of SQL server or you can use your own existing SQL server by creating the appropriate database volume.
There is much more to come, but below is a short-list of the new capabilities of Campaign Enterprise version 12: