SlideShare a Scribd company logo
1 of 36
Download to read offline
XNAT Tuning & Monitoring
                             John Paulett
                      jpaulett@wustl.edu
                          June 29, 2010
Overview
Share NRG’s experiences running a large XNAT
  installation, including methods for tuning,
   testing, and monitoring the application.
Plan
1.   Sample XNAT Architecture
2.   Hardware “Recommendations”
3.   Monitoring XNAT
4.   Performance Testing Tools
5.   Tuning XNAT
XNAT SCALES!
XNAT Scales
From a single study with dozens of scans

To hundreds of studies, including large, multi-
  site studies
Central Neuroimaging Data Archive
(CNDA)
Flagship XNAT installation at Washington
  University (WUSTL)

As of June 2010:
  – 500 studies
  – 8000 subjects
  – 11k imaging sessions
  – 9 TB of data
CNDA Architecture
CNDA Architecture
• 1x Kemp load balancer
  – SSL acceleration
• 1x Quad-core Xeon, 16GB RAM: PostgreSQL
  8.3
• 2x Dual-core Xeon, 4GB RAM (one in
  standby): Tomcat 5.5 & DicomServer
• BlueArc NAS
• Multiple Sun Grid Engine nodes
FUTURE ARCHITECTURE
Future Architecture
Reduce single points of failure
  – Standby Kemp load balancer
  – PostgreSQL Warm Standby
  – Actively load balance Tomcat
  – Archival storage SAN

Use new super computer at WUSTL

Improve ability to upgrade without downtime
Future Architecture
“RECOMMENDED” HARDWARE
Grow into your Architecture
Get single good server
  – Multicore with 4-16GB RAM (better than
    central.xnat.org)
  – Consider your archive’s future size & location


When you outgrow:
  – Buy a more powerful machine for PostgreSQL
  – Leave Tomcat on first server
MONITORING XNAT
Pingdom
• World-wide tests for site availability &
  response time
• SMS & Email alerts when sites are
  unavailable
Munin
PostgreSQL, Tomcat, & Linux metrics over time
  – Memory, CPU, queries, requests, etc.
Monit
Active process monitoring & management

Define criteria for emailing alerts & restarting
 processes
  – CPU, memory thresholds
  – Connection failures (check web services)
PERFORMANCE TESTING TOOLS
JMeter
Generate load & analyze throughput

Complex HTTP transactions
JMeter




         https://svn.apache.org/repos/asf/jakarta/jmeter/
YourKit Profiling
Lower level debugging tool

Memory & CPU profiling

Hunt down memory leaks & code hot spots

Can instrument in production server
http://jira.atlassian.com/browse/JRA-12524
TUNING XNAT
On Tuning
Tuning results dependent on many variables,
  what worked in one case may not work
  universally

XNAT is a complex system! Some parts are CPU
  bound, others are memory bound, and others
  are bandwidth bound

General rule:
 faster CPUs + more RAM + bigger network pipe = faster XNAT
On Tuning
1.   Find something that is “slow”
2.   Quantify slowness
3.   Tune
4.   Quantify improvement
5.   Go to #1
PostgreSQL Tuning
PostgreSQL 8.3 has serious performance
  improvements

Put PostgreSQL and Tomcat on separate
  machines
  – Get powerful database machine
  – PostgreSQL can take advantage of multiple
    cores & lots of RAM
postgresql.conf
Default settings designed for legacy machines

Increase available memory. Allows query planner
  to do more work in RAM and less on disk

Increase max connections

Tweak kernel settings to allow access to more
  memory
Tomcat Tuning
Increase available memory & use “server VM”

catalina.sh:
JAVA_OPTS="$JAVA_OPTS "-XX:MaxPermSize=256m" "-
  XX:PermSize=256m" "-mx1512m" "-server"
Tomcat Tuning
Increase connections & threads in server.xml

  – At this point, consider load balancing between
    multiple Tomcat servers
XNAT Tuning
Upgrade to XNAT 1.4!

Increase MaxConnections to database in
 WEB-INF/conf/InstanceSettings.xml
  – Set in line with PostgreSQL’s max_connections
Tools Mentioned
Google Analytics: Free
Pingdom: Monthly subscription. One site free
Munin: Open Source
Monit: Open Source
JMeter: Open Source
YourKit: Commercial. Time-limited trial & free
  for open source
