Search

Running Symphony 2 on a small webspace, I noticed some serious speed issues. Here's a typical page profile:

Engine Initialisation           0.0000 s
Page creation process started   0.7001 s
XML Built                       0.5076 s
XML Generation                  0.0033 s
Page Built                      0.5314 s
XSLT Transformation             0.1027 s
Page creation complete          1.3343 s

As you see, there is significant delay with the page creation process (the duration being much smaller on other webspaces and virtual servers, something like 0,02 s typically). Does anybody have any idea what could be the reason for this?

[EDIT]: The codebase is the current integration branch, but I tried 2.1.2 as well. Problems were similar.

Probably a rogue data source. Try looking at the list of SQL queries to see if any are particularly high.

I even saw this with a default install. "Page creation process started" is around 0.2 to 0.3 s. And I thought that the datasources are executed afterwards.

Maybe I simply don't understand the Profiler? Which numbers add to the last ("complete") number? Which are sub-sums?

I've never paid any attention to the list above, I always go directly to the list of data sources and then database queries, which will pinpoint the problem 99% of the time.

The Data Sources are fine as far as I can see:

artikel_startseite     0.0971 s from 36 queries
navigation             0.0045 s from 15 queries
symphony_kopfbereich   0.0120 s from 11 queries
symphony_startseite    0.0686 s from 41 queries
tweets                 0.0090 s from 1 query

Could it be a Tweets data source cache expiring, or on every page load?

Perhaps it is reading slowly from disk, autoloading classes? Do any other Symphony sites on the same server exhibit the same problem? Are you using any extensions that subscribe to frontend loading delegates?

I would also add, is the server space sharing resources with other hosting accounts?

@Nick: As posted above, it even happens with a default install. Not as serious as in this example (which is http://symphony-cms.de, BTW), but noticeable.

I would also add, is the server space sharing resources with other hosting accounts?

Yes, Allen, it is a shared hosting account. I know that this may be a problem. But would it explain a factor of 10 or 20 (for "Page creation process started") compared to a virtual host (or localhost)?

Pushing PHP's memory limit (from 128 MB to 256 MB) didn't help at all. Nils and I noticed that even the tiny Ajax translation responses for the Symphony backend take a very long time. So maybe we are haunting some "Symphony initialization problem" here?

Anyway, I'd really like to know what these Profile numbers try to tell me. Which time is which? What happens in between? How do they sum up?

Maybe Brendan or Rowan can explain?

We have a tweet data source which expires every 30 minutes.

The backend is suffering the same delay: each call to the ajax translation function is delayed. The problem seems to lie between the engine initialisation in the Frontend class and the page display in the FrontendPage class - there is a check for logged-in users and a devkit delegate. But I have to say that I don't entirely understand how this all works.

Sounds like it has to do with a lack of processing power on the shared server. Perhaps you could find some PHP benchmarking scripts that you can run locally, on that machine, and I'll try it on some of my hosts too. That would show if it's Symphony or not.

http://www.phpspeed.com/

Something I discovered by trial and error is that Page creation process started also includes the Devkit parsing and rendering, so it's not entirely correct as a normal page view will not incur any devkit overhead.

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details