您有哪些技巧可以加快MediaWiki的安装(性能)?


8

我们安装了MediaWiki,并抱怨它的运行速度越来越慢。我们如何提高速度/性能?

我有一个秘诀(我将在下面添加),但是我真的很想听到更多。每个答案最好有一个提示。



Answers:


4

而不是内存缓存,尤其是在您的站点较小到中等的情况下,因此所有hmtl页的总大小都不是问题-一种简单的解决方案是仅打开文件缓存。

http://www.mediawiki.org/wiki/Manual:File_cache

今天,我花了几个小时试图在我的共享主机上(在bluehost上)打开任何mediawiki建议的内存缓存解决方案,但发现没有办法,然后发现了这个选项,它解决了所有问题。

这是打开了文件缓存的Wiki:

http://robertinventor.com/bmwiki

根据Google Analytics(分析)日志,在文件缓存之前,加载大多数页面需要花费几秒钟,有时甚至更长,有时甚至需要几分钟。


4

这里有一些很棒的技巧。对我而言,最大的影响(在IIS 7上从8秒变为0)是启用缓存和更改$wgDBserver = "127.0.0.1";(从localhost)。由于某种原因,本地主机已通过网络解析。

这是Jaded的全部文章:

  1. 最大的影响之一就是将负载从15秒减少到6或7左右,这是启用Mediawiki缓存和加速的方法,如本文所详述:http : //www.charlesrcook.com/archive/2012/09/12/ mediawiki-iis7-输出缓存和友好的short-urls.aspx。简而言之,请在Mediawiki localsettings.php文件中启用以下功能:

    $wgCacheDirectory = "c:\your\path\to\cache";
    $wgFileCacheDirectory = "c:\your\path\to\cache ";
    $wgEnableSidebarCache = true;
    $wgUseFileCache = true;
    $wgShowIPinHeader = false;
    $wgEnableParserCache = true;
    $wgCachePages = true;
    
    $wgMainCacheType = CACHE_ACCEL;
    $wgMessageCacheType = CACHE_ACCEL;
    $wgParserCacheType = CACHE_ACCEL;
    $wgMemCachedServers = array();
    

    确保本地IUSR和IIS_IUSR帐户对缓存目录具有“修改”权限,否则Mediawiki缓存引擎中的文件和目录将无法对其进行写入。

  2. 我对使用Wincache的PHP缓存进行了一些较小的更改,但是几乎没有影响-如果您希望从PHP的角度来看,请启用并配置它,但是不要指望大的进步。MySQL查询缓存也是如此-我的Wiki站点相对较小,使用最少,因此MySQL查询缓存并没有太大的改进。

  3. 为了使网站更快速运行,棺材里最后一个钉子是修改了我的Mediawiki LocalSettings.php文件中的$ wgDBserver设置。它设置为“ Localhost”,这篇文章http://forums.iis.net/t/1153459.aspx/3/10建议在Windows 7及更高版本上使用“ Localhost”,并且Server 2008及更高版本开始将IPv6纳入页面查询。传输层必须解析本地主机,并且通过在IPv4和IPv6地址之间进行协商来实现,PHP和MySQL在允许页面呈现之前需要解析该地址。看来这仍然不是一个完全受支持的集成协议,因此将$ wgDBserver设置为IPv4地址“ 127.0.0.1”会将呈现过程从6秒缩短到了1秒-问题已解决!




0

这可能与当前版本的MW无关,但请检查php设置mbstring.func_overload。我将其设置为2(这是进行小型zabbix安装的必要条件),并且它破坏了在同一服务器上安装1.12 MW的性能。


谢谢!会检查出来的。
恢复莫妮卡-再见SE

根据:mediawiki.org/wiki/PHP_configuration mbstring.func_overload此选项会导致错误,并可能无法预测地破坏数据;如果打开此选项,MediaWiki将拒绝安装。因此,我认为这不适用。
恢复莫妮卡-再见SE 2010年

0

使用php操作码缓存,请确保dB不是瓶颈,请考虑使用像varnish这样的http缓存。


您能在这里给我更多细节吗?例如链接,如何知道数据库是否是瓶颈,http缓存是什么?我不太了解后端细节。
恢复莫妮卡-再见SE 2010年

Google for mysqltuner.pl,或使用day32.com/MySQL上的mysql-tuner.sh,它们会告诉您是否需要增强缓冲区,查询运行缓慢等。Varnish是可缓存的反向代理类型服务动态网页,学习曲线有些陡峭,但是它是高端服务,因此值得一试。您应该研究的顺序(可能来自网络吞吐量这样的部分)可能是1)操作码缓存2)确定db的性能/性能以及3)清漆。
3molo

Mediawiki甚至有一篇有关使用清漆进行缓存的文章!mediawiki.org/wiki/Manual:Varnish_caching
3molo

忘了提及mediawiki还建议使用memcached在数据库和实际站点之间进行缓存,请参阅mediawiki.org/wiki/Memcached
3molo 2010年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.