Questions & Your Experiences?
http://www.xnat.org/XNAT+2010+Workshop+-
   +Tuning,+Optimization,+Monitoring
XNAT Tuning & Monitoring

More Related Content

What's hot

OpenNebulaConf2015 2.05 OpenNebula at the Leibniz Supercomputing Centre - Mat...
OpenNebulaConf2015 2.05 OpenNebula at the Leibniz Supercomputing Centre - Mat...OpenNebulaConf2015 2.05 OpenNebula at the Leibniz Supercomputing Centre - Mat...
OpenNebulaConf2015 2.05 OpenNebula at the Leibniz Supercomputing Centre - Mat...
OpenNebula Project
 
OpenNebulaConf2015 2.14 Cloud Service Experience in TeideHPC Infrastructure -...
OpenNebulaConf2015 2.14 Cloud Service Experience in TeideHPC Infrastructure -...OpenNebulaConf2015 2.14 Cloud Service Experience in TeideHPC Infrastructure -...
OpenNebulaConf2015 2.14 Cloud Service Experience in TeideHPC Infrastructure -...
OpenNebula Project
 

What's hot (20)

Mosix Cluster
Mosix ClusterMosix Cluster
Mosix Cluster
 
USENIX NSDI 2016 (Session: Resource Sharing)
USENIX NSDI 2016 (Session: Resource Sharing)USENIX NSDI 2016 (Session: Resource Sharing)
USENIX NSDI 2016 (Session: Resource Sharing)
 
State of Gluster Performance
State of Gluster PerformanceState of Gluster Performance
State of Gluster Performance
 
NSCC Training Introductory Class
NSCC Training  Introductory ClassNSCC Training  Introductory Class
NSCC Training Introductory Class
 
クラウド時代の半導体メモリー技術
クラウド時代の半導体メモリー技術クラウド時代の半導体メモリー技術
クラウド時代の半導体メモリー技術
 
NSCC Training - Introductory Class
NSCC Training - Introductory ClassNSCC Training - Introductory Class
NSCC Training - Introductory Class
 
NSCC Training Introductory Class
NSCC Training Introductory Class NSCC Training Introductory Class
NSCC Training Introductory Class
 
IMC Summit 2016 Breakout - Andy Pavlo - What Non-Volatile Memory Means for th...
IMC Summit 2016 Breakout - Andy Pavlo - What Non-Volatile Memory Means for th...IMC Summit 2016 Breakout - Andy Pavlo - What Non-Volatile Memory Means for th...
IMC Summit 2016 Breakout - Andy Pavlo - What Non-Volatile Memory Means for th...
 
ДЕНИС КЛЕПIКОВ «Long Term storage for Prometheus» Lviv DevOps Conference 2019
ДЕНИС КЛЕПIКОВ «Long Term storage for Prometheus» Lviv DevOps Conference 2019ДЕНИС КЛЕПIКОВ «Long Term storage for Prometheus» Lviv DevOps Conference 2019
ДЕНИС КЛЕПIКОВ «Long Term storage for Prometheus» Lviv DevOps Conference 2019
 
Hyperconverged Cloud, Not just a toy anymore - Andrew Hatfield, Red Hat
Hyperconverged Cloud, Not just a toy anymore - Andrew Hatfield, Red HatHyperconverged Cloud, Not just a toy anymore - Andrew Hatfield, Red Hat
Hyperconverged Cloud, Not just a toy anymore - Andrew Hatfield, Red Hat
 
Deploying pNFS over Distributed File Storage w/ Jiffin Tony Thottan and Niels...
Deploying pNFS over Distributed File Storage w/ Jiffin Tony Thottan and Niels...Deploying pNFS over Distributed File Storage w/ Jiffin Tony Thottan and Niels...
Deploying pNFS over Distributed File Storage w/ Jiffin Tony Thottan and Niels...
 
4 use cases for C* to Scylla
4 use cases for C*  to Scylla4 use cases for C*  to Scylla
4 use cases for C* to Scylla
 
OpenNebula TechDay Boston 2015 - Bringing Private Cloud Computing to HPC and ...
OpenNebula TechDay Boston 2015 - Bringing Private Cloud Computing to HPC and ...OpenNebula TechDay Boston 2015 - Bringing Private Cloud Computing to HPC and ...
OpenNebula TechDay Boston 2015 - Bringing Private Cloud Computing to HPC and ...
 
