Jump to:

1842 Posts in 1600 Topics by 558 members

Blog Module

SilverStripe Forums » Blog Module » Massive memory leak!

Discuss the Blog Module.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

Page: 1 2
Go to End
Author Topic: 2055 Views
  • Mo
    Avatar
    Community Member
    504 Posts

    Massive memory leak! Link to this post

    Hi all,

    I have tracked a massive memory leak down to the blog module installed on my site.

    Currently I have 2 blogs, each with about 40 articles each., and a couple of widgets enabled. This is on SS version 2.3.3 and running on apache 2 on an ubuntu server (9.04).

    Currently I have had to increase the PHP memory allocation to 550m to make the module work, but this makes the whole site unstable.

    Running a debug_memory=1 results in showing the script uses about 530mb.

    I also ran a debug_profile and this was the result:

    Calls Time Routine
    -----------------------------------------------------------------------------
    20 6909.1868 ms (96.09 %) template(Comments)
    1 80.2820 ms (1.12 %) template(CommentLink)
    1 51.4619 ms (0.72 %) all_execution
    2 16.5398 ms (0.23 %) template(ChildrenOf)
    9 13.3250 ms (0.19 %) SSViewer::process
    7 10.0341 ms (0.14 %) template(BlogEntries)
    4 9.3930 ms (0.13 %) template(Page)
    1 9.1622 ms (0.13 %) template(Dates)
    208 8.9576 ms (0.12 %) casting cost
    1 8.1940 ms (0.11 %) template(Widgets)
    11 6.4194 ms (0.09 %) template(TagsCollection)
    9 5.5771 ms (0.08 %) Requirements::includeInHTML
    62 4.3554 ms (0.06 %) template(Date)
    1 4.1640 ms (0.06 %) template(Level)
    82 4.0302 ms (0.06 %) template(Link)
    13 3.3603 ms (0.05 %) template(Content)
    10 3.2499 ms (0.05 %) template(Author)
    1 2.8329 ms (0.04 %) DB::connect
    1 2.6040 ms (0.04 %) template(Silverstripenavigator)
    13 2.3267 ms (0.03 %) template(Title)
    1 2.0969 ms (0.03 %) template(SideBar)
    1 1.9188 ms (0.03 %) template(MetaTags)
    26 1.5690 ms (0.02 %) template(Format)
    26 1.4520 ms (0.02 %) template(Year)
    8 1.2369 ms (0.02 %) template(LinkingMode)
    14 1.1995 ms (0.02 %) template(MenuTitle)
    10 0.8717 ms (0.01 %) template(ParagraphSummary)
    5 0.8280 ms (0.01 %) template(Tag)
    20 0.8166 ms (0.01 %) template(Count)
    10 0.7300 ms (0.01 %) template(Long)
    10 0.5882 ms (0.01 %) template(XML)
    3 0.4902 ms (0.01 %) template(WidgetHolder)
    1 0.4530 ms (0.01 %) template(PaginationSummary)
    1 0.4470 ms (0.01 %) main.php init
    7 0.2768 ms (0.00 %) template(PageNum)
    4 0.2632 ms (0.00 %) template(LevelOneLinkTop)
    4 0.2582 ms (0.00 %) template(LevelOneLinkBot)
    1 0.1900 ms (0.00 %) template(CommentText)
    2 0.1740 ms (0.00 %) template(MetaKeywords)
    4 0.1721 ms (0.00 %) template(CurrentBool)
    1 0.1609 ms (0.00 %) template(RSSLink)
    2 0.1590 ms (0.00 %) template(MetaDescription)
    4 0.1538 ms (0.00 %) template(Pos)
    1 0.1531 ms (0.00 %) template(PostLink)
    1 0.0868 ms (0.00 %) template(NextLink)
    1 0.0811 ms (0.00 %) template(DisplayMode)
    1 0.0789 ms (0.00 %) template(ShowSecondLevel)
    1 0.0739 ms (0.00 %) template(URLSegment)
    2 0.0558 ms (0.00 %) template(Last)
    1 0.0558 ms (0.00 %) template(MoreThanOnePage)
    1 0.0479 ms (0.00 %) template(NotLastPage)
    1 0.0379 ms (0.00 %) template(NotFirstPage)
    1 0.0179 ms (0.00 %) unprofiled
    1 0.0172 ms (0.00 %) template(Layout)

    17.9756 ms (0.25 %) Missed
    ============================================================================
    7190.6440 ms (100.00 %) OVERALL TIME
    ============================================================================

    If anyone can shed some light on this, I would be eternally grateful!!

    Mo

  • Mo
    Avatar
    Community Member
    504 Posts

    Re: Massive memory leak! Link to this post

    On closer inspection, it looks like the first line:

    20 6909.1868 ms (96.09 %) template(Comments)

    Looking closer at the site, from this, it looks like there is a shit load of comment spam. I thought commenting had been disabled, apparently not! Now I have 130000 comments sitting in the database!

    Joy!!

  • honeybunny
    Avatar
    Community Member
    79 Posts

    Re: Massive memory leak! Link to this post

    Yikes! I thought the 4350 spam comments I had yesterday was bad, but it was a drop in the bucket compared to you. My page was only up for a couple of hours; I guess this shows just how efficient the bots are.

  • Mo
    Avatar
    Community Member
    504 Posts

    Re: Massive memory leak! Link to this post

    Tell me about it!!

    The comment form was only on the blog, and the site was only up for a month or so. It just amazes me how quickly they found it and spammed it!

    That will teach me for a lack of vigilance :s.

  • banal
    Avatar
    Community Member
    901 Posts

    Re: Massive memory leak! Link to this post

    Hey Mo

    Did you create a bug-ticket for that one? Seems to be pretty bad application design if thousands of comments are being loaded into memory just to display a page (where the comments aren't even shown)?

  • Mo
    Avatar
    Community Member
    504 Posts

    Re: Massive memory leak! Link to this post

    I think it is because it summarizes how many comments are associated with each story that is displayed. So to me it kind of makes sense.

    I suppose it is worth flagging, it would be nice if spam didn't bring down a website like that

  • banal
    Avatar
    Community Member
    901 Posts

    Re: Massive memory leak! Link to this post

    It doesn't make sense to me. To count the comments that have been made per page can be done easily on the DB level. A DB query won't use that much ram for that amount of records (in DB terms, 130000 isn't too much of a deal) . If all these records are being loaded into DataObjects and merged in a DataObjectSet, just to count the number of comments, then it's clearly an application design flaw. Or maybe I didn't understand what you mean with "summarize". Even if it does display some summary, it would be foolish to not use at least a LIMIT on the DB query.

  • Mo
    Avatar
    Community Member
    504 Posts

    Re: Massive memory leak! Link to this post

    Actually, you have a point. I thought I might have customised the display a bit, but it is pretty much default, so I would have prefered it to be a bit more stable :s.

    I will submit a bug report now!

    2055 Views
Page: 1 2
Go to Top

Want to know more about the company that brought you SilverStripe? Then check out SilverStripe.com

Comments on this website? Please give feedback.