SlideShare une entreprise Scribd logo
1  sur  147
Performance tuning for Java
applications




Andrew Prentice
Atlassian

                              2
Topics
• How to make your apps run faster
• Tuning ideas




                                     3
A note
• X vs Y will always depend on context
• Test with your application!




                                         4
You are here

• How I did the testing
 • Hardware & software

• Must have improvements
 • Jave, Hardware, Virtualization and Garbage Collection

• Worth doing
 • Gigabit vs 100 mbit, Heap size tuning, use an SSD       5
The contenders
• Dell PE 860 - “WALL-E”
• Xeon X3220 2.4 Ghz Quad core
 • Quad Core, 2 x 4Mb L3

• 8 Gb DDR2 RAM
• 2 x 7.2K SAS Disks
• 1 x Intel X25-E 32 GB SSD
                                 6
The contenders
• Dell PE 2950 - “Johnny 5”
• 2 x Xeon E5 405 2.0 Ghz
 • Quad Core, 2 x 6M L3

• 32 Gb RAM
• 2 x 72 Gb 15 K Drives
• ~$4000
                              7
The contenders
• Dell PE R610 - “EVE”
• 2 x Xeon E5520 2.2Ghz
 • Quad Core, 8M “SmartCache”

• 32 Gb RAM
• 2 x 146G 15K drives
• ~$4000
                                8
The Workload
• JIRA 4, MySQL 5, RHEL 5
• Java 1.6, 3G heap, ParNew, ParOld GC
• ~70,000 Issues, ~80 projects
• ~30 reqs/sec, JMeter 2.3.4 (patched, JSR-223)
• Traffic modeled on http://jira.atlassian.com with higher
  writes
                                                             9
About the graphs
• Most show Average Response Time in milliseconds
 • Includes time to generate AND deliver the response

 • Does not include browser time

• Arrows show if lower or higher is better



                                                        10
You are here

• How I did the testing
 • Hardware & software

• Must have improvements
 • Jave, Hardware, Virtualization and Garbage Collection

• Worth doing
 • Gigabit vs 100 mbit, Heap size tuning, use an SSD       11
Must. Have.




              12
Upgrade Java 1.5 to 1.6
• Advances in complier/VM technology
 • Produces better runtime code

 • Able to use modern instructions

 • Able to use modern hardware




                                       13
Java 1.5 vs 1.6 (Johnny 5)
             Java 1.5                    Java 1.6.0


     1500


     1125


      750


      375

                                                      6.3X
        0
            Average Response Time (ms)


                                                             14
Java 1.5 vs 1.6 (Johnny 5)
           Java 1.5.0                Java 1.6.0


     380


     285


     190


      95

                                                  26%
       0
                   Average CPU (%)


                                                        15
Upgrade Java to 1.6
• HotSpot VM updates in 1.6
• Advancing technology
 • Compressed OOPS on 64bit

 • Escape Analysis

 • NUMA

• http://java.sun.com/performance/reference/
  whitepapers/6_performance.html               16
Java 1.6 vs 1.6 (Eve)
           Java 1.6.0_7                       Java 1.6.0_16



     148


     111


      74


      37
                                                              7%
       0
                 Average Response Time (ms)

                                                                   17
Hardware Upgrades
• Hyper-Threading
• QuickPath Interconnect
• Nehalem (Eve) have on die DDR3 Memory Controllers
• Memory throuput improvements - good for Java!
            Technology                     Speed
      DDR2-800 (dual channel)             6.4 GB/sec
      DDR3-1333 (dual channel)           21.3 GB/sec
                                                       18
Hyper Threading

                  Thread 1


                                              CPU
                  Thread 2




 Thread 1 runs until it hits a cache miss.

 Thread 2 runs on the same CPU while T1 is awaiting data



                                                           19
Hardware Upgrades
   2.4Ghz Xeon (Wall-E)                2.0Ghz Xeon (Johnny 5)   2.2Ghz Xeon (Eve)



  2000


  1500


  1000


   500
                                                                  8-12X
     0
                          Average Response Time (ms)

                                                                                    20
Improved GC Throughput
      2.4Ghz Xeon (Wall-E)                2.0Ghz Xeon (Johnny 5)   2.2Ghz Xeon (Eve)



  30000


  22500


  15000

                                                                    2-3X
   7500


      0
                             GC Throughput (MB/sec)


                                                                                       21
Garbage Collection
• Java’s Virtual Machine manages memory
• New objects are continually created during runtime
• GC is the process of collecting dead objects to reclaim
  memory



                                                            22
Tune Garbage Collection
• Getting your GC tuning wrong is bad
• How bad?
• Are the defaults sane?




                                        23
Tune Garbage Collection
                     CMS                       ParNew ParOld



4000


3000


2000


1000                                                           2X
   0
       Wall-E (ms)         Johnny 5 (ms)          Eve (ms)

                       Average Response Time
                                                                    24
Tune Garbage Collection
               CMS                            ParNew ParOld


500


375


250


125
                                                              2X
  0
      Johnny 5 (ms)                             Eve (ms)

                      Average Response Time
                                                                   25
Tune Garbage Collection
• Defaults are sane
• Parallel New + Parallel Old is fastest
• CMS prioritizes low pauses over CPU usage
• CMS does not compact - can lead to heap
  fragmentation

                                              26
Virtualisation
• Does being in a VM hurt?
• What if the risks are managed?




                                   27
Virtualisation
      Real   VMWare ESX 3.5               VMWare ESX 4i



  170.0


  127.5


   85.0


   42.5                                                   43%

     0
             Average Response Time (ms)

                                                                28
Virtualisation
• On average ~30% slower
• Under extreme resource starvation, up to 100% slower
• Avoid virtualization for high traffic instances
• See the Atlassian docs for recommendations
 • http://confluence.atlassian.com/display/DOC/Running
   +Confluence+in+a+Virtualised+Environment
                                                                  29
 • http://confluence.atlassian.com/display/JIRA/Running+JIRA+in
You are here

• How I did the testing
 • Hardware & software

• Must have improvements
 • Java, Hardware, Virtualization and Garbage Collection

• Worth doing
 • Gigabit vs 100 mbit, Heap size tuning, use an SSD       30
Maybe.




         31
Gigabit Network vs 100Mbit
• Gigabit is faster, sure
• But 100Mb is OK if you’re not doing big transfers,
  RIGHT?!




                                                       32
Use Gigabit
          100mb/sec                           1000mb/sec



   1900


   1425


    950


    475                                                    10%
      0
                 Average Response Time (ms)


                                                                 33
Use Gigabit
• Lower RTT on Gigabit
• If you have enough CPU power, keep the DB on
  localhost
• Check your development environment



                                                 34
Use Gigabit
         100Mbit                      1000Mbit



   200


   150


   100


    50
                                                 26%
     0
             ReIndex Time (seconds)


                                                       35
Heap size tuning


• Memory starvation is bad, but can we “drown” Java
  with too much memory?




                                                      36
Heap size - Wall-E
        1.5G             3G            6G


 2000


 1500


 1000


  500

                                            23%
    0
               Average Response Time


                                                  37
Heap size - Johnny 5
         1.5G     3G                    6G   15G



 290.0


 217.5


 145.0


  72.5                                             49%
    0
                Average Response Time


                                                         38
Heap size - Eve
         1.5G   3G                      6G   15G


 170.0


 127.5


  85.0


  42.5                                             28%
    0
                Average Response Time


                                                         39
Heap size tuning
• Heap too small - bad
• Heap too big - not bad!
• Bigger heaps give the JVM more room to work
• Diminishing returns from really big heaps



                                                40
Buy an SSD
• SSDs are FAST!
• SSDs are EXPENSIVE!
• SSDs are all the rage!
• DBAs are finally happy (almost)



                                    41
