Permission or scheme impact on performance?

Phillip Brand October 28, 2014

We're trying to track down some performance issues that are causing the issue detail page to take several seconds to load. When enabling the profiling log and loading an issue, we get results like these below (abbreviated). I'm not that familiar with analyzing these profile logs yet, but it seems like permission checks of some sort are taking quite some time. I've seen some mentions of permission schemes being a potential performance issue, but not much detail on how to avoid it. We don't have many permission schemes, the majority of our projects use the same one and the vast majority of the permissions use role lookups, very few have groups. Any recommendations on next steps on finding more info or improving these times?

 

[atlassian.util.profiling.UtilTimerStack] [5611ms] - /browse/REQ-77
[0ms] - PermissionManager.hasPermission()
[4534ms] - IssueNavAction.execute()
[14ms] - PermissionManager.hasPermission()
[1ms] - PermissionManager.hasPermission()
[5ms] - PermissionManager.hasPermission()
[1ms] - PermissionManager.hasPermission()
[1ms] - PermissionManager.hasPermission()
[0ms] - PermissionManager.hasPermission()
[1ms] - PermissionManager.hasPermission()
[1ms] - PermissionManager.hasPermission()
[0ms] - PermissionManager.hasPermission()
[1ms] - PermissionManager.hasPermission()
[1ms] - PermissionManager.hasPermission()
[8ms] - PermissionManager.hasPermission()
[1ms] - PermissionManager.hasPermission()
[0ms] - PermissionManager.hasPermission()
[182ms] - PermissionManager.hasProjects()
.... 
[434ms] - Updating Pager for viewing issue:REQ-77
[0ms] - IssueIndexManager.getIssueSearcher()
[434ms] - Searching and sorting with Collector
[0ms] - IssueIndexManager.getIssueSearcher()
[368ms] - PermissionManager.getProjectObjects()
[0ms] - List.iterator()
[0ms] - Iterator.hasNext()
[0ms] - Iterator.next()
[0ms] - Iterator.hasNext()

.... 

[jira.web.filters.ThreadLocalQueryProfiler] RESULT GROUP: com.atlassian.jira.scheme.SchemeManager
[jira.web.filters.ThreadLocalQueryProfiler] 3172:21ms getSchemes [0,0,0,0,0...,0,0,0,0,0,0,0,0]
[jira.web.filters.ThreadLocalQueryProfiler] 3216:1034ms hasSchemeAuthority [0,1,0,1,0,0,...1,0,0,0,1,0]
[jira.web.filters.ThreadLocalQueryProfiler] com.atlassian.jira.scheme.SchemeManager: 6388 keys (2 unique) took 1055ms/5617ms : 18.782269% 527ms/query avg.
....
[jira.web.filters.ThreadLocalQueryProfiler] PROFILED : 11230 keys (82 unique) took 2839ms/5617ms : 50.54299% 0ms/query avg.

 

6.1.3, 60k issues, 1k projects, 202 custom fields, 54 workflows
VMware, 4 cpu, 8gb total ram, 2gb for jvm, MySQL on same machine

1 answer

1 vote
Tansu Kahyaoglu December 21, 2016

Hi Philip,

 

I believe better late than never smile

Have a look at the link below, if it's not too late

https://confluence.atlassian.com/jirakb/understanding-jql-performance-740263450.html

Suggest an answer

Log in or Sign up to answer