Anyone else finding their site grinds to a halt during email sending?
I have 14k subscribers on my email list. I have used Amazon SES to send. My server is a Premium Cloudways server with 8GB of RAM, SSD drive (less than half used) and 4 CPUs. I have noticed that the send process consumes almost 100% of my CPU for about 90 minutes as I send my emails. I initially assumed there would be some kind of 'send rate' control, but there doesn't seem to be one. I could throw more server hardware at this, but it's starting to get quite expensive. Is anyone else having this kind of issue, or found a solution? Thanks!
#performance
I would ask myself couple of questions when troubleshooting such an issue:
-
what is your WP DB size (>500MB?) and number of record (>500k rows?) for fSMTP tables - how many historical email records do you have already in your for fSMTP logs.
Do you see any warnings in: wp-admin > Tools > Site Health. Do you see any speed/CPU difference after disabing or cleaning fSMTP logs?
-
try to disable logging for Fluent CRM emails and clean old logs in your DB table for fCRM too (make sure you have your backup before troubleshooting)
-
is your hosting server located in the same or close region as your AWS SES region (close to the Amazon SES API endpoint)?
Just asking as there might be lags/delays for TLS connection (Handshake process/SMTP conversation) impacting your server performance during email sending.
-
do you use Server-Side Cron Jobs or a regular wp-cron?
-
is there any difference in your server CPU usage when you send small vs heavy emails (>100kb size) to your subscribers or it doesnt matter.
Did you tried to split your subscribers list in to a few separate campagns for troubleshooting?
-
try to change/increase your memory limits:
- WordPress Max Memory
- Maximum execution time aka max_execution_time
- Maximum input time aka max_input_time.
- Maximum input variables aka max_input_vars
Note: I assume you dont you have any strict rules for ports: 465 or 587 and you dont have any timeouts related to exceeding AWS sending quotas within the last 24 hours
Hi Mat. I appreciate the thorough list :) Iβve covered some of those points - particularly around the database size and warning (I havenβt seen any) but there are some other interesting points there - particularly around email size - noticing this issue coincided with starting to use image graphic at the top of each email. Iβll do some experimentation.
Bernhard SmithΒ make sure you use Server Side Cron Jobs for fCRM as it might have impact on CPU.
I am not sure if your subscribers instantly click the CTA button in your emails and visiting your website at the same time causing some performance issues too (I hope they dont DDOS you haha) etc.
ps. if you embed pictures in your email body directly from your server then they might be some other factors related and your servers resources can be impacted too (this is "large" topic related to the email deliverability)
I think you may have just exceeded my technical knowledge there. Any pointers on how I would check to see if I used Server Side Cron Jobs? Thanks again for your help!
Bernhard SmithΒ please read this article:
FluentCRM is a plugin that works continuously in the background to complete and process the tasks that are scheduled every minute like any other Email Marketing Application. This article will guide you through the Primary Requirements of WordPress Cron Job Handover to either Server-side or Alternative Methods
https://fluentcrm.com/docs/fluentcrm-cron-job-basics-and-checklist/
Note: by default WP use wp-cron so your scheduled tasks/fCRM automations can be peformed.
In this case (by default) when you have your website visitor then your WP is "running" wp-cron jobs. But if nobody visit your wordpress then the wp-cron might not invoke the scheduled tasks etc.
So if you use a lot of fCRM automations they are being added to your server tasks list and invoked later with the CRON jobs.
It is recommented to switch wp-cron with server-side cron for better server performance etc.
Also read:
https://spinupwp.com/doc/understanding-wp-cron/
PS. when you disable your wp-cron (in wp-config file) then make sure you run your server-side cron jobs otherwise your WP wont work correctly
define( 'DISABLE_WP_CRON', true );Awesome. Thank you
I've made those changes, and I'm hoping it will help with my next newsletter send. One last question, if my email contains images hosted on my server, is this likely to impact performance - for example as people open the emails? I use CloudFlare and Breeze, but I'm wondering if I might be better hosting those email images on Bunny.net - thoughts? Cheers
Bernhard SmithΒ if you use any good and trusted CDN (CF, Bunny etc) then you shouldnt worry too much about your server performance when it comes to loading images.
BTW: When it comes to embeding images into your emails (especially for cold emails etc) there are some other area to be aware of for example: affecting SPAM scoring but also loading embeded images from server might be blocked by the mail client to prevent tracking (I block loading images or pixels to focus on the email content etc).
Emails that rely too heavily on visuals or lack sufficient text are more likely to be flagged as spam, which can hurt your deliverability.
Aviod images hosted on a domain with questionable reputation
All domains have a reputation. If you are using a domain to host your images and that domain has been negatively flagged, your email too could face a similar fate.
Note: I am not saying images in email are bad but there are different approaches when it comes to email deliverability so it all depends.
Ref:
Thanks again for the detailed feedback Mat!