Buy an SSD
             SATA      SSD


800


600


400


200                                 33%
  0
      Browse Issue   Create Issue


                                          42
Buy an SSD
• Fast writes
 • 0.1ms Avg Service Time

• Most improvement comes from SSD on the DB
• Writing to the Lucene index means re-opening
  IndexReaders
 • Much faster on SSD
                                                 43
• Lucene Search Term Cache fits in OS buffers
Remember!
• Upgrade!
 • Java to 1.6

 • Your server

• Use Parallel Garbage Collection with a big heap
• Remove virtualization if you can
• Use 1000mbit network
                                                    44
...Part Two:

Environment and

Joanna Thurmann
JIRA Systems Administrator


                             2
Don’t let this happen to you!




                                3
“Step1 - We admitted we were powerless -
our JIRA had become unmanageable.”



                       JIRAcholics Anonymous


                                               4
Contents

• Performance Considerations
• Hardware & Software Upgrade
• JIRA and Plugin Upgrades
• Structure for Scale



                                5
Our JIRA




           6
Our JIRA

• 210,000 issues




                   6
Our JIRA

• 210,000 issues
• 142 projects




                   6
Our JIRA

• 210,000 issues
• 142 projects
• 66 workflows




                   6
Our JIRA

• 210,000 issues
• 142 projects
• 66 workflows
• 320 custom fields



                      6
Our JIRA

• 210,000 issues
• 142 projects
• 66 workflows
• 320 custom fields
• 6,000 user directory (~400 concurrent)

                                           6
Our JIRA

• 210,000 issues
• 142 projects
• 66 workflows
• 320 custom fields
• 6,000 user directory (~400 concurrent)
• 24x7 usage                               6
Considerations for
Performance and Usability
• Total Issue Count
• User Concurrency
• # and Complexity of Configurations
• Integrations
• Plugins
                                       7
In General…

• JIRA uses the disk much more than db (due to Lucene
  indexing)
• JIRA needs considerable memory




                                                        8
Our Upgrade Summary
               Before                                         After
 HP ProLiant DL580 G4                      HP ProLiant DL380 G7
 4 x Dual-Core processors - Intel Xeon     2 x 6-CORE processors - Intel Xeon X5680
  7140M 3.4GHz                               3.33GHz
 RAID5 array  5 x HP 300GB 10K HDD        RAID10 array  11 x HP 300GB 10K HDD
 512 MB cache (25%R-75%W)                  1GB cache (50%R-50%W)
 3.5 GB for JIRA (8 GB total)              6 GB for JIRA (32 GB total)
 Windows Server 2003 Std Edition 64-bit    Windows Server 2008 R2 Std Edition 64-bit
 SQL Server 2005 Std Edition               SQL Server 2008 R2 Std Edition




                                                                                         9
Our Upgrade – Disk and CPU

• Chose Raid10 over Raid5 for better performance
• Upgraded Controller from 512 MB cache to 1GB cache
• Chose 12 CPUs for concurrency




                                                       10
Our Upgrade – Memory




                       11
Our Upgrade – Memory
• 3.5GB  6GB




                       11
Our Upgrade – Memory
• 3.5GB  6GB
• Full garbage collections times lower and less frequent




                                                           11
Our Upgrade – Memory
• 3.5GB  6GB
• Full garbage collections times lower and less frequent
• Free up more memory




                                                           11
Our Upgrade – Memory
• 3.5GB  6GB
• Full garbage collections times lower and less frequent
• Free up more memory
• Eliminate out-of-memory errors




                                                           11
Our Upgrade - Memory
Before (3.5 GB JIRA, 8 GB Total)      After (6 GB JIRA, 32 GB Total)
Full GC: 11-50s, 1x/hour          Full GC: 3-7s, <5x/day

2.5 – 3.25 GB avg. usage          3-5 GB avg. usage

20-30% free                       50-75% free

Out-of-memory: 1x/month           Out-of-memory: 0



                                                                       12
Our Upgrade - Memory
Before (3.5 GB JIRA, 8 GB Total)      After (6 GB JIRA, 32 GB Total)
Full GC: 11-50s, 1x/hour          Full GC: 3-7s, <5x/day

2.5 – 3.25 GB avg. usage          3-5 GB avg. usage

20-30% free                       50-75% free

Out-of-memory: 1x/month           Out-of-memory: 0



                                                                       12
Our Upgrade - Software
• SQL Server 2008 R2
• OK to run JIRA and DB on the same server
• Allocate sufficient memory to the db
• Use the latest JDBC driver & JDK




                                             13
What’s the bottom line?




                          14
What’s the bottom line?




                          14
Results – backend
                       Then        Now       Percentage
                                               faster
  Total
Reindex      60
mins      25
mins       59%
   XML
Backup        30
mins      4
½
mins      85%
SQL
Server
Backup     7
mins      2
mins
       71%
  Metrics
service     20
mins     6
mins        70%

Index
opNmizaNon      7+
mins     25
secs       94%
 Index
excepNons    3‐4
per
day      0



                                                          15
Results – front end
                       Then     Now      Percentage
                                           faster
  Search
all
issues    3
secs   2
secs      34%
 Create
/
Edit
issue   4
secs   2
secs      50%




                                                      16
Plugin challenges we faced
• Memory leak
• End of support of *key* workflow plugin
• Odd behavior in JIRA 4.1.1 upgrade
• Performance issue with plugin




                                            17
Plugin Install & Upgrades




                            18
Plugin Install & Upgrades

• Scrutinize Plugins




                            18
Plugin Install & Upgrades

• Scrutinize Plugins   Ask yourself…




                                       18
Plugin Install & Upgrades

• Scrutinize Plugins   Ask yourself…
                       • Is the plugin reputable?




                                                    18
Plugin Install & Upgrades

• Scrutinize Plugins   Ask yourself…
                       • Is the plugin reputable?
                       • Will it be supported?




                                                    18
Plugin Install & Upgrades

• Scrutinize Plugins   Ask yourself…
                       • Is the plugin reputable?
                       • Will it be supported?
                       • How widely used is it?




                                                    18
Plugin Install & Upgrades

• Scrutinize Plugins   Ask yourself…
                       • Is the plugin reputable?
                       • Will it be supported?
                       • How widely used is it?
                       • Does it perform well?




                                                    18
Plugin Install & Upgrades

• Scrutinize Plugins   Ask yourself…
                       • Is the plugin reputable?
                       • Will it be supported?
                       • How widely used is it?
                       • Does it perform well?
                       • Do you really need it?




                                                    18
Plugin Install & Upgrades

• Scrutinize Plugins   Ask yourself…
                       • Is the plugin reputable?
                       • Will it be supported?
                       • How widely used is it?
                       • Does it perform well?
                       • Do you really need it?
                       • Does it introduce other bugs?




                                                         18
Plugin Install & Upgrades

• Scrutinize Plugins       Ask yourself…
                           • Is the plugin reputable?
• Get the latest release   • Will it be supported?
                           • How widely used is it?
                           • Does it perform well?
                           • Do you really need it?
                           • Does it introduce other bugs?




                                                             18
Plugin Install & Upgrades

• Scrutinize Plugins       Ask yourself…
                           • Is the plugin reputable?
• Get the latest release   • Will it be supported?
                           • How widely used is it?
• Test in QA environment   • Does it perform well?
                           • Do you really need it?
                           • Does it introduce other bugs?




                                                             18
Plugin Install & Upgrades

• Scrutinize Plugins       Ask yourself…
                           • Is the plugin reputable?
• Get the latest release   • Will it be supported?
                           • How widely used is it?
• Test in QA environment   • Does it perform well?
                           • Do you really need it?