CPU Optimizations in the CERN Cloud - February 2016
CPU Optimizations in the CERN Cloud - February 2016CPU Optimizations in the CERN Cloud - February 2016
CPU Optimizations in the CERN Cloud - February 2016
 
Programming Trends in High Performance Computing
Programming Trends in High Performance ComputingProgramming Trends in High Performance Computing
Programming Trends in High Performance Computing
 
OpenNebula out in the Open, Ander Astudillo, SURFsara
OpenNebula out in the Open, Ander Astudillo, SURFsaraOpenNebula out in the Open, Ander Astudillo, SURFsara
OpenNebula out in the Open, Ander Astudillo, SURFsara
 
OpenNebulaConf2015 2.05 OpenNebula at the Leibniz Supercomputing Centre - Mat...
OpenNebulaConf2015 2.05 OpenNebula at the Leibniz Supercomputing Centre - Mat...OpenNebulaConf2015 2.05 OpenNebula at the Leibniz Supercomputing Centre - Mat...
OpenNebulaConf2015 2.05 OpenNebula at the Leibniz Supercomputing Centre - Mat...
 
OpenNebulaConf2015 2.14 Cloud Service Experience in TeideHPC Infrastructure -...
OpenNebulaConf2015 2.14 Cloud Service Experience in TeideHPC Infrastructure -...OpenNebulaConf2015 2.14 Cloud Service Experience in TeideHPC Infrastructure -...
OpenNebulaConf2015 2.14 Cloud Service Experience in TeideHPC Infrastructure -...
 
OpenNebulaConf2015 1.09.02 Installgems Add-on - Alvaro Simon Garcia
OpenNebulaConf2015 1.09.02 Installgems Add-on - Alvaro Simon GarciaOpenNebulaConf2015 1.09.02 Installgems Add-on - Alvaro Simon Garcia
OpenNebulaConf2015 1.09.02 Installgems Add-on - Alvaro Simon Garcia
 
Propelling IoT Innovation with Predictive Analytics
Propelling IoT Innovation with Predictive AnalyticsPropelling IoT Innovation with Predictive Analytics
Propelling IoT Innovation with Predictive Analytics
 

Similar to XNAT Tuning & Monitoring

OSMC 2019 | Monitoring Alerts and Metrics on Large Power Systems Clusters by ...
OSMC 2019 | Monitoring Alerts and Metrics on Large Power Systems Clusters by ...OSMC 2019 | Monitoring Alerts and Metrics on Large Power Systems Clusters by ...
OSMC 2019 | Monitoring Alerts and Metrics on Large Power Systems Clusters by ...
NETWAYS
 

Similar to XNAT Tuning & Monitoring (20)

CPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performanceCPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performance
 
Sanger OpenStack presentation March 2017
Sanger OpenStack presentation March 2017Sanger OpenStack presentation March 2017
Sanger OpenStack presentation March 2017
 
NAVGEM on the Cloud: Computational Evaluation of Cloud HPC with a Global Atmo...
NAVGEM on the Cloud: Computational Evaluation of Cloud HPC with a Global Atmo...NAVGEM on the Cloud: Computational Evaluation of Cloud HPC with a Global Atmo...
NAVGEM on the Cloud: Computational Evaluation of Cloud HPC with a Global Atmo...
 
Ceph Day Beijing - Ceph all-flash array design based on NUMA architecture
Ceph Day Beijing - Ceph all-flash array design based on NUMA architectureCeph Day Beijing - Ceph all-flash array design based on NUMA architecture
Ceph Day Beijing - Ceph all-flash array design based on NUMA architecture
 
Ceph Day Beijing - Ceph All-Flash Array Design Based on NUMA Architecture
Ceph Day Beijing - Ceph All-Flash Array Design Based on NUMA ArchitectureCeph Day Beijing - Ceph All-Flash Array Design Based on NUMA Architecture
Ceph Day Beijing - Ceph All-Flash Array Design Based on NUMA Architecture
 
Toward 10,000 Containers on OpenStack
Toward 10,000 Containers on OpenStackToward 10,000 Containers on OpenStack
Toward 10,000 Containers on OpenStack
 
