[horde] Apache Performance tuning with Horde

Arjen de Korte arjen+horde at de-korte.org
Thu Dec 4 11:49:35 UTC 2014


Citeren Patrick De Zordo <patrick at spamreducer.eu>:

> Dear guys,
>
> I am wondering since I have installed Horde if there are some proofed apache
> performance tuning guidelines.
>
>
>
> Short test system description:
>
> -          1 CPU, 2GB RAM, SSD HDD

That is not a whole lot of RAM. You'll probably benefit much more from  
using more RAM than an SSD (which is at least an order of magnitude  
slower than RAM/tmpfs). Given enough RAM in your system, even caching  
to harddisk may be fairly responsive.

> -          Ubuntu 14.04.1 LTS
>
>
>
> Every time an ActiveSync client connects to the Horde server it keeps an
> apache process up to nearly 100% CPU consumption for about 10 seconds and
> makes some disk readings in the meantime. I think it is because Horde have
> to look through all the IMAP structure for changed since last sync. Is my
> assumption true?

If you're using something like Courier-IMAP (or another non-caching  
server), yes. If you're using something like Dovecot, this should take  
next to no time at all, as long as you use the Dovecot LDA for local  
delivery (which will keep the index files up to date).

> Now, suppose there are 10 users opening their Outlook ActiveSync client at
> the same time.. the server will not be able to process other requests
> anymore; it will just get stuck till all the 10 clients have done the IMAP
> parsing.

That's why you want an IMAP server that uses caching (like Cyrus or Dovecot).

> We have enabled the apache2 PHP 5.5.9 internal OpCache + local Memcached.

On a single machine, filebased caching using a tmpfs volume will be  
faster than Memcached. Unless you're using multiple servers in  
parallel, I'd recommend against using Memcached.

> Is there a possibility to speed up things? Any caching on IMAP-side?

If you don't already have that, this will probably yield the most.

> Is this behavior just because we are using a single processor environment?

Only if you're not limited by I/O, which you really should be checking  
by profiling what is happening. Xdebug and cachegrind (I use  
KCacheGrind) are your friends here. You wouldn't be the first to find  
that your PHP processes are spending a lot of time in usleep(). See  
http://www.xdebug.org/docs/profiler for more info.

-- 
This message was sent from a mailinglist subscription address.
For off-list replies, you must remove the address extension.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5849 bytes
Desc: S/MIME Signature
URL: <http://lists.horde.org/archives/horde/attachments/20141204/70b49eb9/attachment.bin>


More information about the horde mailing list