• Test! Test! Test!        • Does it introduce other bugs?




                                                             18
Why Upgrade JIRA Regularly?




                              19
Why Upgrade JIRA Regularly?
• Performance improvements & key fixes in each release for
  BOTH end-users AND admins




                                                             19
Why Upgrade JIRA Regularly?
• Performance improvements & key fixes in each release for
  BOTH end-users AND admins
• Example: in-place DB upgrades in 4.3




                                                             19
My Weekend Upgrade




                     20
My Weekend Upgrade
     Before




                     20
My Weekend Upgrade
     Before




                     20
My Weekend Upgrade
     Before          After




                             20
My Weekend Upgrade
     Before          After




                             20
Why else?




            21
Why else?
• Fewer internal support calls




                                 21
Why else?
• Fewer internal support calls
• Less time to resolve them




                                 21
Why else?
• Fewer internal support calls
• Less time to resolve them
• Easier & faster for Atlassian to support you




                                                 21
Why else?
• Fewer internal support calls
• Less time to resolve them
• Easier & faster for Atlassian to support you
• Early bird gets the worm




                                                 21
Our last JIRA upgrade rocked!




                                22
Our last JIRA upgrade rocked!
              • Resolved 4 bugs found internally




                                                   22
Our last JIRA upgrade rocked!
              • Resolved 4 bugs found internally
              • Delivered 5 must-have features




                                                   22
Our last JIRA upgrade rocked!
              • Resolved 4 bugs found internally
              • Delivered 5 must-have features
              • Resulted in ~25% fewer support calls




                                                       22
Our last JIRA upgrade rocked!
              • Resolved 4 bugs found internally
              • Delivered 5 must-have features
              • Resulted in ~25% fewer support calls
              • Saved ~3hrs/week with JQL instead of
                SQL




                                                       22
Structure – For Startup JIRAs




                                23
Structure – For Startup JIRAs

• Configurations  Less is more since JIRA caches them




                                                         23
Structure – For Startup JIRAs

• Configurations  Less is more since JIRA caches them
• Use fewer issue types, resolutions, statuses, custom fields




                                                                23
Structure – For Startup JIRAs

• Configurations  Less is more since JIRA caches them
• Use fewer issue types, resolutions, statuses, custom fields
• Use custom field contexts vs. new fields




                                                                23
Structure – For Startup JIRAs

• Configurations  Less is more since JIRA caches them
• Use fewer issue types, resolutions, statuses, custom fields
• Use custom field contexts vs. new fields
• Use a simple workflow and apply to many projects



                                                                23
Structure – Project Roles




                            24
Structure – Project Roles
• Use Project Roles vs individual names & groups in
  permission schemes




                                                      24
Structure – Project Roles
• Use Project Roles vs individual names & groups in
  permission schemes

                       Before
        Permission Scheme for Project 1

 Administer Projects     Group (“”Project 1 Admins”)


     Edit Issues          Group(“Project 1 Team”)




                                                       24
Structure – Project Roles
• Use Project Roles vs individual names & groups in
  permission schemes

                       Before                                                After
                                                                   Global Permission Scheme
        Permission Scheme for Project 1
                                                       Administer Projects    Project Role (Administrators)
 Administer Projects     Group (“”Project 1 Admins”)

                                                           Edit Issues         Project Role (Developers)
     Edit Issues          Group(“Project 1 Team”)




                                                                                                              24
Structure – Project Roles
• Use Project Roles vs individual names & groups in
  permission schemes

                       Before                                                After
                                                                   Global Permission Scheme
        Permission Scheme for Project 1
                                                       Administer Projects    Project Role (Administrators)
 Administer Projects     Group (“”Project 1 Admins”)

                                                           Edit Issues         Project Role (Developers)
     Edit Issues          Group(“Project 1 Team”)

                                                                   Project Roles for Project 1
                                                       Administrators            “Project 1 Admins”


                                                         Developers               “Project 1 Team”
                                                                                                              24
Structure – Project Roles
• Use Project Roles vs individual names & groups in
  permission schemes

                       Before                                                After
                                                                   Global Permission Scheme
        Permission Scheme for Project 1
                                                       Administer Projects    Project Role (Administrators)
 Administer Projects     Group (“”Project 1 Admins”)

                                                           Edit Issues         Project Role (Developers)
     Edit Issues          Group(“Project 1 Team”)

                                                                   Project Roles for Project 1
                                                       Administrators            “Project 1 Admins”


                                                         Developers               “Project 1 Team”
                                                                                                              24
Structure – For Epic JIRAs




                             25
Structure – For Epic JIRAs
• Consolidate any and all schemes




                                    25
Structure – For Epic JIRAs
• Consolidate any and all schemes
• Use Scheme Tools: e.g. Scheme Comparison Tool,
  Group to Project Role Mapping Tool




                                                   25
Structure – For Epic JIRAs
• Consolidate any and all schemes
• Use Scheme Tools: e.g. Scheme Comparison Tool,
  Group to Project Role Mapping Tool
• ‘Archive’ projects - hide them from view of users, so that
  they don’t clutter the menus. Create ‘Archived’ config
  schemes

                                                               25
We Declutter




               26
We Declutter
• Created project naming conventions




                                       26
We Declutter
• Created project naming conventions
• Eliminated & consolidated custom fields (25 out of 345)




                                                            26
We Declutter
• Created project naming conventions
• Eliminated & consolidated custom fields (25 out of 345)
• Took custom fields out of global context




                                                            26
We Declutter
• Created project naming conventions
• Eliminated & consolidated custom fields (25 out of 345)
• Took custom fields out of global context
• Eliminated issue types, status, resolution choices (15-30)




                                                               26
We Tidy




          27
We Tidy
• Super User (SU) plugin




                           27
We Tidy
• Super User (SU) plugin
• Easier to troubleshoot user issues




                                       27
We Tidy
• Super User (SU) plugin
• Easier to troubleshoot user issues
• Helps us “terminate” JIRA accounts
  •Delete their dashboards
  •Delete their personal filters



                                       27
We Tidy
• Super User (SU) plugin
• Easier to troubleshoot user issues
• Helps us “terminate” JIRA accounts
  •Delete their dashboards
  •Delete their personal filters
  •Delete subscriptions (the “silent killer”)


                                                27
We Train




           28
We Train
• Limit General Permissions & train the users on how/when to use




                                                                   28
We Train
• Limit General Permissions & train the users on how/when to use

    • Bulk Change




                                                                   28
We Train
• Limit General Permissions & train the users on how/when to use

    • Bulk Change

    • Create Shared Objects (filters + dashboards)




                                                                   28
We Train
• Limit General Permissions & train the users on how/when to use

    • Bulk Change

    • Create Shared Objects (filters + dashboards)

    • Manage Group Filter Subscriptions




                                                                   28
We Train
• Limit General Permissions & train the users on how/when to use

    • Bulk Change

    • Create Shared Objects (filters + dashboards)

    • Manage Group Filter Subscriptions

• Train project administrators / super-users



                                                                   28
We Do More




             29
We Do More
• Use db-specific vs. XML-backup




                                   29
We Do More
• Use db-specific vs. XML-backup

• Schedule regular maintenance




                                   29
We Do More
• Use db-specific vs. XML-backup

• Schedule regular maintenance

• Regularly check logs for errors




                                    29
We Do More
• Use db-specific vs. XML-backup

• Schedule regular maintenance

• Regularly check logs for errors

• Read the JIRA performance doc




                                    29
30
We
     Keep
            Going




                    30
“Step12 - we promised to help other
JIRAcholics, and to always practice what we
preach



                          JIRAcholics Anonymous


                                                  31
A word from my sponsors….
A word from my sponsors….
A word from my sponsors….


 Polycom, Inc. (Nasdaq: PLCM) is a global leader in unified communications
