Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Atlassian Skill Builder – Scaling JIRA

Scaling Jira Homework


_________________________________________________________________________
V1 March 2018

Assumptions
1. You must have administration access to Jira Server instance. Depending on your
circumstances, some of these exercises may be best performed only on a
staging/non-production instance.
2. All versions of Jira Server from Jira 7.0 upwards are valid.
3. You may wish to consult the webinar notes PDF while doing the exercises.

Jira Scaling Exercises -- Getting Started


For these exercises, you will need to be a member of the jira-administrators group in a Jira
Server instance.

Jira Scaling basics 2


Exercise 1: Current Application Usage 2
Exercise 2: System Requirements 2
Exercise 3: Scale of Your Instance 2
Exercise 4: Workflows 2
Exercise 5: Custom Resolutions 3
Exercise 6: Synchronized Users 3
Exercise 7: Administration Hierarchy 3
Exercise 8: Network 3
Exercise 9: Database Monitoring 3
Exercise 10: User Sessions 4
Exercise 11: Instance Health 4
Exercise 12: Limiting JQL Search Results 4
Exercise 13: Mark or Rollover the Logs 4
Exercise 14: Run the Log Analyzer 4
Exercise 15: Start Jira in Safe Mode 5
Exercise 16: Generate a Thread Dump 5
Exercise 17: Generate a Heap Dump (Advanced) 5
Exercise 18: Force Garbage Collection 5
Scaling Jira Multiple Instances 5
Exercise 1: Connect 2 Jira Instances 5

Page 1 of 6
Atlassian Skill Builder – Scaling JIRA

Exercise 2: Unified Activity Streams 6

Jira Scaling Basics

Exercise 1: Current Application Usage

Log into Jira and determine:

1. Number of users
2. Number of issues
3. Number of custom fields
Tip: Check the system info page.

Exercise 2: System Requirements

Log into Jira and determine:

1. Server processor
2. System memory
3. JVM Heap size
4. Attachment size
Tip: Check the system info page. For attachment size, navigate to the location of attachments
specified in the system info page.
Advanced: Determine the type of hard disk drive used to store attachments. e.g. speed of HDD
or if SSD is used. Note that for attachments in excess of 50GB, a network storage solution, such
as a NAS or San, is recommended.

Exercise 3: Scale of Your Instance

1. Using the information in exercise 1 and 2, determine the scale of your instance using the
Jira sizing guide.
2. Determine the anticipated growth of Jira in your organization.
3. Provide a gap analysis.

Exercise 4: Workflows

Log into Jira and determine the number of workflows. Tabulate the number of steps in each
workflow.
● Does this fall between the recommended range from 5 for small instances to 100 for
enterprise-scale instances?

Page 2 of 6
Atlassian Skill Builder – Scaling JIRA

Exercise 5: Custom Resolutions

Log into Jira and determine the number of custom resolutions.


● Does this fall between the recommended 10 - 40 resolutions for a single Jira instance?

Exercise 6: Synchronized Users

Log into Jira and determine if "Enable Incremental Synchronization" is checked.

● Navigate to User management > Advanced Settings.

Exercise 7: Administration Hierarchy

Create a pyramid and identify the System Administrator, Jira Administrator and Project
Administrators.
● Identify bottlenecks or points of vulnerability. (e.g. ‘There is only 1 system administrator.”)

Exercise 8: Network

Document the network bandwidth and speed between servers (file server and application
server) and geographical locations in relation to Jira users.
● Identify any anti-virus software that may be running and can affect the server performance.

Exercise 9: Database Monitoring

Log into Jira and record database:

1. type
2. JNDI address
3. URL
4. version
5. driver
6. collation

● View the database connection pool and read/writes


Tip: Connection pools can be found under "database monitoring".

Page 3 of 6
Atlassian Skill Builder – Scaling JIRA

Exercise 10: User Sessions

Log into Jira and determine the user sessions.


Tip: This can be found under System > User sessions.

Exercise 11: Instance Health

Log into Jira and determine if the instance health check has detected any problems.
Tip: This can be found under System > Troubleshooting and support tools.

Exercise 12: Limiting JQL Search Results

Add the following to the jira-config.properties file:


jira.search.views.default.max=1500
jira.search.views.max.limit=2000
jira.search.views.max.unlimited.group=jira-administrators
Understand what each of these properties do.
Tip:
https://confluence.atlassian.com/jirakb/exporting-a-filter-result-containing-more-than-1000-issue
s-191500982.html
Note: Retrieving more than 1000 issues at once may result in an OutOfMemoryException for
large result sets. This can cause database corruption or an application crash.

Exercise 13: Mark or Rollover the Logs

1. Place an optional message and mark the logs. Then search the logs for the mark.
2. Roll over the logs to force the logs to start a new file.
Tip: This can be found under System > Logging and Profiling.
Advanced: Turn on HTTP, SQL and Profiling.

Exercise 14: Run the Log Analyzer

Check the Log Analyzer for any errors.


Tip: This can be found under System > Troubleshooting and support tools.

Exercise 15: Start Jira in Safe Mode

1. Start Jira in safe mode to disable all plugins.


2. Disable all plugins while Jira is running.

Page 4 of 6
Atlassian Skill Builder – Scaling JIRA

Tip: Run: ./bin/start-jira.sh --disable-all-addons --disable-addons=com.atlassian.test.plugin


or Administration > Manage add-ons.

Exercise 16: Generate a Thread Dump

Use jstack that comes with JDK to run a thread dump.


Tip: jstack.exe -l 22668 > threaddump.txt.
Advanced: Use a thread dump analyzer to help read thread dumps, uncover patterns and
identify root cause of performance problems.

Exercise 17: Generate a Heap Dump (Advanced)

1. Set JIRA to generate a heap dump when the JVM runs out of memory.
2. Generate a heap dump manually with jmap (via $JAVA_HOME/bin/jmap
-dump:format=b,file=heap.bin <pid>).
Tip: -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=<path to this heap dump file>.

Exercise 18: Force Garbage Collection

Force garbage collection.


Tip: Click the force garbage collection link in System Info page.
Advanced: Restart Jira with these parameters to record memory usage that can be analyzed
with GCViewer:
(Linux): -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps
-XX:+PrintGCCause -Xloggc:/var/atlassian/application-data/jira/log/atlassian-jira-gc-%t.log
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=20M
Ref:
https://confluence.atlassian.com/jirakb/using-garbage-collection-logs-to-analyze-jira-application-
performance-227416009.html

Scaling Multiple Jira Instances

Exercise 1: Connect 2 Jira Instances

Connect 2 Jira instances via an application link.


Tip: Try setting up a localhost instance and using that as a second option.

Exercise 2: Unified Activity Streams

Create an activity stream and confirm the updates across the 2 instances.

Page 5 of 6
Atlassian Skill Builder – Scaling JIRA

Page 6 of 6

You might also like