How to increase per minute edits of Jira server issues via API?

Cyber BBH August 29, 2022

Another way to put my question is: is there a hard limit to how many API calls I can make in a minute to Jira Server?

My use case involves daily updates of issues using external data sources- to update issues, I am using api/2/issue and I can never seem to get above ~500 messages/minute (~8 messages/second). I am using 48 parallel processes to bombard jira with API calls but there is definitely some bottleneck that is throttling my requests and I am trying to find those bottlenecks and adjust them to open up a bit more. I am running Jira on a RHEL 7 server with 24GB and 8 CPUs- using top, I can see the server is not the bottleneck as hardly any CPU resources are being consumed and free memory hovers at about ~3GB.

On the database, I have increased min and max DB connection pool settings to 40. Reviewing the database monitoring page, below is a typical graph for my instance:

Snag_33d4cb09.png

As you can see, there is a spike when my parallel processes start but then it quickly goes down and hardly consumes any connections.

I would appreciate any guidance on what bottlenecks might exist and where to modify settings to alleviate those bottlenecks. Or any general guidance!

Thanks,

Akshar

1 answer

0 votes
Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
August 29, 2022

There is throttling hard-coded into the application, to prevent attacks such as yours taking it down.

Cyber BBH August 29, 2022

Thanks-

Looks like the default throttling is a bit conservative when reviewing the DB monitoring graphs combined with CPU idle time on my Jira server hovering around ~75%.

Any way to modify any of those settings?

Radek Dostál
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
August 29, 2022

It's the number one enemy of Jira - trying to replicate a different system inside of it. 

Everytime you do a change on the issue, a lot of actions take place. The bigger the issue becomes, the longer those actions will take.

Better question is why are you trying to run 48 parallel updates against it?

Likely you would get better performance by building an actual connector (aka plugin) so you can skip out on unnecessary steps such as authorization, permissions, shared resources being locked by each request, change histories, notifications, etc. But that still doesn't change the fact it sounds that you are trying to turn it into a different system than it is.

Long story short what you're doing right now is more of a DoS attack under normal circumstances and you would probably get rate limited / temporarily locked out on any other Jira instance.

Suggest an answer

Log in or Sign up to answer