solutions with industry-leading telepresence, video, voice, and infrastructure
 solutions built on open standards. Polycom powers smarter conversations,
          transforming lives and businesses worldwide. Please visit
                  www.polycom.com for more information.
blogs.atlassian.com/developer




Flickr Attributions:
Day 11 - http://www.flickr.com/photos/ivanomak/4057632458/
Blue Streak - http://www.flickr.com/photos/jettajet/2061715292/
blogs.atlassian.com/developer




Flickr Attributions:
Day 11 - http://www.flickr.com/photos/ivanomak/4057632458/
Blue Streak - http://www.flickr.com/photos/jettajet/2061715292/

Contenu connexe

Tendances

INF7827 DRS Best Practices
INF7827 DRS Best PracticesINF7827 DRS Best Practices
INF7827 DRS Best PracticesBrian Graf
 
Azug - successfully breeding rabits
Azug - successfully breeding rabitsAzug - successfully breeding rabits
Azug - successfully breeding rabitsYves Goeleven
 
24 Hours of PASS, Summit Preview Session: Virtual SQL Server CPUs
24 Hours of PASS, Summit Preview Session: Virtual SQL Server CPUs24 Hours of PASS, Summit Preview Session: Virtual SQL Server CPUs
24 Hours of PASS, Summit Preview Session: Virtual SQL Server CPUsDavid Klee
 
Inside the Hadoop Machine @ VMworld
Inside the Hadoop Machine @ VMworldInside the Hadoop Machine @ VMworld
Inside the Hadoop Machine @ VMworldRichard McDougall
 
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 VMworld
 
Scaling Your Cache And Caching At Scale
Scaling Your Cache And Caching At ScaleScaling Your Cache And Caching At Scale
Scaling Your Cache And Caching At ScaleAlex Miller
 
iMinds The Conference: Jan Lemeire
iMinds The Conference: Jan LemeireiMinds The Conference: Jan Lemeire
iMinds The Conference: Jan Lemeireimec
 
My experience with embedding PostgreSQL
 My experience with embedding PostgreSQL My experience with embedding PostgreSQL
My experience with embedding PostgreSQLJignesh Shah
 
Inside the Atlassian OnDemand Private Cloud
Inside the Atlassian OnDemand Private CloudInside the Atlassian OnDemand Private Cloud
Inside the Atlassian OnDemand Private CloudAtlassian
 
PostgreSQL and Benchmarks
PostgreSQL and BenchmarksPostgreSQL and Benchmarks
PostgreSQL and BenchmarksJignesh Shah
 
SSD based storage tuning for databases
SSD based storage tuning for databasesSSD based storage tuning for databases
SSD based storage tuning for databasesAngelo Rajadurai
 
Ahorro energético archivado de backups
Ahorro energético archivado de backupsAhorro energético archivado de backups
Ahorro energético archivado de backupsOmega Peripherals
 
VMworld 2013: Storage DRS: Deep Dive and Best Practices to Suit Your Storage ...
VMworld 2013: Storage DRS: Deep Dive and Best Practices to Suit Your Storage ...VMworld 2013: Storage DRS: Deep Dive and Best Practices to Suit Your Storage ...
VMworld 2013: Storage DRS: Deep Dive and Best Practices to Suit Your Storage ...VMworld
 
Training netbackup6x2
Training netbackup6x2Training netbackup6x2
Training netbackup6x2M Shariff
 
Distributed DNN training: Infrastructure, challenges, and lessons learned
Distributed DNN training: Infrastructure, challenges, and lessons learnedDistributed DNN training: Infrastructure, challenges, and lessons learned
Distributed DNN training: Infrastructure, challenges, and lessons learnedWee Hyong Tok
 
Transcendent memoryupdate xensummit2010-final
Transcendent memoryupdate xensummit2010-finalTranscendent memoryupdate xensummit2010-final
Transcendent memoryupdate xensummit2010-finalThe Linux Foundation
 

Tendances (18)

INF7827 DRS Best Practices
INF7827 DRS Best PracticesINF7827 DRS Best Practices
INF7827 DRS Best Practices
 
Azug - successfully breeding rabits
Azug - successfully breeding rabitsAzug - successfully breeding rabits
Azug - successfully breeding rabits
 
24 Hours of PASS, Summit Preview Session: Virtual SQL Server CPUs
24 Hours of PASS, Summit Preview Session: Virtual SQL Server CPUs24 Hours of PASS, Summit Preview Session: Virtual SQL Server CPUs
24 Hours of PASS, Summit Preview Session: Virtual SQL Server CPUs
 
Inside the Hadoop Machine @ VMworld
Inside the Hadoop Machine @ VMworldInside the Hadoop Machine @ VMworld
Inside the Hadoop Machine @ VMworld
 
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
 
Scaling Your Cache And Caching At Scale
Scaling Your Cache And Caching At ScaleScaling Your Cache And Caching At Scale
Scaling Your Cache And Caching At Scale
 
iMinds The Conference: Jan Lemeire
iMinds The Conference: Jan LemeireiMinds The Conference: Jan Lemeire
iMinds The Conference: Jan Lemeire
 
My experience with embedding PostgreSQL
 My experience with embedding PostgreSQL My experience with embedding PostgreSQL
My experience with embedding PostgreSQL
 
Inside the Atlassian OnDemand Private Cloud
Inside the Atlassian OnDemand Private CloudInside the Atlassian OnDemand Private Cloud
Inside the Atlassian OnDemand Private Cloud
 
saurabh soni rac
saurabh soni racsaurabh soni rac
saurabh soni rac
 
PostgreSQL and Benchmarks
PostgreSQL and BenchmarksPostgreSQL and Benchmarks
PostgreSQL and Benchmarks
 
SSD based storage tuning for databases
SSD based storage tuning for databasesSSD based storage tuning for databases
SSD based storage tuning for databases
 
ESX performance problems 10 steps
ESX performance problems 10 stepsESX performance problems 10 steps
ESX performance problems 10 steps
 
Ahorro energético archivado de backups
Ahorro energético archivado de backupsAhorro energético archivado de backups
Ahorro energético archivado de backups
 
VMworld 2013: Storage DRS: Deep Dive and Best Practices to Suit Your Storage ...
VMworld 2013: Storage DRS: Deep Dive and Best Practices to Suit Your Storage ...VMworld 2013: Storage DRS: Deep Dive and Best Practices to Suit Your Storage ...
VMworld 2013: Storage DRS: Deep Dive and Best Practices to Suit Your Storage ...
 
Training netbackup6x2
Training netbackup6x2Training netbackup6x2
Training netbackup6x2
 
Distributed DNN training: Infrastructure, challenges, and lessons learned
Distributed DNN training: Infrastructure, challenges, and lessons learnedDistributed DNN training: Infrastructure, challenges, and lessons learned
Distributed DNN training: Infrastructure, challenges, and lessons learned
 
Transcendent memoryupdate xensummit2010-final
Transcendent memoryupdate xensummit2010-finalTranscendent memoryupdate xensummit2010-final
Transcendent memoryupdate xensummit2010-final
 

Similaire à Structure for scale: Dialing in your apps for optimal performance

Performance Tuning: Pulling a Rabbit From a Hat - Atlassian Summit 2010
Performance Tuning: Pulling a Rabbit From a Hat - Atlassian Summit 2010Performance Tuning: Pulling a Rabbit From a Hat - Atlassian Summit 2010
Performance Tuning: Pulling a Rabbit From a Hat - Atlassian Summit 2010Atlassian
 
