DokuWiki

It's better when it's simple

User Tools

Site Tools


devel:scalability

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
devel:scalability [2019-02-28 13:15] andidevel:scalability [2023-03-11 13:17] (current) – [Pages] Added link which gives guidance on the number of files which can be stored per directory on various file systems. 178.38.198.28
Line 2: Line 2:
  
 This page tries to collect some information about how DokuWiki scales when it becomes "big" and what the limiting factors are. This page tries to collect some information about how DokuWiki scales when it becomes "big" and what the limiting factors are.
- 
  
 95% of everyone considering using DokuWiki will not even need to bother reading this page. Unless you want to run a public wiki for a very popular topic or want to use some very underpowered hardware performance should not be a problem for you. 95% of everyone considering using DokuWiki will not even need to bother reading this page. Unless you want to run a public wiki for a very popular topic or want to use some very underpowered hardware performance should not be a problem for you.
 +
 +As of June 2020, the largest known Dokuwiki installation is over 743,000 pages and there are 25 known wikis with over 100,000 pages((https://forum.dokuwiki.org/d/17250-largest-dokuwikis/)).
  
 ===== Limiting Factors ===== ===== Limiting Factors =====
Line 10: Line 11:
 ==== Pages ==== ==== Pages ====
  
-The number of pages is not limited. Some people have hundred of thousands pages in their wiki and no problems at all, but it all "depends".+The number of pages is not limited. Some people have hundreds of thousands pages in their wiki and no problems at all, but it all "depends".
  
 Your Filesystem will have limits. Commonly there's a limit on how many files can be in a single directory. DokuWiki uses directories for namespaces. So if you namespace your pages you can mitigate the problem. Keep in mind that each revision of a page creates its own file in a directory. Your Filesystem will have limits. Commonly there's a limit on how many files can be in a single directory. DokuWiki uses directories for namespaces. So if you namespace your pages you can mitigate the problem. Keep in mind that each revision of a page creates its own file in a directory.
  
-FIXME add info about file/directory limits of different file systems+The question how many files can be stored on different file systems was answered here: https://stackoverflow.com/questions/466521/how-many-files-can-i-put-in-a-directory
  
 Of course you are limited by disk space. Of course media files, pages and older revisions will take up space. However the data/cache directory can grow quite big over the years - depending on the wiki size a cache directory of a few Gigabytes is not uncommon. By definition everything in the cache directory is optional so you can delete it's contents on the penalty of a small speed reduction until the cache is refilled. Of course you are limited by disk space. Of course media files, pages and older revisions will take up space. However the data/cache directory can grow quite big over the years - depending on the wiki size a cache directory of a few Gigabytes is not uncommon. By definition everything in the cache directory is optional so you can delete it's contents on the penalty of a small speed reduction until the cache is refilled.
 +
 +=== Inodes ===
 +Unix/Linux servers may also have a limit on the number of inodes, which are metadata for each file on the server. Running out of available inodes can interrupt the normal functioning of your server. To reduce the number of inodes used, you can reduce the amount of files used (for example, it might make sense to remove attic files that are over X years old depending on the use case).
  
 ==== Mediafiles ==== ==== Mediafiles ====
Line 39: Line 43:
 DokuWiki relies heavily on files for storing everything. The most significant speed update you can achieve is using an SSD for your setup. DokuWiki relies heavily on files for storing everything. The most significant speed update you can achieve is using an SSD for your setup.
  
-Modern Operating Systems will cache disk access to frequently used files in memory. Them more rAM your server has, the more is available to be used as file system cache.+Modern Operating Systems will cache disk access to frequently used files in memory. The more RAM your server has, the more is available to be used as file system cache.
  
 DokuWiki does a lot of scanning for different files that may not exist. For example we check each plugin directory for the existence of a script.js file. Those non-hits may add up to some significant amounts on very busy Setups. DokuWiki does a lot of scanning for different files that may not exist. For example we check each plugin directory for the existence of a script.js file. Those non-hits may add up to some significant amounts on very busy Setups.
Line 45: Line 49:
 We try to avoid whole directory scans as much as possible, but sometimes it's necessary. The [[config:readdircache]] option may help mitigate the problem somewhat. We try to avoid whole directory scans as much as possible, but sometimes it's necessary. The [[config:readdircache]] option may help mitigate the problem somewhat.
  
-The reliance on the filesystem however makes it extremely difficult to run a DokuWiki on multiple servers. For performance reasons, tt is not recommended to use a network filesystem.+The reliance on the filesystem however makes it extremely difficult to run a DokuWiki on multiple servers. For performance reasons, it is not recommended to use a network filesystem
 + 
 +Disabling access time recording in your filesystem may be a good idea to decrease IO load.
  
 ==== PHP Version ==== ==== PHP Version ====
Line 79: Line 85:
  
 > **dokuwiki.org** has currently 4859 pages with about 15k pageviews per day on average > **dokuwiki.org** has currently 4859 pages with about 15k pageviews per day on average
-> still on PHP 5.6, Linux/ext4, Apache + FPM+> still on PHP 5.6, Linux/ext4 with noatime, Apache + FPM
 > running on a i7-6700 CPU with 64GB of RAM and SSD. That server is running all kinds of other DokuWiki services besides the wiki itself. Everything's fine and snappy. > running on a i7-6700 CPU with 64GB of RAM and SSD. That server is running all kinds of other DokuWiki services besides the wiki itself. Everything's fine and snappy.
 >  --- [[user>andi|Andreas Gohr]] //2019-02-28 12:23// >  --- [[user>andi|Andreas Gohr]] //2019-02-28 12:23//
  
- +>> I am also curious if there are other "big" DokuWiki sites in the world, or perhaps DokuWiki.org itself may be a candidate of the trophy. But it seems hard to find evidence or real statistics isn't it? 
- +>> **[Off-topic]** //I myself is also wondering how such big DokuWiki sites are organized and run.// 
 +>> --- [[user>MilchFlasche|MilchFlasche]] //2019-04-02 10:58//
devel/scalability.1551356130.txt.gz · Last modified: 2019-02-28 13:15 by andi

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki