mirror of
https://github.com/alanorth/cgspace-notes.git
synced 2025-01-27 05:49:12 +01:00
Update notes for 2017-12-20
This commit is contained in:
@ -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`):
|
||||
|
||||
```
|
||||
<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' />
|
||||
```
|
||||
|
||||
- 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!
|
||||
|
||||

|
||||
|
||||
- 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
|
||||
|
Reference in New Issue
Block a user