5

我有一个仅用于登录用户的 MediaWiki 安装,它非常慢(每个请求大约持续 2.5 秒)我经历了我发现的所有缓存和优化步骤。我使用默认配置的 APC,因为我没有发现任何改进,所以我运行了 mediawiki 分析,但我并没有完全理解输出。

forceprofile 的输出如下所示。

100.00% 2.475774      1 - -total
 90.51% 2.240709      1 - Setup.php
 89.56% 2.217199      1 - Setup.php-session
 88.85% 2.199760    163 - LoadBalancer::getConnection
 88.64% 2.194557    163 - LoadBalancer::openConnection
 88.43% 2.189371      2 - DatabaseMysql::open
 88.38% 2.188186      2 - dbconnect-localhost
  8.02% 0.198664      1 - MediaWiki::main
  6.15% 0.152351      1 - MediaWiki::finalCleanup
  5.25% 0.129948      1 - OutputPage::output
  5.21% 0.128936      1 - Output-skin
  5.20% 0.128861      1 - SkinTemplate::outputPage
  3.28% 0.081173    186 - DatabaseBase::query
  2.64% 0.065307      1 - SkinTemplate::outputPage-stuff5
  1.99% 0.049177      4 - query: COMMIT
  1.82% 0.044994      1 - MediaWiki::performRequest
  1.67% 0.041237      1 - MediaWiki::performAction
  1.66% 0.041093      1 - Article::view
  1.56% 0.038637    108 - LocalisationCache::getSubitem-load
  1.41% 0.034958      1 - SkinTemplate::outputPage-execute
  1.09% 0.026959      1 - Skin::buildSidebar
  1.04% 0.025770     41 - Linker::titleAttrib
  rest below 1%

分析日志中的输出看起来:

    Profiling data
    Name                                                                         Calls         Total          Each             %       Mem
    -total                                                                           1      2530.972      2530.972       100.000%   5801152  (     2530.972 -     2530.972) [0]
    Setup.php                                                                        1      2269.201      2269.201        89.657%   1230737  (     2269.201 -     2269.201) [65]
    Setup.php-session                                                                1      2246.935      2246.935        88.778%    312683  (     2246.935 -     2246.935) [26]
    LoadBalancer::getConnection                                                    166      2213.220        13.333        87.445%    292024  (        0.005 -     1117.286) [178]
    LoadBalancer::openConnection                                                   166      2211.142        13.320        87.363%    286279  (        0.001 -     1117.276) [12]
    DatabaseMysql::open                                                              2      2208.200      1104.100        87.247%     13050  (     1092.796 -     1115.404) [10]
    dbconnect-localhost                                                              2      2207.259      1103.630        87.210%     12544  (     1092.338 -     1114.922) [0]
    MediaWiki::main                                                                  1       222.392       222.392         8.787%   2675660  (      222.392 -      222.392) [1486]
    MediaWiki::finalCleanup                                                          1       134.699       134.699         5.322%   1284487  (      134.699 -      134.699) [981]
    DatabaseBase::query                                                            202       117.272         0.581         4.633%    342809  (        0.079 -       32.658) [206]
    OutputPage::output                                                               1       108.740       108.740         4.296%   1280174  (      108.740 -      108.740) [956]
    Output-skin                                                                      1       103.328       103.328         4.083%   1087262  (      103.328 -      103.328) [953]
    SkinTemplate::outputPage                                                         1       103.267       103.267         4.080%   1131051  (      103.267 -      103.267) [952]
    query: COMMIT                                                                    7        87.476        12.497         3.456%       432  (        6.541 -       32.651) [0]
    MediaWiki::performRequest                                                        1        85.917        85.917         3.395%   1272664  (       85.917 -       85.917) [503]
    MediaWiki::performAction                                                         1        81.878        81.878         3.235%   1184620  (       81.878 -       81.878) [483]
    Article::view                                                                    1        59.397        59.397         2.347%    679673  (       59.397 -       59.397) [258]
    SkinTemplate::outputPage-stuff5                                                  1        55.888        55.888         2.208%    456139  (       55.888 -       55.888) [400]
    LocalisationCache::getSubitem-load                                             107        28.478         0.266         1.125%     54868  (        0.240 -        0.468) [428]
    -overhead-total                                                               1570        27.168         0.017         1.073%   1076064  (       27.168 -       27.168) [1570]
    SkinTemplate::outputPage-execute                                                 1        26.111        26.111         1.032%     30494  (       26.111 -       26.111) [398]
    DeferredUpdates::doUpdates                                                       1        25.015        25.015         0.988%       377  (       25.015 -       25.015) [16]
    Skin::buildSidebar                                                               1        21.318        21.318         0.842%     81176  (       21.318 -       21.318) [218]
    ParserCache::get                                                                 1        19.755        19.755         0.781%      1585  (       19.755 -       19.755) [22]
    DynamicSidebar::modifySidebar                                                    1        18.910        18.910         0.747%     69284  (       18.910 -       18.910) [192]
    Linker::titleAttrib                                                             40        18.445         0.461         0.729%     76664  (        0.041 -        1.041) [313]
    CategoryViewer::getHTML                                                          1        17.666        17.666         0.698%    244568  (       17.666 -       17.666) [218]
    query: SELECT lc_value FROM `wiki_lNn_cache` WHERE lc_lang = 'X' LIMIT N       129        15.079         0.117         0.596%    240757  (        0.086 -        0.513) [2]
    LocalisationCache::getItem-load                                                 16        13.923         0.870         0.550%    272404  (        0.259 -        5.256) [100]
    SkinTemplate::outputPage-stuff4                                                  1        11.899        11.899         0.470%    330753  (       11.899 -       11.899) [62]
    Setup.php-globals                                                                1        11.758        11.758         0.465%    567318  (       11.758 -       11.758) [24]
    -overhead-internal                                                            1570        11.512         0.007         0.455%    351680  (        0.006 -        0.046) [0]
    ResourceLoader::makeModuleResponse                                               2        11.067         5.533         0.437%    238877  (        4.679 -        6.388) [36]

