Why is displaying documents in Sections so much slower than in Workspaces?
We have about 5000 documents (.odt files) that are published in Sections, and about a thousand more being worked on in the Workspaces. To display a particular document's properties from its Workspace folder takes about 6 seconds. To display the properties of the same document from where it is published in a Section takes more than 20 seconds. Why the dramatic difference? How can this operation be speeded up?
What platform are you running? What version of Nuxeo? What database are you using? Have you checked the server log for errors on startup? Have you added any plugins that might be impacting performance?
Version of Nuxeo: nuxeo-dm-5.4.2-tomcat
Checked server log for errors? Yes. server.log* always contains many WARNINGs, even when working fine, but currently no ERRORs on startup
Time to display properties of document published in a Section: 28 seconds unresponsive in real time, 21 CPU seconds spent by Postgresql, doing many hundreds of database queries for Nuxeo.
To be sure, how many Nuxeo documents you have in your Nuxeo instance. You can know that if you are connected as Administrator:
- Go to Advanced search
- Go to the bottom of the page
- Type "SELECT * FROM Document" into the "Perform search based on NXQL query" field.
How many page you have and how many element by page.
Second question: did you add some custom developments/parametrizations?
Yes, server and database are on the same host.
Only thing customized is the graphic on the login screen, plus replacing the Coverage,Topic, and Subtopic vocabularies with our own.
So I hope with your memory upgrade you will have better response time, but I can explain you why you have a response time difference for your published document and the original one.
In fact when you publish your document you're creating what we call “Proxy”. This is a pointer to the original document.
Into the database in fact we create a document that reference the original document. So to find any information of the original document, we need to execute a database request with join that is less efficient to get directly the original document. Normally this join is quite efficient when the Database don't swap.
As your server is light for the memory the response time gap is large. But if you do that in well dimensioned server the difference will be sensitively shorter.
I will finish on this documentation. There is a section about Tuning your PostgreSQL Database to have the best response times.