[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on Kubernetes[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on KubernetesBruno Borges
 
Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesBruno Borges
 
Memory, Big Data, NoSQL and Virtualization
Memory, Big Data, NoSQL and VirtualizationMemory, Big Data, NoSQL and Virtualization
Memory, Big Data, NoSQL and VirtualizationBigstep
 
Hadoop - Disk Fail In Place (DFIP)
Hadoop - Disk Fail In Place (DFIP)Hadoop - Disk Fail In Place (DFIP)
Hadoop - Disk Fail In Place (DFIP)mundlapudi
 
Hadoop World 2011: Hadoop and Performance - Todd Lipcon & Yanpei Chen, Cloudera
Hadoop World 2011: Hadoop and Performance - Todd Lipcon & Yanpei Chen, ClouderaHadoop World 2011: Hadoop and Performance - Todd Lipcon & Yanpei Chen, Cloudera
Hadoop World 2011: Hadoop and Performance - Todd Lipcon & Yanpei Chen, ClouderaCloudera, Inc.
 
Nick Fisk - low latency Ceph
Nick Fisk - low latency CephNick Fisk - low latency Ceph
Nick Fisk - low latency CephShapeBlue
 
SF Big Analytics & SF Machine Learning Meetup: Machine Learning at the Limit ...
SF Big Analytics & SF Machine Learning Meetup: Machine Learning at the Limit ...SF Big Analytics & SF Machine Learning Meetup: Machine Learning at the Limit ...
SF Big Analytics & SF Machine Learning Meetup: Machine Learning at the Limit ...Chester Chen
 
VMworld 2013: Just Because You Could, Doesn't Mean You Should: Lessons Learne...
VMworld 2013: Just Because You Could, Doesn't Mean You Should: Lessons Learne...VMworld 2013: Just Because You Could, Doesn't Mean You Should: Lessons Learne...
VMworld 2013: Just Because You Could, Doesn't Mean You Should: Lessons Learne...VMworld
 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitterRoger Xia
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...smallerror
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...xlight
 
淺談 Java GC 原理、調教和 新發展
淺談 Java GC 原理、調教和新發展淺談 Java GC 原理、調教和新發展
淺談 Java GC 原理、調教和 新發展Leon Chen
 
Introduction of Java GC Tuning and Java Java Mission Control
Introduction of Java GC Tuning and Java Java Mission ControlIntroduction of Java GC Tuning and Java Java Mission Control
Introduction of Java GC Tuning and Java Java Mission ControlLeon Chen
 
14 scaleabilty wics
14 scaleabilty wics14 scaleabilty wics
14 scaleabilty wicsashish61_scs
 
OSS Presentation VMWorld 2011 by Andy Bennett & Craig Morgan
OSS Presentation VMWorld 2011 by Andy Bennett & Craig MorganOSS Presentation VMWorld 2011 by Andy Bennett & Craig Morgan
OSS Presentation VMWorld 2011 by Andy Bennett & Craig MorganOpenStorageSummit
 

Similaire à Structure for scale: Dialing in your apps for optimal performance (20)

Performance Tuning: Pulling a Rabbit From a Hat - Atlassian Summit 2010
Performance Tuning: Pulling a Rabbit From a Hat - Atlassian Summit 2010Performance Tuning: Pulling a Rabbit From a Hat - Atlassian Summit 2010
Performance Tuning: Pulling a Rabbit From a Hat - Atlassian Summit 2010
 
[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on Kubernetes[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on Kubernetes
 
Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on Kubernetes
 
Basics of JVM Tuning
Basics of JVM TuningBasics of JVM Tuning
Basics of JVM Tuning
 
Memory, Big Data, NoSQL and Virtualization
Memory, Big Data, NoSQL and VirtualizationMemory, Big Data, NoSQL and Virtualization
Memory, Big Data, NoSQL and Virtualization
 
Hadoop - Disk Fail In Place (DFIP)
Hadoop - Disk Fail In Place (DFIP)Hadoop - Disk Fail In Place (DFIP)
Hadoop - Disk Fail In Place (DFIP)
 
Hadoop World 2011: Hadoop and Performance - Todd Lipcon & Yanpei Chen, Cloudera
Hadoop World 2011: Hadoop and Performance - Todd Lipcon & Yanpei Chen, ClouderaHadoop World 2011: Hadoop and Performance - Todd Lipcon & Yanpei Chen, Cloudera
Hadoop World 2011: Hadoop and Performance - Todd Lipcon & Yanpei Chen, Cloudera
 
Nick Fisk - low latency Ceph
Nick Fisk - low latency CephNick Fisk - low latency Ceph
Nick Fisk - low latency Ceph
 
Mysql talk
Mysql talkMysql talk
Mysql talk
 
SF Big Analytics & SF Machine Learning Meetup: Machine Learning at the Limit ...
SF Big Analytics & SF Machine Learning Meetup: Machine Learning at the Limit ...SF Big Analytics & SF Machine Learning Meetup: Machine Learning at the Limit ...
SF Big Analytics & SF Machine Learning Meetup: Machine Learning at the Limit ...
 
VMworld 2013: Just Because You Could, Doesn't Mean You Should: Lessons Learne...
VMworld 2013: Just Because You Could, Doesn't Mean You Should: Lessons Learne...VMworld 2013: Just Because You Could, Doesn't Mean You Should: Lessons Learne...
VMworld 2013: Just Because You Could, Doesn't Mean You Should: Lessons Learne...
 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitter
 
Fixing_Twitter
Fixing_TwitterFixing_Twitter
Fixing_Twitter
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
 
淺談 Java GC 原理、調教和 新發展
淺談 Java GC 原理、調教和新發展淺談 Java GC 原理、調教和新發展
淺談 Java GC 原理、調教和 新發展
 
Loom promises: be there!
Loom promises: be there!Loom promises: be there!
Loom promises: be there!
 
Introduction of Java GC Tuning and Java Java Mission Control
Introduction of Java GC Tuning and Java Java Mission ControlIntroduction of Java GC Tuning and Java Java Mission Control
Introduction of Java GC Tuning and Java Java Mission Control
 
14 scaleabilty wics
14 scaleabilty wics14 scaleabilty wics
14 scaleabilty wics
 
OSS Presentation VMWorld 2011 by Andy Bennett & Craig Morgan
OSS Presentation VMWorld 2011 by Andy Bennett & Craig MorganOSS Presentation VMWorld 2011 by Andy Bennett & Craig Morgan
OSS Presentation VMWorld 2011 by Andy Bennett & Craig Morgan
 

Plus de Atlassian

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020Atlassian
 
10 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 202010 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 2020Atlassian
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App ShowcaseAtlassian
 
Let's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UILet's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UIAtlassian
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge RuntimeAtlassian
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceAtlassian
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge TriggersAtlassian
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeAtlassian
 
Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelAtlassian
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemAtlassian
 
Forge: Under the Hood
Forge: Under the HoodForge: Under the Hood
Forge: Under the HoodAtlassian
 
Access to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAccess to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAtlassian
 
Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginAtlassian
 
Tear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingTear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingAtlassian
 
Nailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterNailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterAtlassian
 
Building Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindBuilding Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindAtlassian
 
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Atlassian
 
Beyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsBeyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsAtlassian
 
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamThe Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamAtlassian
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in MindAtlassian
 

Plus de Atlassian (20)

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020
 
10 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 202010 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 2020
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App Showcase
 
Let's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UILet's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UI
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge Runtime
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User Experience
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge Triggers
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in Forge
 
Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy Model
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI System
 
Forge: Under the Hood
Forge: Under the HoodForge: Under the Hood
Forge: Under the Hood
 
Access to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAccess to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIs
 
Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch Plugin
 
Tear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingTear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the Building
 
Nailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterNailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that Matter
 
Building Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindBuilding Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in Mind
 
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
 
Beyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsBeyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced Teams
 
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamThe Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in Mind
 

Dernier

Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
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...Enterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
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...Drew Madelung
 
[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.pdfhans926745
 
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 Processorsdebabhi2
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
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 MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 

Dernier (20)

Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
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...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
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...
 
[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
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 

Structure for scale: Dialing in your apps for optimal performance

  • 1.
  • 2.
  • 3. Performance tuning for Java applications Andrew Prentice Atlassian 2
  • 4. Topics • How to make your apps run faster • Tuning ideas 3
  • 5. A note • X vs Y will always depend on context • Test with your application! 4
  • 6. You are here • How I did the testing • Hardware & software • Must have improvements • Jave, Hardware, Virtualization and Garbage Collection • Worth doing • Gigabit vs 100 mbit, Heap size tuning, use an SSD 5
  • 7. The contenders • Dell PE 860 - “WALL-E” • Xeon X3220 2.4 Ghz Quad core • Quad Core, 2 x 4Mb L3 • 8 Gb DDR2 RAM • 2 x 7.2K SAS Disks • 1 x Intel X25-E 32 GB SSD 6
  • 8. The contenders • Dell PE 2950 - “Johnny 5” • 2 x Xeon E5 405 2.0 Ghz • Quad Core, 2 x 6M L3 • 32 Gb RAM • 2 x 72 Gb 15 K Drives • ~$4000 7
  • 9. The contenders • Dell PE R610 - “EVE” • 2 x Xeon E5520 2.2Ghz • Quad Core, 8M “SmartCache” • 32 Gb RAM • 2 x 146G 15K drives • ~$4000 8
  • 10. The Workload • JIRA 4, MySQL 5, RHEL 5 • Java 1.6, 3G heap, ParNew, ParOld GC • ~70,000 Issues, ~80 projects • ~30 reqs/sec, JMeter 2.3.4 (patched, JSR-223) • Traffic modeled on http://jira.atlassian.com with higher writes 9
  • 11. About the graphs • Most show Average Response Time in milliseconds • Includes time to generate AND deliver the response • Does not include browser time • Arrows show if lower or higher is better 10
  • 12. You are here • How I did the testing • Hardware & software • Must have improvements • Jave, Hardware, Virtualization and Garbage Collection • Worth doing • Gigabit vs 100 mbit, Heap size tuning, use an SSD 11
  • 14. Upgrade Java 1.5 to 1.6 • Advances in complier/VM technology • Produces better runtime code • Able to use modern instructions • Able to use modern hardware 13
  • 15. Java 1.5 vs 1.6 (Johnny 5) Java 1.5 Java 1.6.0 1500 1125 750 375 6.3X 0 Average Response Time (ms) 14
  • 16. Java 1.5 vs 1.6 (Johnny 5) Java 1.5.0 Java 1.6.0 380 285 190 95 26% 0 Average CPU (%) 15
  • 17. Upgrade Java to 1.6 • HotSpot VM updates in 1.6 • Advancing technology • Compressed OOPS on 64bit • Escape Analysis • NUMA • http://java.sun.com/performance/reference/ whitepapers/6_performance.html 16
  • 18. Java 1.6 vs 1.6 (Eve) Java 1.6.0_7 Java 1.6.0_16 148 111 74 37 7% 0 Average Response Time (ms) 17
  • 19. Hardware Upgrades • Hyper-Threading • QuickPath Interconnect • Nehalem (Eve) have on die DDR3 Memory Controllers • Memory throuput improvements - good for Java! Technology Speed DDR2-800 (dual channel) 6.4 GB/sec DDR3-1333 (dual channel) 21.3 GB/sec 18
  • 20. Hyper Threading Thread 1 CPU Thread 2 Thread 1 runs until it hits a cache miss. Thread 2 runs on the same CPU while T1 is awaiting data 19
  • 21. Hardware Upgrades 2.4Ghz Xeon (Wall-E) 2.0Ghz Xeon (Johnny 5) 2.2Ghz Xeon (Eve) 2000 1500 1000 500 8-12X 0 Average Response Time (ms) 20
  • 22. Improved GC Throughput 2.4Ghz Xeon (Wall-E) 2.0Ghz Xeon (Johnny 5) 2.2Ghz Xeon (Eve) 30000 22500 15000 2-3X 7500 0 GC Throughput (MB/sec) 21
  • 23. Garbage Collection • Java’s Virtual Machine manages memory • New objects are continually created during runtime • GC is the process of collecting dead objects to reclaim memory 22
  • 24. Tune Garbage Collection • Getting your GC tuning wrong is bad • How bad? • Are the defaults sane? 23
  • 25. Tune Garbage Collection CMS ParNew ParOld 4000 3000 2000 1000 2X 0 Wall-E (ms) Johnny 5 (ms) Eve (ms) Average Response Time 24
  • 26. Tune Garbage Collection CMS ParNew ParOld 500 375 250 125 2X 0 Johnny 5 (ms) Eve (ms) Average Response Time 25
  • 27. Tune Garbage Collection • Defaults are sane • Parallel New + Parallel Old is fastest • CMS prioritizes low pauses over CPU usage • CMS does not compact - can lead to heap fragmentation 26
  • 28. Virtualisation • Does being in a VM hurt? • What if the risks are managed? 27
  • 29. Virtualisation Real VMWare ESX 3.5 VMWare ESX 4i 170.0 127.5 85.0 42.5 43% 0 Average Response Time (ms) 28
  • 30. Virtualisation • On average ~30% slower • Under extreme resource starvation, up to 100% slower • Avoid virtualization for high traffic instances • See the Atlassian docs for recommendations • http://confluence.atlassian.com/display/DOC/Running +Confluence+in+a+Virtualised+Environment 29 • http://confluence.atlassian.com/display/JIRA/Running+JIRA+in
  • 31. You are here • How I did the testing • Hardware & software • Must have improvements • Java, Hardware, Virtualization and Garbage Collection • Worth doing • Gigabit vs 100 mbit, Heap size tuning, use an SSD 30
  • 32. Maybe. 31
  • 33. Gigabit Network vs 100Mbit • Gigabit is faster, sure • But 100Mb is OK if you’re not doing big transfers, RIGHT?! 32
  • 34. Use Gigabit 100mb/sec 1000mb/sec 1900 1425 950 475 10% 0 Average Response Time (ms) 33
  • 35. Use Gigabit • Lower RTT on Gigabit • If you have enough CPU power, keep the DB on localhost • Check your development environment 34
  • 36. Use Gigabit 100Mbit 1000Mbit 200 150 100 50 26% 0 ReIndex Time (seconds) 35
  • 37. Heap size tuning • Memory starvation is bad, but can we “drown” Java with too much memory? 36
  • 38. Heap size - Wall-E 1.5G 3G 6G 2000 1500 1000 500 23% 0 Average Response Time 37
  • 39. Heap size - Johnny 5 1.5G 3G 6G 15G 290.0 217.5 145.0 72.5 49% 0 Average Response Time 38
  • 40. Heap size - Eve 1.5G 3G 6G 15G 170.0 127.5 85.0 42.5 28% 0 Average Response Time 39
  • 41. Heap size tuning • Heap too small - bad • Heap too big - not bad! • Bigger heaps give the JVM more room to work • Diminishing returns from really big heaps 40
  • 42. Buy an SSD • SSDs are FAST! • SSDs are EXPENSIVE! • SSDs are all the rage! • DBAs are finally happy (almost) 41
  • 43. Buy an SSD SATA SSD 800 600 400 200 33% 0 Browse Issue Create Issue 42
  • 44. Buy an SSD • Fast writes • 0.1ms Avg Service Time • Most improvement comes from SSD on the DB • Writing to the Lucene index means re-opening IndexReaders • Much faster on SSD 43 • Lucene Search Term Cache fits in OS buffers
  • 45. Remember! • Upgrade! • Java to 1.6 • Your server • Use Parallel Garbage Collection with a big heap • Remove virtualization if you can • Use 1000mbit network 44
  • 46. ...Part Two: Environment and Joanna Thurmann JIRA Systems Administrator 2
  • 47. Don’t let this happen to you! 3
  • 48. “Step1 - We admitted we were powerless - our JIRA had become unmanageable.” JIRAcholics Anonymous 4
  • 49. Contents • Performance Considerations • Hardware & Software Upgrade • JIRA and Plugin Upgrades • Structure for Scale 5
  • 50. Our JIRA 6
  • 52. Our JIRA • 210,000 issues • 142 projects 6
  • 53. Our JIRA • 210,000 issues • 142 projects • 66 workflows 6
  • 54. Our JIRA • 210,000 issues • 142 projects • 66 workflows • 320 custom fields 6
  • 55. Our JIRA • 210,000 issues • 142 projects • 66 workflows • 320 custom fields • 6,000 user directory (~400 concurrent) 6
  • 56. Our JIRA • 210,000 issues • 142 projects • 66 workflows • 320 custom fields • 6,000 user directory (~400 concurrent) • 24x7 usage 6
  • 57. Considerations for Performance and Usability • Total Issue Count • User Concurrency • # and Complexity of Configurations • Integrations • Plugins 7
  • 58. In General… • JIRA uses the disk much more than db (due to Lucene indexing) • JIRA needs considerable memory 8
  • 59. Our Upgrade Summary Before After  HP ProLiant DL580 G4  HP ProLiant DL380 G7  4 x Dual-Core processors - Intel Xeon  2 x 6-CORE processors - Intel Xeon X5680 7140M 3.4GHz 3.33GHz  RAID5 array  5 x HP 300GB 10K HDD  RAID10 array  11 x HP 300GB 10K HDD  512 MB cache (25%R-75%W)  1GB cache (50%R-50%W)  3.5 GB for JIRA (8 GB total)  6 GB for JIRA (32 GB total)  Windows Server 2003 Std Edition 64-bit  Windows Server 2008 R2 Std Edition 64-bit  SQL Server 2005 Std Edition  SQL Server 2008 R2 Std Edition 9
  • 60. Our Upgrade – Disk and CPU • Chose Raid10 over Raid5 for better performance • Upgraded Controller from 512 MB cache to 1GB cache • Chose 12 CPUs for concurrency 10
  • 61. Our Upgrade – Memory 11
  • 62. Our Upgrade – Memory • 3.5GB  6GB 11
  • 63. Our Upgrade – Memory • 3.5GB  6GB • Full garbage collections times lower and less frequent 11
  • 64. Our Upgrade – Memory • 3.5GB  6GB • Full garbage collections times lower and less frequent • Free up more memory 11
  • 65. Our Upgrade – Memory • 3.5GB  6GB • Full garbage collections times lower and less frequent • Free up more memory • Eliminate out-of-memory errors 11
  • 66. Our Upgrade - Memory Before (3.5 GB JIRA, 8 GB Total) After (6 GB JIRA, 32 GB Total) Full GC: 11-50s, 1x/hour Full GC: 3-7s, <5x/day 2.5 – 3.25 GB avg. usage 3-5 GB avg. usage 20-30% free 50-75% free Out-of-memory: 1x/month Out-of-memory: 0 12
  • 67. Our Upgrade - Memory Before (3.5 GB JIRA, 8 GB Total) After (6 GB JIRA, 32 GB Total) Full GC: 11-50s, 1x/hour Full GC: 3-7s, <5x/day 2.5 – 3.25 GB avg. usage 3-5 GB avg. usage 20-30% free 50-75% free Out-of-memory: 1x/month Out-of-memory: 0 12
  • 68. Our Upgrade - Software • SQL Server 2008 R2 • OK to run JIRA and DB on the same server • Allocate sufficient memory to the db • Use the latest JDBC driver & JDK 13
  • 71. Results – backend Then Now Percentage faster Total
Reindex 60
mins 25
mins 59% XML
Backup 30
mins 4
½
mins 85% SQL
Server
Backup 7
mins 2
mins
 71% Metrics
service 20
mins 6
mins 70%
 Index
opNmizaNon 7+
mins 25
secs 94% Index
excepNons 3‐4
per
day 0 15
  • 72. Results – front end Then Now Percentage faster Search
all
issues 3
secs 2
secs 34% Create
/
Edit
issue 4
secs 2
secs 50% 16
  • 73. Plugin challenges we faced • Memory leak • End of support of *key* workflow plugin • Odd behavior in JIRA 4.1.1 upgrade • Performance issue with plugin 17
  • 74. Plugin Install & Upgrades 18
  • 75. Plugin Install & Upgrades • Scrutinize Plugins 18
  • 76. Plugin Install & Upgrades • Scrutinize Plugins Ask yourself… 18
  • 77. Plugin Install & Upgrades • Scrutinize Plugins Ask yourself… • Is the plugin reputable? 18
  • 78. Plugin Install & Upgrades • Scrutinize Plugins Ask yourself… • Is the plugin reputable? • Will it be supported? 18
  • 79. Plugin Install & Upgrades • Scrutinize Plugins Ask yourself… • Is the plugin reputable? • Will it be supported? • How widely used is it? 18
  • 80. Plugin Install & Upgrades • Scrutinize Plugins Ask yourself… • Is the plugin reputable? • Will it be supported? • How widely used is it? • Does it perform well? 18
  • 81. Plugin Install & Upgrades • Scrutinize Plugins Ask yourself… • Is the plugin reputable? • Will it be supported? • How widely used is it? • Does it perform well? • Do you really need it? 18
  • 82. Plugin Install & Upgrades • Scrutinize Plugins Ask yourself… • Is the plugin reputable? • Will it be supported? • How widely used is it? • Does it perform well? • Do you really need it? • Does it introduce other bugs? 18
  • 83. Plugin Install & Upgrades • Scrutinize Plugins Ask yourself… • Is the plugin reputable? • Get the latest release • Will it be supported? • How widely used is it? • Does it perform well? • Do you really need it? • Does it introduce other bugs? 18
  • 84. Plugin Install & Upgrades • Scrutinize Plugins Ask yourself… • Is the plugin reputable? • Get the latest release • Will it be supported? • How widely used is it? • Test in QA environment • Does it perform well? • Do you really need it? • Does it introduce other bugs? 18
  • 85. Plugin Install & Upgrades • Scrutinize Plugins Ask yourself… • Is the plugin reputable? • Get the latest release • Will it be supported? • How widely used is it? • Test in QA environment • Does it perform well? • Do you really need it? • Test! Test! Test! • Does it introduce other bugs? 18
  • 86. Why Upgrade JIRA Regularly? 19
  • 87. Why Upgrade JIRA Regularly? • Performance improvements & key fixes in each release for BOTH end-users AND admins 19
  • 88. Why Upgrade JIRA Regularly? • Performance improvements & key fixes in each release for BOTH end-users AND admins • Example: in-place DB upgrades in 4.3 19
  • 90. My Weekend Upgrade Before 20
  • 91. My Weekend Upgrade Before 20
  • 92. My Weekend Upgrade Before After 20
  • 93. My Weekend Upgrade Before After 20
  • 94. Why else? 21
  • 95. Why else? • Fewer internal support calls 21
  • 96. Why else? • Fewer internal support calls • Less time to resolve them 21
  • 97. Why else? • Fewer internal support calls • Less time to resolve them • Easier & faster for Atlassian to support you 21
  • 98. Why else? • Fewer internal support calls • Less time to resolve them • Easier & faster for Atlassian to support you • Early bird gets the worm 21
  • 99. Our last JIRA upgrade rocked! 22
  • 100. Our last JIRA upgrade rocked! • Resolved 4 bugs found internally 22
  • 101. Our last JIRA upgrade rocked! • Resolved 4 bugs found internally • Delivered 5 must-have features 22
  • 102. Our last JIRA upgrade rocked! • Resolved 4 bugs found internally • Delivered 5 must-have features • Resulted in ~25% fewer support calls 22
  • 103. Our last JIRA upgrade rocked! • Resolved 4 bugs found internally • Delivered 5 must-have features • Resulted in ~25% fewer support calls • Saved ~3hrs/week with JQL instead of SQL 22
  • 104. Structure – For Startup JIRAs 23
  • 105. Structure – For Startup JIRAs • Configurations  Less is more since JIRA caches them 23
  • 106. Structure – For Startup JIRAs • Configurations  Less is more since JIRA caches them • Use fewer issue types, resolutions, statuses, custom fields 23
  • 107. Structure – For Startup JIRAs • Configurations  Less is more since JIRA caches them • Use fewer issue types, resolutions, statuses, custom fields • Use custom field contexts vs. new fields 23
  • 108. Structure – For Startup JIRAs • Configurations  Less is more since JIRA caches them • Use fewer issue types, resolutions, statuses, custom fields • Use custom field contexts vs. new fields • Use a simple workflow and apply to many projects 23
  • 110. Structure – Project Roles • Use Project Roles vs individual names & groups in permission schemes 24
  • 111. Structure – Project Roles • Use Project Roles vs individual names & groups in permission schemes Before Permission Scheme for Project 1 Administer Projects Group (“”Project 1 Admins”) Edit Issues Group(“Project 1 Team”) 24
  • 112. Structure – Project Roles • Use Project Roles vs individual names & groups in permission schemes Before After Global Permission Scheme Permission Scheme for Project 1 Administer Projects Project Role (Administrators) Administer Projects Group (“”Project 1 Admins”) Edit Issues Project Role (Developers) Edit Issues Group(“Project 1 Team”) 24
  • 113. Structure – Project Roles • Use Project Roles vs individual names & groups in permission schemes Before After Global Permission Scheme Permission Scheme for Project 1 Administer Projects Project Role (Administrators) Administer Projects Group (“”Project 1 Admins”) Edit Issues Project Role (Developers) Edit Issues Group(“Project 1 Team”) Project Roles for Project 1 Administrators “Project 1 Admins” Developers “Project 1 Team” 24
  • 114. Structure – Project Roles • Use Project Roles vs individual names & groups in permission schemes Before After Global Permission Scheme Permission Scheme for Project 1 Administer Projects Project Role (Administrators) Administer Projects Group (“”Project 1 Admins”) Edit Issues Project Role (Developers) Edit Issues Group(“Project 1 Team”) Project Roles for Project 1 Administrators “Project 1 Admins” Developers “Project 1 Team” 24
  • 115. Structure – For Epic JIRAs 25
  • 116. Structure – For Epic JIRAs • Consolidate any and all schemes 25
  • 117. Structure – For Epic JIRAs • Consolidate any and all schemes • Use Scheme Tools: e.g. Scheme Comparison Tool, Group to Project Role Mapping Tool 25
  • 118. Structure – For Epic JIRAs • Consolidate any and all schemes • Use Scheme Tools: e.g. Scheme Comparison Tool, Group to Project Role Mapping Tool • ‘Archive’ projects - hide them from view of users, so that they don’t clutter the menus. Create ‘Archived’ config schemes 25
  • 120. We Declutter • Created project naming conventions 26
  • 121. We Declutter • Created project naming conventions • Eliminated & consolidated custom fields (25 out of 345) 26
  • 122. We Declutter • Created project naming conventions • Eliminated & consolidated custom fields (25 out of 345) • Took custom fields out of global context 26
  • 123. We Declutter • Created project naming conventions • Eliminated & consolidated custom fields (25 out of 345) • Took custom fields out of global context • Eliminated issue types, status, resolution choices (15-30) 26
  • 124. We Tidy 27
  • 125. We Tidy • Super User (SU) plugin 27
  • 126. We Tidy • Super User (SU) plugin • Easier to troubleshoot user issues 27
  • 127. We Tidy • Super User (SU) plugin • Easier to troubleshoot user issues • Helps us “terminate” JIRA accounts •Delete their dashboards •Delete their personal filters 27
  • 128. We Tidy • Super User (SU) plugin • Easier to troubleshoot user issues • Helps us “terminate” JIRA accounts •Delete their dashboards •Delete their personal filters •Delete subscriptions (the “silent killer”) 27
  • 129. We Train 28
  • 130. We Train • Limit General Permissions & train the users on how/when to use 28
  • 131. We Train • Limit General Permissions & train the users on how/when to use • Bulk Change 28
  • 132. We Train • Limit General Permissions & train the users on how/when to use • Bulk Change • Create Shared Objects (filters + dashboards) 28
  • 133. We Train • Limit General Permissions & train the users on how/when to use • Bulk Change • Create Shared Objects (filters + dashboards) • Manage Group Filter Subscriptions 28
  • 134. We Train • Limit General Permissions & train the users on how/when to use • Bulk Change • Create Shared Objects (filters + dashboards) • Manage Group Filter Subscriptions • Train project administrators / super-users 28
  • 135. We Do More 29
  • 136. We Do More • Use db-specific vs. XML-backup 29
  • 137. We Do More • Use db-specific vs. XML-backup • Schedule regular maintenance 29
  • 138. We Do More • Use db-specific vs. XML-backup • Schedule regular maintenance • Regularly check logs for errors 29
  • 139. We Do More • Use db-specific vs. XML-backup • Schedule regular maintenance • Regularly check logs for errors • Read the JIRA performance doc 29
  • 140. 30
  • 141. We Keep Going 30
  • 142. “Step12 - we promised to help other JIRAcholics, and to always practice what we preach JIRAcholics Anonymous 31
  • 143. A word from my sponsors….
  • 144. A word from my sponsors….
  • 145. A word from my sponsors…. Polycom, Inc. (Nasdaq: PLCM) is a global leader in unified communications solutions with industry-leading telepresence, video, voice, and infrastructure solutions built on open standards. Polycom powers smarter conversations, transforming lives and businesses worldwide. Please visit www.polycom.com for more information.
  • 146. blogs.atlassian.com/developer Flickr Attributions: Day 11 - http://www.flickr.com/photos/ivanomak/4057632458/ Blue Streak - http://www.flickr.com/photos/jettajet/2061715292/
  • 147. blogs.atlassian.com/developer Flickr Attributions: Day 11 - http://www.flickr.com/photos/ivanomak/4057632458/ Blue Streak - http://www.flickr.com/photos/jettajet/2061715292/

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. \n
  100. \n
  101. \n
  102. \n
  103. \n
  104. \n
  105. \n
  106. \n
  107. \n
  108. \n
  109. \n
  110. \n
  111. \n
  112. \n
  113. \n
  114. \n
  115. \n
  116. \n
  117. \n
  118. \n
  119. \n
  120. \n
  121. \n
  122. \n
  123. \n
  124. \n
  125. \n
  126. \n
  127. \n
  128. \n
  129. \n
  130. \n
  131. \n
  132. \n
  133. \n
  134. \n
  135. \n
  136. \n
  137. \n
  138. \n
  139. \n
  140. \n
  141. \n
  142. \n
  143. \n
  144. \n
  145. \n
  146. \n
  147. \n
  148. \n
  149. \n
  150. \n
  151. \n
  152. \n
  153. \n
  154. \n
  155. \n
  156. \n
  157. \n
  158. \n
  159. \n