Some performance instructions
This commit is contained in:
parent
2d1b261fad
commit
890b69f40f
1 changed files with 193 additions and 0 deletions
193
mods/performance-improvements.txt
Normal file
193
mods/performance-improvements.txt
Normal file
|
@ -0,0 +1,193 @@
|
||||||
|
A little guide to increase the performance of a friendica site
|
||||||
|
**************************************************************
|
||||||
|
|
||||||
|
At first
|
||||||
|
========
|
||||||
|
|
||||||
|
Feel freee to ask the friendica support at
|
||||||
|
<https://helpers.pyxis.uberspace.de/profile/helpers> if you need some
|
||||||
|
clarification about the following instruction or if you need help in any
|
||||||
|
other way.
|
||||||
|
|
||||||
|
System configuration
|
||||||
|
====================
|
||||||
|
|
||||||
|
Please go to /admin/site/ on your system and change the following values:
|
||||||
|
|
||||||
|
* Set "JPEG image quality" to 50.
|
||||||
|
|
||||||
|
This value reduces the data that is send from the server to the client.
|
||||||
|
50 is a value that doesn't influences image qualitity too much.
|
||||||
|
|
||||||
|
* Set "OStatus conversation completion interval" to "never".
|
||||||
|
|
||||||
|
if you are having many OStatus contacts then completing of conversations
|
||||||
|
can be very time wasting. The downside: You won't see any answer in
|
||||||
|
OStatus conversations.
|
||||||
|
|
||||||
|
* Set "Path for lock file" to an empty folder outside your web root.
|
||||||
|
|
||||||
|
Lock files help avoiding the situation that several background processes
|
||||||
|
run at the same time.
|
||||||
|
|
||||||
|
For example: It can happen the the poller.php is working longer than
|
||||||
|
expected. When there would be no lock file than maybe several instances
|
||||||
|
of poller.php would run at the same time - which would slow down the
|
||||||
|
systen and would affect the maximum numbers of processes and database
|
||||||
|
conenctions.
|
||||||
|
|
||||||
|
Please define a full file path that is writeable by the web server
|
||||||
|
process. If your site would be located at "/var/www/sitename/htdocs/"
|
||||||
|
you maybe could create a folder "/var/www/sitename/temp/".
|
||||||
|
|
||||||
|
* Enable "Use MySQL full text engine"
|
||||||
|
|
||||||
|
When using MyISAM (default) this speeds up the search.
|
||||||
|
|
||||||
|
* Set "Path to item cache" to an empty value outside your web root.
|
||||||
|
|
||||||
|
Parsed BBCode and some external images will be put there. Parsing BBCode
|
||||||
|
is a timewasting process that also uses much CPU speed.
|
||||||
|
|
||||||
|
You can use the same folder like you used for the lock file.
|
||||||
|
|
||||||
|
---------
|
||||||
|
!Warning!
|
||||||
|
---------
|
||||||
|
|
||||||
|
The folder for the item cache is cleaned up regularly. Every file that
|
||||||
|
exceedes the cache duration is deleted. If you accidently would point
|
||||||
|
the cache path to your web root then you would delete your webroot!
|
||||||
|
|
||||||
|
So ensure twice that the folder only contains temporary content that can
|
||||||
|
be deleted at any time.
|
||||||
|
|
||||||
|
You have been warned.
|
||||||
|
|
||||||
|
P.S. It happened to me :)
|
||||||
|
|
||||||
|
Plugins
|
||||||
|
=======
|
||||||
|
|
||||||
|
Active the following plugins:
|
||||||
|
* Alternate Pagination
|
||||||
|
* Privacy Image Cache
|
||||||
|
* rendertime
|
||||||
|
|
||||||
|
Alternate Pagination
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Description:
|
||||||
|
|
||||||
|
This plugin reduces the database load massively. Downside: You can't see
|
||||||
|
anymore the number of pages.
|
||||||
|
|
||||||
|
Administration:
|
||||||
|
|
||||||
|
Go to the admin settings of "altpager" and set it to "global".
|
||||||
|
|
||||||
|
Privacy Image Cache
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Description:
|
||||||
|
|
||||||
|
This plugin is prefetching external content and stores it into the
|
||||||
|
cache. Besides speeding up the page rendering it is also good for
|
||||||
|
keeping the privacy of your users, since embedded pictures would be
|
||||||
|
loaded from your site and not from a foreign site (that could spy on the
|
||||||
|
IP addresses).
|
||||||
|
|
||||||
|
Additionally it helps with content from external sites that are having a
|
||||||
|
slow performance or that are aren't online all the time.
|
||||||
|
|
||||||
|
Administration:
|
||||||
|
|
||||||
|
Please create a folder named "privacy_image_cache" and "photo" in
|
||||||
|
your web root. If these folders exists then the cached files will be
|
||||||
|
stored there. This has the great advantage that your webserver will
|
||||||
|
fetch the files directly from there.
|
||||||
|
|
||||||
|
rendertime
|
||||||
|
----------
|
||||||
|
|
||||||
|
This plugin doesn't speed up your system. It helps analysing your
|
||||||
|
bottlenecks.
|
||||||
|
|
||||||
|
When enabled you see some values like the following at the bottom of
|
||||||
|
every page:
|
||||||
|
|
||||||
|
Performance: Database: 0.244, Network: 0.002, Rendering: 0.044, Parser: 0.001, I/O: 0.021, Other: 0.237, Total: 0.548
|
||||||
|
|
||||||
|
* Database: This is the time for all database queries
|
||||||
|
* Network: Time that is needed to fetch content from external sites
|
||||||
|
* Rendering: Time for theme rendering
|
||||||
|
* Parser: The time that the BBCode parser needed to create the output
|
||||||
|
* I/O: Time for local file access
|
||||||
|
* Others: Everything else :)
|
||||||
|
* Total: The sum of all above values
|
||||||
|
|
||||||
|
These values are showing your performance problems.
|
||||||
|
|
||||||
|
Webserver
|
||||||
|
=========
|
||||||
|
|
||||||
|
If you are using apache pease enable the following modules.
|
||||||
|
|
||||||
|
Cache-Control
|
||||||
|
-------------
|
||||||
|
|
||||||
|
This module tells the client to cache the content of static files so
|
||||||
|
that they aren't fetched with every request.
|
||||||
|
|
||||||
|
Enable the module "mod_expires" by typing in "a2enmod expires" as root.
|
||||||
|
|
||||||
|
Please add the following lines to your site config in the "directory"
|
||||||
|
context.
|
||||||
|
|
||||||
|
<IfModule mod_expires.c>
|
||||||
|
ExpiresActive on
|
||||||
|
ExpiresDefault "access plus 1 week"
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
See also: http://httpd.apache.org/docs/2.2/mod/mod_expires.html
|
||||||
|
|
||||||
|
Compress content
|
||||||
|
----------------
|
||||||
|
|
||||||
|
This module compresses the traffic between the webserver and the client.
|
||||||
|
|
||||||
|
Enable the module "mod_deflate" by typing in "a2enmod deflate" as root.
|
||||||
|
|
||||||
|
See also: http://httpd.apache.org/docs/2.2/mod/mod_deflate.html
|
||||||
|
|
||||||
|
PHP
|
||||||
|
===
|
||||||
|
|
||||||
|
FCGI
|
||||||
|
----
|
||||||
|
|
||||||
|
When using apache think about using FCGI. When using a Debian based
|
||||||
|
distribution you will need the packages named "php5-cgi" and "
|
||||||
|
libapache2-mod-fcgid".
|
||||||
|
|
||||||
|
Please refer to external documentations for a more detaillied
|
||||||
|
explanation how to set up a system based upon FCGI.
|
||||||
|
|
||||||
|
APC
|
||||||
|
---
|
||||||
|
|
||||||
|
APC is an opcode cache. It speeds up the processing of PHP code.
|
||||||
|
|
||||||
|
When APC is enabled, friendica uses it to store configuration data
|
||||||
|
between different requests. This helps speeding up the page creation
|
||||||
|
time.
|
||||||
|
|
||||||
|
Database
|
||||||
|
========
|
||||||
|
|
||||||
|
There are scripts like tuning-primer.sh <http://www.day32.com/MySQL/>
|
||||||
|
and mysqltuner.pl <http://mysqltuner.pl> that analyse your database
|
||||||
|
server and that are giving hints on values that could be changed.
|
||||||
|
|
||||||
|
Please enable the slow query log. This helps being aware of performance
|
||||||
|
problems.
|
Loading…
Reference in a new issue