Leveraging chaos mesh in Astra Serverless testing
Leveraging chaos mesh in Astra Serverless testingLeveraging chaos mesh in Astra Serverless testing
Leveraging chaos mesh in Astra Serverless testing
 
Experience of Running Spark on Kubernetes on OpenStack for High Energy Physic...
Experience of Running Spark on Kubernetes on OpenStack for High Energy Physic...Experience of Running Spark on Kubernetes on OpenStack for High Energy Physic...
Experience of Running Spark on Kubernetes on OpenStack for High Energy Physic...
 
Building big data pipelines with Kafka and Kubernetes
Building big data pipelines with Kafka and KubernetesBuilding big data pipelines with Kafka and Kubernetes
Building big data pipelines with Kafka and Kubernetes
 
VMworld 2013: How SRP Delivers More Than Power to Their Customers
VMworld 2013: How SRP Delivers More Than Power to Their Customers VMworld 2013: How SRP Delivers More Than Power to Their Customers
VMworld 2013: How SRP Delivers More Than Power to Their Customers
 
PFQ@ PAM12
PFQ@ PAM12PFQ@ PAM12
PFQ@ PAM12
 
OpenStack HA
OpenStack HAOpenStack HA
OpenStack HA
 
OpenStack High Availability
OpenStack High AvailabilityOpenStack High Availability
OpenStack High Availability
 
Tackling Network Bottlenecks with Hardware Accelerations: Cloud vs. On-Premise
Tackling Network Bottlenecks with Hardware Accelerations: Cloud vs. On-PremiseTackling Network Bottlenecks with Hardware Accelerations: Cloud vs. On-Premise
Tackling Network Bottlenecks with Hardware Accelerations: Cloud vs. On-Premise
 
Tips Tricks and Tactics with Cells and Scaling OpenStack - May, 2015
Tips Tricks and Tactics with Cells and Scaling OpenStack - May, 2015Tips Tricks and Tactics with Cells and Scaling OpenStack - May, 2015
Tips Tricks and Tactics with Cells and Scaling OpenStack - May, 2015
 
OSMC 2019 | Monitoring Alerts and Metrics on Large Power Systems Clusters by ...
OSMC 2019 | Monitoring Alerts and Metrics on Large Power Systems Clusters by ...OSMC 2019 | Monitoring Alerts and Metrics on Large Power Systems Clusters by ...
OSMC 2019 | Monitoring Alerts and Metrics on Large Power Systems Clusters by ...
 
Lessons learned from shifting real data around: An ad hoc data challenge from...
Lessons learned from shifting real data around: An ad hoc data challenge from...Lessons learned from shifting real data around: An ad hoc data challenge from...
Lessons learned from shifting real data around: An ad hoc data challenge from...
 
S016827 pendulum-swings-nola-v1710d
S016827 pendulum-swings-nola-v1710dS016827 pendulum-swings-nola-v1710d
S016827 pendulum-swings-nola-v1710d
 
Your Linux AMI: Optimization and Performance (CPN302) | AWS re:Invent 2013
Your Linux AMI: Optimization and Performance (CPN302) | AWS re:Invent 2013Your Linux AMI: Optimization and Performance (CPN302) | AWS re:Invent 2013
Your Linux AMI: Optimization and Performance (CPN302) | AWS re:Invent 2013
 
IBM Power9 Features and Specifications
IBM Power9 Features and SpecificationsIBM Power9 Features and Specifications
IBM Power9 Features and Specifications
 

More from John Paulett (8)

GeoDjango & HTML5 Geolocation
GeoDjango & HTML5 GeolocationGeoDjango & HTML5 Geolocation
GeoDjango & HTML5 Geolocation
 
XNAT Case Study: DIAN QC Uploader
XNAT Case Study: DIAN QC UploaderXNAT Case Study: DIAN QC Uploader
XNAT Case Study: DIAN QC Uploader
 
XNAT Open Source Development
XNAT Open Source DevelopmentXNAT Open Source Development
XNAT Open Source Development
 
Mercurial: Modern Source Control Management
Mercurial: Modern Source Control ManagementMercurial: Modern Source Control Management
Mercurial: Modern Source Control Management
 
PostgreSQL Scaling And Failover
PostgreSQL Scaling And FailoverPostgreSQL Scaling And Failover
PostgreSQL Scaling And Failover
 
Drools
DroolsDrools
Drools
 
