I did it ok. Now it is set to 1024M. Today I have sent 2 campaigns. The first one was to a list of 3500 which was normally delivered in 13 min but today it was down to 7min.
Than I have sent another campaign to 41.644 subscribers, which was fiinished in 111 min.
This makes 375 sends/min, which is 6.25 sends per sec and my quota is 90 per sec. Is there any other setting I have to check? I can not even get to the speed you get on your micro instance.
Today I have sent 2 campaigns. The first one was to a list of 3500 which was normally delivered in 13 min but today it was down to 7min. Than I have sent another campaign to 41.644 subscribers, which was fiinished in 111 min. This makes 375 sends/min, which is 6.25 sends per sec and my quota is 90 per sec.
Now that your sending speed increases when your PHP allocated memory_limit increases, this means you'll need to increase your server memory in other to get even higher sending speeds. Which means upgrading to a more powerful instance.
Is there any other setting I have to check? I can not even get to the speed you get on your micro instance.
The only difference now is that I'm sending on Linux and you're sending on Ubuntu. Apparently there's a difference in performance.
I guess you can only try changing to Linux with a higher CPU and memory. Processing 90 jobs at once is very taxing and apparently it takes longer than 1 second.
Hi ben, Today I have sent to 41.583 subscribers after upgrade to standard medium instance, it took 66 min to deliver. It is better. Would indexing the subscriber table result in better performance?
Today I have sent to 41.583 subscribers after upgrade to standard medium instance, it took 66 min to deliver. It is better.
The higher your server performance, the faster it will send.
Let me give you an analogy using a body builder as an example:
Number of bicep curls a LIGHT weight bolder builder can do in 5 seconds with a 50kg weight
Maybe 5 reps
Number of bicep curls a HEAVY weight body builder can do in 5 seconds with a 50kg weight
Maybe 10 reps
The stronger a body builder is, the more bicep curls he can do in less time with the same weight.
The more memory / CPU a server has, the more it can process in less time with the same number of emails.
Would indexing the subscriber table result in better performance?
You can try. But if you index the subscriber table, you will slow down the import of new subscribers, eg. when you do a CSV import - it will be significantly slower.
I have made multiple sends of which I'd like to share the results (with a medium instance at AWS):
Subscribers Duration sends per sec
3.595 3 min 20
135.856 366min 6.20
56.052 82min 11.40
22.857 27min 14.10
41.543 66min 10.50
Its almost not readable, here the summary:
best performance 20mails/sec when sending to 3.595 subscribers
worst performance 6.20mails/sec when sending to 135.856 subscribers
Thanks for the stats. If you want even higher speeds, scale up your instance. To understand why, read my explanation above (the one with the analogy).
I want to close by saying this (again) - Sendy uses multi-threading to send your emails, it processes your send rate of 70 emails at once in each iteration. If you server is powerful enough, it can process this bulk of emails in 1 second. Then, your overall sending speed will be fast.
Comments
You can include this code in .htaccess:
php_value memory_limit 1024M
I did it ok. Now it is set to 1024M. Today I have sent 2 campaigns. The first one was to a list of 3500 which was normally delivered in 13 min but today it was down to 7min.
Than I have sent another campaign to 41.644 subscribers, which was fiinished in 111 min.
This makes 375 sends/min, which is 6.25 sends per sec and my quota is 90 per sec. Is there any other setting I have to check? I can not even get to the speed you get on your micro instance.
Hi @Ergun,
Now that your sending speed increases when your PHP allocated
memory_limit
increases, this means you'll need to increase your server memory in other to get even higher sending speeds. Which means upgrading to a more powerful instance.The only difference now is that I'm sending on Linux and you're sending on Ubuntu. Apparently there's a difference in performance.
Thanks.
Ben
Final score it took 24 hours to finish last campaign of 196000 subscribers. Its getting worse then before.
Hi @Ergun,
I guess you can only try changing to Linux with a higher CPU and memory. Processing 90 jobs at once is very taxing and apparently it takes longer than 1 second.
Thanks.
Ben
Ok. I will try. A reason mine is too slow may be the number of subscribers. I have 300.000K subscribers on my db.
That may be one of the reasons too.
I just setup a Large instance on EC2 (Apache/Linux). Allocated 7GBs in
memory_limit
for PHP.I test sent to 15,000 emails and it took only 13 minutes.
Compared to one your campaigns where you said:
It took 13 minutes to deliver 15,000 on my Large instance.
The sending speed is significantly higher when the server specs are better.
Hi ben, Today I have sent to 41.583 subscribers after upgrade to standard medium instance, it took 66 min to deliver. It is better. Would indexing the subscriber table result in better performance?
The higher your server performance, the faster it will send.
Let me give you an analogy using a body builder as an example:
Number of bicep curls a LIGHT weight bolder builder can do in 5 seconds with a 50kg weight
Number of bicep curls a HEAVY weight body builder can do in 5 seconds with a 50kg weight
The stronger a body builder is, the more bicep curls he can do in less time with the same weight.
The more memory / CPU a server has, the more it can process in less time with the same number of emails.
You can try. But if you index the subscriber table, you will slow down the import of new subscribers, eg. when you do a CSV import - it will be significantly slower.
I have made multiple sends of which I'd like to share the results (with a medium instance at AWS):
Subscribers Duration sends per sec
3.595 3 min 20
135.856 366min 6.20
56.052 82min 11.40
22.857 27min 14.10
41.543 66min 10.50
Its almost not readable, here the summary:
best performance 20mails/sec when sending to 3.595 subscribers
worst performance 6.20mails/sec when sending to 135.856 subscribers
Hi @Ergun,
Thanks for the stats. If you want even higher speeds, scale up your instance. To understand why, read my explanation above (the one with the analogy).
I want to close by saying this (again) - Sendy uses multi-threading to send your emails, it processes your send rate of 70 emails at once in each iteration. If you server is powerful enough, it can process this bulk of emails in 1 second. Then, your overall sending speed will be fast.
Thanks.
Ben