-
Notifications
You must be signed in to change notification settings - Fork 19
Performance Tuning
This article describes Achievo performance tuning. It was adapted from Speed up Achievo in the ibuldings Achievo wiki. The original material appears to have been written prior to the release of Achievo 1.4, and although being updated, be aware that not all topics or recommendations may apply to the current release, current development, or the version you are using.
Please help update this article with your own experiences.
In atkconf.inc change the following config:
$config_debug = -1;
This will reduce the memory usage and give some performance.
In atkconf.inc you can add the following config:
$config_output_gzip = true;
The Apache mod_deflate module (Apache 2.2 docs) provides the DEFLATE output filter that allows output from your server to be compressed before being sent to the client over the network.
This Configure mod deflate for Apache 2.2 article may also be of interest.
# Netscape 4.x has some problems... BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.06-4.08 have some more problems BrowserMatch ^Mozilla/4\.0[678] no-gzip # MSIE masquerades as Netscape, but it is fine # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48 # the above regex won't work. You can use the following # workaround to get the desired effect: BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html # Don't compress everything SetEnvIfNoCase Request_URI \.(?i:gif|jpe?g|png)$ no-gzip dont-vary SetEnvIfNoCase Request_URI \.(?i:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary </ifmodule>
The Apache mod_expires module (Apache 2.2 docs) controls the setting of the Expires HTTP header and the max-age directive of the Cache-Control HTTP header in server responses. By increasing expiration times for files, static content will be fetched more often from cache (rather than from the source).
# cache common graphics for 3 days ExpiresByType image/jpg "access plus 3 days" ExpiresByType image/gif "access plus 3 days" ExpiresByType image/jpeg "access plus 3 days" ExpiresByType image/png "access plus 3 days" # cache CSS for 24 hours ExpiresByType text/css "access plus 24 hours" # cache javascript for 24 hours ExpiresByType text/javascript "access plus 24 hours" ExpiresByType application/x-javascript "access plus 24 hours" ExpiresByType application/javascript "access plus 24 hours" </ifmodule>
The Apache mod_expires module (Apache 2.2 docs) provides directives to control and modify HTTP request and response headers. It is possible to increase the expiration time for headers.
#set expires header to 2 days <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> Header set Cache-Control "max-age=172800, public" </filesmatch>
The FileETag directive (Apache 2.2 docs) configures the file attributes that are used to create the ETag (entity tag) response header field when the document is based on a static file. In your Apache vhost configuration, you can set an entity tag to improve cache management to save network bandwidth.)
FileETag MTime Size
You can speed up Achievo by using a PHP Accelerator (see Wikipedia for a list of accelerators, but the following were cited in the original version of this recommendation:
- APC
- xCache
- Zend Platform (Commercial)
- Zend Community Server (non Commercial)
- eAccelerator
Some people may think of Zend Optimizer an accelerator, but it is actually a byte-code loader for the Zend Guard (encoding) product, and does not include a byte code cache.
If your nodes has multiple manytoone relations, make sure the destination node doesn't contain too many relations. If this is case, just make a simple selector node for it with only the fields needed to get a decent descriptor.