我不知道为什么我的 setup.php、loadbalancer 和 db 这么慢?有没有人建议提高这些东西的性能。

编辑:我改回没有缓存的配置,分析输出如下所示:

    Profiling data
Name                                                                         Calls         Total          Each             %       Mem
-total                                                                           1      2264.308      2264.308       100.000%  18818800  (     2264.308 -     2264.308) [0]
LoadBalancer::getConnection                                                    171      1914.577        11.196        84.555%    873694  (        0.010 -      969.956) [183]
LoadBalancer::openConnection                                                   171      1912.571        11.185        84.466%    863369  (        0.002 -      969.939) [12]
DatabaseMysql::open                                                              2      1904.139       952.070        84.094%     13043  (      941.427 -      962.713) [10]
dbconnect-localhost                                                              2      1903.117       951.559        84.049%     12576  (      940.917 -      962.201) [0]
MediaWiki::main                                                                  1      1168.946      1168.946        51.625%   8339081  (     1168.946 -     1168.946) [1546]
MediaWiki::performRequest                                                        1      1052.551      1052.551        46.484%   4786767  (     1052.551 -     1052.551) [728]
SpecialPageFactory::executePath                                                  1      1047.566      1047.566        46.264%   4567696  (     1047.566 -     1047.566) [717]
Setup.php                                                                        1      1045.216      1045.216        46.160%   7760889  (     1045.216 -     1045.216) [55]
Special:Version                                                                  1      1044.117      1044.117        46.112%   4018885  (     1044.117 -     1044.117) [716]
Setup.php-globals                                                                1      1011.005      1011.005        44.650%   4713595  (     1011.005 -     1011.005) [30]
LocalisationCache::getItem-load                                                 15       990.768        66.051        43.756%   1424628  (        0.265 -      979.699) [102]
MessageCache::load                                                               1       943.255       943.255        41.658%     14271  (      943.255 -      943.255) [14]
MessageCache::load-fromcache                                                     1       942.883       942.883        41.641%     13740  (      942.883 -      942.883) [13]
MediaWiki::finalCleanup                                                          1       115.499       115.499         5.101%   3464276  (      115.499 -      115.499) [816]
OutputPage::output                                                               1       113.857       113.857         5.028%   3377273  (      113.857 -      113.857) [809]
Output-skin                                                                      1       102.706       102.706         4.536%   2424168  (      102.706 -      102.706) [806]
SkinTemplate::outputPage                                                         1       102.656       102.656         4.534%   2464206  (      102.656 -      102.656) [805]
SkinTemplate::outputPage-stuff5                                                  1        58.550        58.550         2.586%   1731893  (       58.550 -       58.550) [346]
4

1 回答 1

1

从您发布的分析数据中,很明显罪魁祸首是数据库连接打开速度非常慢,查询本身似乎运行得足够快。为什么会发生是一个有趣的问题:

  • 您没有提及您的 wiki 是否已经公开并且正在接收流量,或者您是它唯一的用户 ATM?
  • MySQL 是否已经因为与 MediaWiki 无关的原因而过载(例如,因为它是共享主机)?
  • 也许,你的 MySQLmax_connections太低了,当客户端拼命排队等待连接时它处于空闲状态?
于 2014-04-16T05:48:17.587 回答