Last modified: 2014-06-17 09:24:56 UTC

Wikimedia Bugzilla is closed!

Wikimedia migrated from Bugzilla to Phabricator. Bug reports are handled in Wikimedia Phabricator.
This static website is read-only and for historical purposes. It is not possible to log in and except for displaying bug reports and their history, links might be broken. See T68183, the corresponding Phabricator task for complete and up-to-date bug report information.
Bug 66183 - load.php causes massive pageload times (due to skip-name-resolve disabled)
load.php causes massive pageload times (due to skip-name-resolve disabled)
Status: RESOLVED INVALID
Product: MediaWiki
Classification: Unclassified
General/Unknown (Other open bugs)
1.23.0
All Linux
: High normal (vote)
: ---
Assigned To: Nobody - You can work on this!
: performance
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2014-06-05 11:13 UTC by fs
Modified: 2014-06-17 09:24 UTC (History)
4 users (show)

See Also:
Web browser: ---
Mobile Platform: ---
Assignee Huggle Beta Tester: ---


Attachments
load time load.php (7.33 KB, image/png)
2014-06-05 11:13 UTC, fs
Details

Description fs 2014-06-05 11:13:09 UTC
Created attachment 15568 [details]
load time load.php

The new version 1.23 makes every page load for about 10 seconds or more because of the call for the file load.php:

/load.php?debug=false&lang=de&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=20140605T110156Z

Attached screenshot.

PHP 5.5.12
NGINX
Comment 1 Andre Klapper 2014-06-05 11:21:51 UTC
Thanks for taking the time to report this!

The screenshot says debug=true while your comment says debug=false?
Which PHP version is this about?
Comment 2 fs 2014-06-05 11:24:07 UTC
I've tested the signle request with debug=true cause i was hoping i'm getting new information - i didnt :|

As described its PHP 5.5.12 running on NGINX. Here is the complete page-load for a single request of the /index.php:

http://www.landeszeitung.de/mediawiki.png
Comment 3 Florian 2014-06-05 11:51:09 UTC
The most time i see in the picture is the "waiting phase", am i right? In the waiting phase the browser wait's for the first response of the server, so maybe the problem is with the server? :)
Comment 4 fs 2014-06-05 12:59:18 UTC
Update:

Even when executing the index.php by hand (via cmd) it takes ages to get a response. The wait starts when with the following line:

require __DIR__ . '/includes/WebStart.php';

I'll keep investigating this.
Comment 5 fs 2014-06-05 13:14:24 UTC
I've tracked the problem to:

        ob_start( 'wfOutputHandler' );

in:

        includes/WebStart.php
Comment 6 fs 2014-06-05 13:18:44 UTC
The problem resides inside this output buffer - i'll keep tracking this once i'm back home.
Comment 7 Andre Klapper 2014-06-16 12:31:08 UTC
(In reply to fs from comment #6)

fs: Any luck?
Comment 8 fs 2014-06-16 13:44:50 UTC
Yes so here is what i've found out:

IF i'm using an external database (in my testcase MySQL) the Wiki took approx 9 sec per site (means per PHP-Script so index.php + load.php = 18 sec).

IF i'm using a MySQL-Server on the machine itself - it works flawlessly. Im quite sure its not our network because we're running multiple MySQL-Clusters here with the same setup.

Any Ideas?
Comment 9 fs 2014-06-16 13:46:13 UTC
MySQL-Version 5.6
Comment 10 Florian 2014-06-16 14:20:02 UTC
In my projects i often used this, when external mysql connections are slow:
http://bobbyallen.wordpress.com/2007/11/02/slow-connections-on-remote-mysql-servers/

Can you check, if you have skip-name-resolve enabled?

Kind regards
Florian
Comment 11 fs 2014-06-17 07:31:38 UTC
Hello Florian,

this did resolve the issue. However im not sure why the DNS caused the problems. I will track this problem and try to identify the exact error in my case - so long i mark this as solved.

Thanks again.
Comment 12 Florian 2014-06-17 08:40:26 UTC
> im not sure why the DNS caused the problems

Without skip-name-resolve, mysql will try to resolve the hostname of the clients, mainly to match hostnamens and IP adresses in grant table. If your client isn't in same network like the mysql server and has no reverse hostname in dns service, the mysql is asking, then the hostname resolve fails, but takes time :)

If you disable (or skip) the name resolve, mysql don't resolve hostnamens in any case. The problem using this is, that hostnamens in grant table are useless, you must need ip adresses :)

See http://dev.mysql.com/doc/refman/4.1/en/dns.html for further information.

Note You need to log in before you can comment on or make changes to this bug.


Navigation
Links