Thanks for the advices and after several testing, I found something which I hope to share with someone who thought helpful.
when I first time to send an email to 16000 recipients , it almost took 30 minutes when i saw the last record finished in /opt/zimbra/log/mailbox.log.
and after 5 or 10 minutes, I sent another email again to such 16000 recipients. it just took about 12~15 minutes.
Therefour, I suppose that I should always reboot the system just to meet the real case.
Ok, so that it now always takes 25~30 minutes in every test.
Well, keep post short, and here's my result:
I found this two parameters are very useful to my case, and they are :
1. disable lucene write cache by :
zmlocalconfig -e zimbra_index_max_uncommitted_operations=0
2. set batchindexsize to 20 by :
zmprov mc default zimbraBatchedIndexingSize 20
it redunces the delivery time from 30 minutes to 10~12 minutes.
and please take care about the "zimbraBatchIndexSize" , if you increate this value too large, sometimes it will cause your "mta" failed to start.
by the way, i've also changed these mysql parameters:
1. table_cache
2. innodb_open_files
3. innodb_buffer_pool_size (check your RAM size first, before changing this value)
However, i don't find any significant improvement, thus I think Lucene is the bottleneck in my case.
my testing environment is on zcs 5.0.13 (running on P4 dual-core, 4G RAM, 200SATA hd, centOS 4.4 32-bit), and anti-spam and anti-virus are both disabled. and running "iostat" during email delivery shows regular iowait is in 40%~80% range, and CPU idle percentage is about 30%~5% (looks like I have CPU bottleneck here ??)
any other comment will be highly appreciated.
Thanks. |