Accueil > Bugzilla, Mozilla > Performance improvements in Bugzilla 4.4

Performance improvements in Bugzilla 4.4

Now that Bugzilla 4.2 is released, I could finally focus on enhancements instead of fixing blockers and doing QA. This week, I decided to spend some time to improve the performance of Bugzilla. My main focus was show_bug.cgi, i.e. bug reports. I plan to look at other CGI scripts soon, hopefully within 2 weeks.

You will be happy to hear that in the last 3 days, I managed to divide the time spent to load large bug reports such as bmo bug 38862 (235 comments, 32 attachments and 55 CC’ed users) or bmo bug 18574 (760 comments, 63 attachments and 170 CC’ed users!!) by a factor of 2 when using mod_cgi (-50%), and by 30% with mod_perl. The exact load time in seconds depends on the bugs being viewed and on your hardware, but these percentages seem pretty consistent with the different tests done this week. All my patches have been checked in upstream (see rev. 8133 – 8142), and Bugzilla 4.3.1 will be the first release to benefit from them all. Two of them have been backported to 4.2.1 as they are well contained and fix obvious problems, and the other ones are either too invasive for a stable branch or have unclear benefits (the perf win varies between a few 1/1oth of second to 2-3 seconds depending on the test installation).

Now talking about bmo specifically, I gave a look at the InlineHistory extension for the first time, and I proposed a patch which highly decreases the load time of bug reports. dkl did some testing for me with and without mod_perl, and he found these results:

for bug 38862: 5.18 s (unpatched) -> 3.01 s (patched)

for bug 18574 + mod_cgi: 8.01 s (unpatched) -> 4.57 s (patched)

for bug 18574 + mod_perl: 5.76 s (unpatched) -> 4.06 s (patched)

Now I hope the same gain will be visible once these patches are applied to bmo, but the hardware + software configurations of bmo are so different from our test environments that it’s hard to say for sure till the changes are committed and pushed to production. Fingers crossed! :)

About these ads
Catégories:Bugzilla, Mozilla
  1. 2 mars 2012 à 12:06   | #1

    Wonderful! Thank you so much for doing this. I can’t wait to see what you do with buglist.cgi! If you need information about what queries are common on b.m.o., I’m sure the team could get it for you.

    • Frédéric Buclin
      2 mars 2012 à 1:21   | #2

      buglist.cgi will be much more difficult. The problem here is clearly the time spent to run the SQL query, and it’s very easy to break something. So in fact, the problem is not buglist.cgi itself, but, which is the place where the SQL query is generated. Optimizing this query is IMO very hard (and the generated query must work with MySQL, PostgreSQL, Oracle and SQLite).

  2. Bill Barry
    6 mars 2012 à 7:11   | #3

    If we are using 4.2 can we use the patch on bug 731850?

    • Frédéric Buclin
      6 mars 2012 à 11:50   | #4

      No idea. At least changes made to won’t apply, as 4.2 is not affected by this cache issue.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:


Vous commentez à l'aide de votre compte Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s


Recevez les nouvelles publications par mail.