BORIS BERENBERG • 5UPER 5ECRET 5UPPORT 5TAR • ATLASSIAN • @IMATINCR
10 Tips to Pump Up Your
Atlassian Performance
BRIAN TOM • SENIOR SUPPORT ENGINEER EXTRAORDINAIRE • ATLASSIAN • @ATLASSAMURAI
!!!WARNING!!!
JIRA
PLATFORM
ECOSYSTEM
Agenda
Platform
Java 8
Tip #1: Java 8
8
InsaneLargeSmall
Tip #2: Heap Heap Heap
Less than 4GB
CMS / ParallelGC /
UseParallelOldGC
More than 4GB
G1GC
12gb practical max.
100 GB +
Follow ReferralsFilter ScopeNested Groups
Tip #3: LDAP
Flatten them! Use only what you need Global Catalog
Read Only
Tip #4:
JVM
Parameters Code Cache in Java 8
-XX:ReservedCodeCacheSize=384m
Server vs Client
-server
Tip #5:
Server
Configuration GZip
General Configuration ->
Compress HTTP Responses
NIO
protocol=“org.apache.coyote.http11.
Http11NioProtocol"
• PostgreSQL
• Most used within Atlassian
• Vacuum / auto-vacuum
• Analyze
• MySQL
• Analyze
• Optimize
• Oracle
• Create indexes on foreign key columns
• Connection config
Tip #6: Database
Tip #7:
Backups
JIRA
Tip #8: Custom Fields
Tip #9: Workflows
Tip #10: Permissions and Security Levels
Govern your
pumpitude!
Ecosystem
Keep them up to date
Tip #11: Add-on Strategy
Get the bug fixes
Update Check
Keep them up to date
Tip #11: Add-on Strategy
Stay compatible
Get the bug fixes
Incompatible add-ons can cause
odd performance issues
Update Check
Keep them up to date
Tip #11: Add-on Strategy
Stay compatible
JQL with caution
Get the bug fixes
Incompatible add-ons can cause
odd performance issues
Some add-ons that provide
custom JQL functions have a
huge impact
Automatic heap
dumps
Thread Dumps +
thread CPU usage
The right data to solve the problem
GC Logging Access logs
Java 8
Heap and GC strategy
Fast user directories
Custom Fields / Workflows / Permissions
Key Takeaways
Danke und auf
Wiedersehen!
BORIS BERENBERG • 5UPER 5ECRET 5UPPORT 5TAR • ATLASSIAN • @IMATINCR
BRIAN TOM • SENIOR SUPPORT ENGINEER EXTRAORDINAIRE • ATLASSIAN • @ATLASSAMURAI
• Slide 5 : Java 8
• Learn More About Performance Improvements in JDK 8
• Slide 6 : Heap Heap Heap
• Garbage Collector Performance Issues
• Garbage Collection (GC) Tuning Guide
• Slide 7: LDAP
Nested Groups
• Connecting to an LDAP Directory
• Managing Nested Groups (JIRA)
• Managing Nested Groups (Confluence)
• Flatten nested groups: JRA-27072 | CWD-2082
Resources
• Slide 7: LDAP
Filter Scope
• User Management Limitations and Recommendations
• Performance issues with large LDAP repository
• Reduce the number of users synchronized from LDAP to JIRA
• Restricting LDAP Scope
• How to write LDAP search filters
Follow Referrals
• Global Catalog and LDAP Searches
• How do I search from Active Directory’s global catalog?
• Slide 8: JVM Parameters
• Server vs Client
• Reserved code cache size
• Slide 9: Server Configuration
• Using the NIO connector in Confluence
• Enabling HTTP compression
• Slide 10: Database
• Postgres Database Optimizations
• MySQL - Optimize Table
• Deadlocks in Oracle 11G due to missing indexes
• Troubleshooting MySQL performance
• Foreign Keys Constraints created without accompanying index
• Slide 11: Backups
• Backing up data (JIRA)
• Production Backup Strategy (Confluence)
• Slides 12,13,14,15: JIRA
• Scaling JIRA
Resources (continued)
• Slide18: Add-on Strategy
• Managing incompatible add-ons
• Checking add-on compatibility
• Updating add-ons
• Understanding JQL Performance
• Slide 21: The right data to solve the problem
• Thread dumps: JIRA | Confluence
• Heap dumps: JIRA | Confluence
• How to enable garbage collection logging
• User access logging: JIRA | Confluence
• Slide 5
• https://pixabay.com/en/strong-arm-muscle-muscles-310874/
• https://commons.wikimedia.org/wiki/
File:Vector_cup_of_coffee.svg
• Slide 6
• https://www.flickr.com/photos/baynado/13105622365
• https://en.wikipedia.org/wiki/Granola#/media/
File:Granola_bar.jpg
• https://pixabay.com/en/penguin-bird-wildlife-tuxedo-311501/
• Slides 7
• https://commons.wikimedia.org/wiki/File:Russian-
Matroshka_no_bg.jpg
• https://en.wikipedia.org/wiki/Coffee_filter#/media/File:Coffee-
filter.jpg
• http://www.clker.com/clipart-reuse-2.html
Image Credits
• Slide 10
• https://commons.wikimedia.org/wiki/File:Blue_vacuum_cleaner.svg
• Slide 11
• https://simple.wikipedia.org/wiki/Backup#/media/
File:Backup_Backup_Backup_-_And_Test_Restores.jpg
• Slide 16
• https://commons.wikimedia.org/wiki/
File:ArnoldSchwarzeneggerSDJun10.jpg
• Slide 21
• https://commons.wikimedia.org/wiki/File:Silk_Thread_-_Talat_Sao_-
_Vientiane_-_Laos.JPG
• https://commons.wikimedia.org/wiki/File:Heap_metal.jpg
• https://en.wikipedia.org/wiki/Waste_Management_(corporation)#/
media/File:Waste_Management_Truck_Toronto.jpg
• Slide 22
• https://pixabay.com/en/brown-paperbags-lunch-bags-309963/

