SUNScholar/Optimisations
Jump to navigation
Jump to search
Back to After Installation Tasks
Contents
Introduction
This wiki page details the major optimisations of the system performed at Stellenbosch University in order to create a truly production optimised version of DSpace.
Java
Setup custom java environment parameters. See link below.
http://wiki.lib.sun.ac.za/index.php/SUNScholar/Prepare_Ubuntu/S08
Perform Java profiling to find memory and CPU intensive code.
Information
- http://en.wikipedia.org/wiki/Java_performance
- http://en.wikipedia.org/wiki/VisualVM
- http://en.wikipedia.org/wiki/Java_Development_Kit
- http://en.wikipedia.org/wiki/OpenJDK
Tools
- http://java-source.net/open-source/profilers
- http://www.infoq.com/articles/java-profiling-with-open-source
- http://theholyjava.wordpress.com/2012/02/25/profiling-tomcat-webapp-with-visualvm-and-netbeans-pitfalls
- http://java.dzone.com/articles/pitfalls-experienced-when
- http://docs.oracle.com/javase/6/docs/technotes/guides/visualvm/profiler.html
- http://www.yourkit.com
Tomcat
See: http://www.turnkeylinux.org/tomcat
- Remove "mod_jk", use "authbind" exclusively with no need of the Tomcat AJP connector in order to reduce the CPU and memory load
http://wiki.lib.sun.ac.za/index.php/SUNScholar/Prepare_Ubuntu/S05
- Remove "development mode" of Tomcat by adding the following to the server context in order to reduce DNS lookups.
enableLookups="false"
Reduce system log sizes
Click on the heading above.
Email error logs
Click on the heading above
XMLUI
- Use XMLUI exclusively to reduce the memory load.
http://wiki.lib.sun.ac.za/index.php/SUNScholar/Install_DSpace/S08
Database
- Fix "browse index" configuration to reduce the PostgreSQL database server query load.
http://wiki.lib.sun.ac.za/index.php/SUNScholar/Indexes#Browse_Indexes
Vacumn the database regularly
http://wiki.lib.sun.ac.za/index.php/SUNScholar/Daily_Admin#.22postgres.22_crontab
Bitstream checker
Modified bitstream checker settings as follows to reduce database size.
#### Checksum Checker Settings #### # Default dispatcher in case none specified plugin.single.org.dspace.checker.BitstreamDispatcher=org.dspace.checker.SimpleDispatcher # check history retention checker.retention.default=1y checker.retention.CHECKSUM_MATCH=2w
- References
Monit monitor service
In case the Tomcat service halts or hangs due to whatever... , I installed monit to restart the service and then alert me. See an example of my config below.
dspace@ir1:/etc/monit$ sudo cat /etc/monit/monitrc
set daemon 60
set logfile syslog facility log_daemon
set mailserver localhost
set mail-format { from: XXXX@XX.XXX.XX.XX }
set alert XXXX@localhost
set httpd port 2812
allow %user%:%password%
check process sshd with pidfile /var/run/sshd.pid
start program "/etc/init.d/ssh start"
stop program "/etc/init.d/ssh stop"
if failed port 22 protocol ssh then restart
check host sunscholar with address scholar.sun.ac.za
start program = "/etc/init.d/tomcat6 restart"
stop program = "/etc/init.d/tomcat6 stop"
if failed port 80 proto http then restart
alert XXXX@XXX.XX.XX
alert XXXX@XXX.XX.XX
All confidential information has been replaced with % signs or captial X's.