Automated Testing
Automated TestingAutomated Testing
Automated Testing
 
Getting Started with (Distributed) Version Control
Getting Started with (Distributed) Version ControlGetting Started with (Distributed) Version Control
Getting Started with (Distributed) Version Control
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

XNAT Tuning & Monitoring

  • 1. XNAT Tuning & Monitoring John Paulett jpaulett@wustl.edu June 29, 2010
  • 2. Overview Share NRG’s experiences running a large XNAT installation, including methods for tuning, testing, and monitoring the application.
  • 3. Plan 1. Sample XNAT Architecture 2. Hardware “Recommendations” 3. Monitoring XNAT 4. Performance Testing Tools 5. Tuning XNAT
  • 5. XNAT Scales From a single study with dozens of scans To hundreds of studies, including large, multi- site studies
  • 6. Central Neuroimaging Data Archive (CNDA) Flagship XNAT installation at Washington University (WUSTL) As of June 2010: – 500 studies – 8000 subjects – 11k imaging sessions – 9 TB of data
  • 8. CNDA Architecture • 1x Kemp load balancer – SSL acceleration • 1x Quad-core Xeon, 16GB RAM: PostgreSQL 8.3 • 2x Dual-core Xeon, 4GB RAM (one in standby): Tomcat 5.5 & DicomServer • BlueArc NAS • Multiple Sun Grid Engine nodes
  • 10. Future Architecture Reduce single points of failure – Standby Kemp load balancer – PostgreSQL Warm Standby – Actively load balance Tomcat – Archival storage SAN Use new super computer at WUSTL Improve ability to upgrade without downtime
  • 13. Grow into your Architecture Get single good server – Multicore with 4-16GB RAM (better than central.xnat.org) – Consider your archive’s future size & location When you outgrow: – Buy a more powerful machine for PostgreSQL – Leave Tomcat on first server
  • 15.
  • 16. Pingdom • World-wide tests for site availability & response time • SMS & Email alerts when sites are unavailable
  • 17. Munin PostgreSQL, Tomcat, & Linux metrics over time – Memory, CPU, queries, requests, etc.
  • 18.
  • 19.
  • 20. Monit Active process monitoring & management Define criteria for emailing alerts & restarting processes – CPU, memory thresholds – Connection failures (check web services)
  • 22. JMeter Generate load & analyze throughput Complex HTTP transactions
  • 23. JMeter https://svn.apache.org/repos/asf/jakarta/jmeter/
  • 24. YourKit Profiling Lower level debugging tool Memory & CPU profiling Hunt down memory leaks & code hot spots Can instrument in production server
  • 27. On Tuning Tuning results dependent on many variables, what worked in one case may not work universally XNAT is a complex system! Some parts are CPU bound, others are memory bound, and others are bandwidth bound General rule: faster CPUs + more RAM + bigger network pipe = faster XNAT
  • 28. On Tuning 1. Find something that is “slow” 2. Quantify slowness 3. Tune 4. Quantify improvement 5. Go to #1
  • 29. PostgreSQL Tuning PostgreSQL 8.3 has serious performance improvements Put PostgreSQL and Tomcat on separate machines – Get powerful database machine – PostgreSQL can take advantage of multiple cores & lots of RAM
  • 30. postgresql.conf Default settings designed for legacy machines Increase available memory. Allows query planner to do more work in RAM and less on disk Increase max connections Tweak kernel settings to allow access to more memory
  • 31. Tomcat Tuning Increase available memory & use “server VM” catalina.sh: JAVA_OPTS="$JAVA_OPTS "-XX:MaxPermSize=256m" "- XX:PermSize=256m" "-mx1512m" "-server"
  • 32. Tomcat Tuning Increase connections & threads in server.xml – At this point, consider load balancing between multiple Tomcat servers
  • 33. XNAT Tuning Upgrade to XNAT 1.4! Increase MaxConnections to database in WEB-INF/conf/InstanceSettings.xml – Set in line with PostgreSQL’s max_connections
  • 34. Tools Mentioned Google Analytics: Free Pingdom: Monthly subscription. One site free Munin: Open Source Monit: Open Source JMeter: Open Source YourKit: Commercial. Time-limited trial & free for open source
  • 35. Questions & Your Experiences? http://www.xnat.org/XNAT+2010+Workshop+- +Tuning,+Optimization,+Monitoring