10 Tips to Pump Up Your Atlassian Performance

  • 1.
    BORIS BERENBERG •5UPER 5ECRET 5UPPORT 5TAR • ATLASSIAN • @IMATINCR 10 Tips to Pump Up Your Atlassian Performance BRIAN TOM • SENIOR SUPPORT ENGINEER EXTRAORDINAIRE • ATLASSIAN • @ATLASSAMURAI
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
    InsaneLargeSmall Tip #2: HeapHeap Heap Less than 4GB CMS / ParallelGC / UseParallelOldGC More than 4GB G1GC 12gb practical max. 100 GB +
  • 7.
    Follow ReferralsFilter ScopeNestedGroups Tip #3: LDAP Flatten them! Use only what you need Global Catalog Read Only
  • 8.
    Tip #4: JVM Parameters CodeCache in Java 8 -XX:ReservedCodeCacheSize=384m Server vs Client -server
  • 9.
    Tip #5: Server Configuration GZip GeneralConfiguration -> Compress HTTP Responses NIO protocol=“org.apache.coyote.http11. Http11NioProtocol"
  • 10.
    • PostgreSQL • Mostused within Atlassian • Vacuum / auto-vacuum • Analyze • MySQL • Analyze • Optimize • Oracle • Create indexes on foreign key columns • Connection config Tip #6: Database
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
    Tip #10: Permissionsand Security Levels
  • 16.
  • 17.
  • 18.
    Keep them upto date Tip #11: Add-on Strategy Get the bug fixes Update Check
  • 19.
    Keep them upto date Tip #11: Add-on Strategy Stay compatible Get the bug fixes Incompatible add-ons can cause odd performance issues Update Check
  • 20.
    Keep them upto date Tip #11: Add-on Strategy Stay compatible JQL with caution Get the bug fixes Incompatible add-ons can cause odd performance issues Some add-ons that provide custom JQL functions have a huge impact
  • 21.
    Automatic heap dumps Thread Dumps+ thread CPU usage The right data to solve the problem GC Logging Access logs
  • 22.
    Java 8 Heap andGC strategy Fast user directories Custom Fields / Workflows / Permissions Key Takeaways
  • 23.
    Danke und auf Wiedersehen! BORISBERENBERG • 5UPER 5ECRET 5UPPORT 5TAR • ATLASSIAN • @IMATINCR BRIAN TOM • SENIOR SUPPORT ENGINEER EXTRAORDINAIRE • ATLASSIAN • @ATLASSAMURAI
  • 24.
    • Slide 5: Java 8 • Learn More About Performance Improvements in JDK 8 • Slide 6 : Heap Heap Heap • Garbage Collector Performance Issues • Garbage Collection (GC) Tuning Guide • Slide 7: LDAP Nested Groups • Connecting to an LDAP Directory • Managing Nested Groups (JIRA) • Managing Nested Groups (Confluence) • Flatten nested groups: JRA-27072 | CWD-2082 Resources • Slide 7: LDAP Filter Scope • User Management Limitations and Recommendations • Performance issues with large LDAP repository • Reduce the number of users synchronized from LDAP to JIRA • Restricting LDAP Scope • How to write LDAP search filters Follow Referrals • Global Catalog and LDAP Searches • How do I search from Active Directory’s global catalog? • Slide 8: JVM Parameters • Server vs Client • Reserved code cache size
  • 25.
    • Slide 9:Server Configuration • Using the NIO connector in Confluence • Enabling HTTP compression • Slide 10: Database • Postgres Database Optimizations • MySQL - Optimize Table • Deadlocks in Oracle 11G due to missing indexes • Troubleshooting MySQL performance • Foreign Keys Constraints created without accompanying index • Slide 11: Backups • Backing up data (JIRA) • Production Backup Strategy (Confluence) • Slides 12,13,14,15: JIRA • Scaling JIRA Resources (continued) • Slide18: Add-on Strategy • Managing incompatible add-ons • Checking add-on compatibility • Updating add-ons • Understanding JQL Performance • Slide 21: The right data to solve the problem • Thread dumps: JIRA | Confluence • Heap dumps: JIRA | Confluence • How to enable garbage collection logging • User access logging: JIRA | Confluence
  • 26.
    • Slide 5 •https://pixabay.com/en/strong-arm-muscle-muscles-310874/ • https://commons.wikimedia.org/wiki/ File:Vector_cup_of_coffee.svg • Slide 6 • https://www.flickr.com/photos/baynado/13105622365 • https://en.wikipedia.org/wiki/Granola#/media/ File:Granola_bar.jpg • https://pixabay.com/en/penguin-bird-wildlife-tuxedo-311501/ • Slides 7 • https://commons.wikimedia.org/wiki/File:Russian- Matroshka_no_bg.jpg • https://en.wikipedia.org/wiki/Coffee_filter#/media/File:Coffee- filter.jpg • http://www.clker.com/clipart-reuse-2.html Image Credits • Slide 10 • https://commons.wikimedia.org/wiki/File:Blue_vacuum_cleaner.svg • Slide 11 • https://simple.wikipedia.org/wiki/Backup#/media/ File:Backup_Backup_Backup_-_And_Test_Restores.jpg • Slide 16 • https://commons.wikimedia.org/wiki/ File:ArnoldSchwarzeneggerSDJun10.jpg • Slide 21 • https://commons.wikimedia.org/wiki/File:Silk_Thread_-_Talat_Sao_- _Vientiane_-_Laos.JPG • https://commons.wikimedia.org/wiki/File:Heap_metal.jpg • https://en.wikipedia.org/wiki/Waste_Management_(corporation)#/ media/File:Waste_Management_Truck_Toronto.jpg • Slide 22 • https://pixabay.com/en/brown-paperbags-lunch-bags-309963/