From a4e2af0b484225a3546f2e63ed47dadf5761a9a0 Mon Sep 17 00:00:00 2001 From: Alan Orth Date: Mon, 14 Aug 2017 14:41:36 +0300 Subject: [PATCH] Update notes for 2017-08-14 --- content/post/2017-08.md | 32 +++++++++++++++ public/2017-08/index.html | 37 +++++++++++++++++- .../08/postgresql-connections-cgspace.png | Bin 0 -> 21168 bytes .../08/postgresql-connections-cgspace.png | Bin 0 -> 21168 bytes 4 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 public/2017/08/postgresql-connections-cgspace.png create mode 100644 static/2017/08/postgresql-connections-cgspace.png diff --git a/content/post/2017-08.md b/content/post/2017-08.md index 05748403d..32b898b39 100644 --- a/content/post/2017-08.md +++ b/content/post/2017-08.md @@ -138,3 +138,35 @@ dspace=# delete from metadatavalue where resource_type_id=2 and metadata_field_i ``` - Generate a new list of authors from the CGIAR Library community for Peter to look through now that the initial corrections have been done +- Thinking about resource limits for PostgreSQL again after last week's CGSpace crash and related to a recently discussion I had in the comments of the [April, 2017 DCAT meeting notes](https://wiki.duraspace.org/display/cmtygp/DCAT+Meeting+April+2017) +- In that thread Chris Wilper suggests a new default of 35 max connections for `db.maxconnections` (from the current default of 30), knowing that _each DSpace web application_ gets to use up to this many on its own +- It would be good to approximate what the theoretical maximum number of connections on a busy server would be, perhaps by looking to see which apps use SQL: + +``` +$ grep -rsI SQLException dspace-jspui | wc -l +473 +$ grep -rsI SQLException dspace-oai | wc -l +63 +$ grep -rsI SQLException dspace-rest | wc -l +139 +$ grep -rsI SQLException dspace-solr | wc -l +0 +$ grep -rsI SQLException dspace-xmlui | wc -l +866 +``` + +- Of those five applications we're running, only `solr` appears not to use the database directly +- And JSPUI is only used internally (so it doesn't really count), leaving us with OAI, REST, and XMLUI +- Assuming each takes a theoretical maximum of 35 connections during a heavy load (35 * 3 = 105), that would put the connections well above PostgreSQL's default max of 100 connections (remember a handful of connections are reserved for the PostgreSQL super user, see `superuser_reserved_connections`) +- So we should adjust PostgreSQL's max connections to be DSpace's `db.maxconnections` * 3 + 3 +- This would allow each application to use up to `db.maxconnections` and not to go over the system's PostgreSQL limit +- Perhaps since CGSpace is a busy site with lots of resources we could actually use something like 40 for `db.maxconnections` +- Also worth looking into is to set up a database pool using JNDI, as apparently DSpace's `db.poolname` hasn't been used since around DSpace 1.7 (according to Chris Wilper's comments in the thread) +- Need to go check the PostgreSQL connection stats in Munin on CGSpace from the past week to get an idea if 40 is appropriate +- Looks like connections hover around 50: + +![PostgreSQL connections 2017-08](/cgspace-notes/2017/08/postgresql-connections-cgspace.png) + +- Unfortunately I don't have the breakdown of which DSpace apps are making those connections (I'll assume XMLUI) +- So I guess a limit of 30 (DSpace default) is too low, but 70 causes problems when the load increases and the system's PostgreSQL `max_connections` is too low +- For now I think maybe setting DSpace's `db.maxconnections` to 40 and adjusting the system's `max_connections` might be a good starting point: 40 * 3 + 4 = 123 diff --git a/public/2017-08/index.html b/public/2017-08/index.html index b9e494c3f..205f782b6 100644 --- a/public/2017-08/index.html +++ b/public/2017-08/index.html @@ -85,7 +85,7 @@ Then I cleaned up the author authorities and HTML characters in OpenRefine and s "@type": "BlogPosting", "headline": "August, 2017", "url": "https://alanorth.github.io/cgspace-notes/2017-08/", - "wordCount": "1435", + "wordCount": "1842", "datePublished": "2017-08-01T11:51:52+03:00", "dateModified": "2017-08-14T12:40:13+03:00", "author": { @@ -318,6 +318,41 @@ dspace=# delete from metadatavalue where resource_type_id=2 and metadata_field_i + +
$ grep -rsI SQLException dspace-jspui | wc -l          
+473
+$ grep -rsI SQLException dspace-oai | wc -l  
+63
+$ grep -rsI SQLException dspace-rest | wc -l
+139
+$ grep -rsI SQLException dspace-solr | wc -l                                                                               
+0
+$ grep -rsI SQLException dspace-xmlui | wc -l
+866
+
+ + + +

PostgreSQL connections 2017-08

+ + diff --git a/public/2017/08/postgresql-connections-cgspace.png b/public/2017/08/postgresql-connections-cgspace.png new file mode 100644 index 0000000000000000000000000000000000000000..982ffe91072e629cfc882374603c32882b51ba8d GIT binary patch literal 21168 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 literal 0 HcmV?d00001 diff --git a/static/2017/08/postgresql-connections-cgspace.png b/static/2017/08/postgresql-connections-cgspace.png new file mode 100644 index 0000000000000000000000000000000000000000..982ffe91072e629cfc882374603c32882b51ba8d GIT binary patch literal 21168 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 literal 0 HcmV?d00001