From 0652179a0f14e9e1e122668637bb2e544fddf6e5 Mon Sep 17 00:00:00 2001 From: Alan Orth Date: Wed, 20 Dec 2017 16:14:32 +0200 Subject: [PATCH] Update notes for 2017-12-20 --- content/post/2017-12.md | 51 ++++++++++---- public/2017-12/index.html | 63 +++++++++++++----- .../postgres-connections-week-dspacetest.png | Bin 0 -> 8924 bytes public/sitemap.xml | 10 +-- .../postgres-connections-week-dspacetest.png | Bin 0 -> 8924 bytes 5 files changed, 92 insertions(+), 32 deletions(-) create mode 100644 public/2017/12/postgres-connections-week-dspacetest.png create mode 100644 static/2017/12/postgres-connections-week-dspacetest.png diff --git a/content/post/2017-12.md b/content/post/2017-12.md index 2ae9a444e..24a2bffb8 100644 --- a/content/post/2017-12.md +++ b/content/post/2017-12.md @@ -423,18 +423,18 @@ $ schedtool -D -e ionice -c2 -n7 nice -n19 dspace index-discovery - Then I create a global `Resource` in the main Tomcat _server.xml_ (inside `GlobalNamingResources`): ``` - + ``` - Most of the parameters are from comments by Mark Wood about his JNDI setup: https://jira.duraspace.org/browse/DS-3564 @@ -623,3 +623,30 @@ javax.naming.NoInitialContextException: Need to specify class name in environmen - Oh cool! `select * from pg_stat_activity` shows "PostgreSQL JDBC Driver" for the application name! That's how you know it's working! - If you monitor the `pg_stat_activity` while you run `dspace database info` you can see that it doesn't use the JNDI and creates ~9 extra PostgreSQL connections! - And in the middle of all of this Linode sends an alert that CGSpace has high CPU usage from 2 to 4 PM + +## 2017-12-20 + +- The database connection pooling is definitely better! + +![PostgreSQL connection pooling on DSpace Test](/cgspace-notes/2017/12/postgres-connections-week-dspacetest.png) + +- Now there is only one set of idle connections shared among all the web applications, instead of 10+ per application +- There are short bursts of connections up to 10, but it generally stays around 5 +- Test and import 13 records to CGSpace for Abenet: + +``` +$ export JAVA_OPTS="-Dfile.encoding=UTF-8 -Xmx512m -XX:+TieredCompilation -XX:TieredStopAtLevel=1" +$ dspace import -a -e aorth@mjanja.ch -s /home/aorth/cg_system_20Dec/SimpleArchiveFormat -m systemoffice.map &> systemoffice.log +``` + +- The fucking database went from 47 to 72 to 121 connections while I was importing so it stalled. +- Since I had to restart Tomcat anyways, I decided to just deploy the new JNDI connection pooling stuff on CGSpace +- There was an initial connection storm of 50 PostgreSQL connections, but then it settled down to 7 +- After that CGSpace came up fine and I was able to import the 13 items just fine: + +``` +$ dspace import -a -e aorth@mjanja.ch -s /home/aorth/cg_system_20Dec/SimpleArchiveFormat -m systemoffice.map &> systemoffice.log +$ schedtool -D -e ionice -c2 -n7 nice -n19 dspace filter-media -i 10568/89287 +``` + +- The final code for the JNDI work in the Ansible infrastructure scripts is here: https://github.com/ilri/rmg-ansible-public/commit/1959d9cb7a0e7a7318c77f769253e5e029bdfa3b diff --git a/public/2017-12/index.html b/public/2017-12/index.html index 4099ec4d4..d31c71d56 100644 --- a/public/2017-12/index.html +++ b/public/2017-12/index.html @@ -23,7 +23,7 @@ The list of connections to XMLUI and REST API for today: - + @@ -56,9 +56,9 @@ The list of connections to XMLUI and REST API for today: "@type": "BlogPosting", "headline": "December, 2017", "url": "https://alanorth.github.io/cgspace-notes/2017-12/", - "wordCount": "3411", + "wordCount": "3593", "datePublished": "2017-12-01T13:53:54+03:00", - "dateModified": "2017-12-19T18:33:19+02:00", + "dateModified": "2017-12-19T19:16:47+02:00", "author": { "@type": "Person", "name": "Alan Orth" @@ -591,18 +591,18 @@ $ schedtool -D -e ionice -c2 -n7 nice -n19 dspace index-discovery
  • Then I create a global Resource in the main Tomcat server.xml (inside GlobalNamingResources):
  • -
    	<Resource name="jdbc/dspace" auth="Container" type="javax.sql.DataSource"
    -		  driverClassName="org.postgresql.Driver"
    -		  url="jdbc:postgresql://localhost:5432/dspace"
    -		  username="dspace"
    -		  password="dspace"
    -          initialSize='5'
    -          maxActive='50'
    -          maxIdle='15'
    -          minIdle='5'
    -          maxWait='5000'
    -          validationQuery='SELECT 1'
    -          testOnBorrow='true' />
    +
    <Resource name="jdbc/dspace" auth="Container" type="javax.sql.DataSource"
    +	  driverClassName="org.postgresql.Driver"
    +	  url="jdbc:postgresql://localhost:5432/dspace"
    +	  username="dspace"
    +	  password="dspace"
    +      initialSize='5'
    +      maxActive='50'
    +      maxIdle='15'
    +      minIdle='5'
    +      maxWait='5000'
    +      validationQuery='SELECT 1'
    +      testOnBorrow='true' />
     
      @@ -811,6 +811,39 @@ javax.naming.NoInitialContextException: Need to specify class name in environmen
    • And in the middle of all of this Linode sends an alert that CGSpace has high CPU usage from 2 to 4 PM
    +

    2017-12-20

    + +
      +
    • The database connection pooling is definitely better!
    • +
    + +

    PostgreSQL connection pooling on DSpace Test

    + +
      +
    • Now there is only one set of idle connections shared among all the web applications, instead of 10+ per application
    • +
    • There are short bursts of connections up to 10, but it generally stays around 5
    • +
    • Test and import 13 records to CGSpace for Abenet:
    • +
    + +
    $ export JAVA_OPTS="-Dfile.encoding=UTF-8 -Xmx512m -XX:+TieredCompilation -XX:TieredStopAtLevel=1"
    +$ dspace import -a -e aorth@mjanja.ch -s /home/aorth/cg_system_20Dec/SimpleArchiveFormat -m systemoffice.map &> systemoffice.log
    +
    + +
      +
    • The fucking database went from 47 to 72 to 121 connections while I was importing so it stalled.
    • +
    • Since I had to restart Tomcat anyways, I decided to just deploy the new JNDI connection pooling stuff on CGSpace
    • +
    • There was an initial connection storm of 50 PostgreSQL connections, but then it settled down to 7
    • +
    • After that CGSpace came up fine and I was able to import the 13 items just fine:
    • +
    + +
    $ dspace import -a -e aorth@mjanja.ch -s /home/aorth/cg_system_20Dec/SimpleArchiveFormat -m systemoffice.map &> systemoffice.log
    +$ schedtool -D -e ionice -c2 -n7 nice -n19 dspace filter-media -i 10568/89287
    +
    + + + diff --git a/public/2017/12/postgres-connections-week-dspacetest.png b/public/2017/12/postgres-connections-week-dspacetest.png new file mode 100644 index 0000000000000000000000000000000000000000..a79fffe3d333a4e9476c9eb9f3b4fc2aea549e47 GIT binary patch literal 8924 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 https://alanorth.github.io/cgspace-notes/2017-12/ - 2017-12-19T18:33:19+02:00 + 2017-12-19T19:16:47+02:00 @@ -139,7 +139,7 @@ https://alanorth.github.io/cgspace-notes/ - 2017-12-19T18:33:19+02:00 + 2017-12-19T19:16:47+02:00 0 @@ -150,7 +150,7 @@ https://alanorth.github.io/cgspace-notes/tags/notes/ - 2017-12-19T18:33:19+02:00 + 2017-12-19T19:16:47+02:00 0 @@ -162,13 +162,13 @@ https://alanorth.github.io/cgspace-notes/post/ - 2017-12-19T18:33:19+02:00 + 2017-12-19T19:16:47+02:00 0 https://alanorth.github.io/cgspace-notes/tags/ - 2017-12-19T18:33:19+02:00 + 2017-12-19T19:16:47+02:00 0 diff --git a/static/2017/12/postgres-connections-week-dspacetest.png b/static/2017/12/postgres-connections-week-dspacetest.png new file mode 100644 index 0000000000000000000000000000000000000000..a79fffe3d333a4e9476c9eb9f3b4fc2aea549e47 GIT binary patch literal 8924 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