Improving performance

Added by Razi Baluchi over 8 years ago

We have a fairly large redmine implementation - About 35,000 issues and 1600 users across 20 projects. I'm hoping to get feedback on expected performance. I've stripped out all plugins and have moved a copy of the database to a clean test box sized the same as our production server. This is a 4 core by 8 GB VM running Centos 6. The Redmine info is:

Environment:
Redmine version 2.3.2.stable
Ruby version 1.9.3-p194 (2012-04-20) [x86_64-linux]
Rails version 3.2.13
Environment production
Database adapter PostgreSQL
Redmine plugins:
no plugin installed

The browser used for testing was Chrome (version 28) and the webserver is Thin v1.5.1. The timings on various views are as follows:

View Issue:

Rendered issues/_action_menu.html.erb (15.2ms)
Rendered issue_relations/_form.html.erb (5.8ms)
Rendered issues/_relations.html.erb (11.2ms)
Rendered issues/_action_menu.html.erb (4.9ms)
Rendered issues/_form_custom_fields.html.erb (10.3ms)
Rendered issues/_attributes.html.erb (645.0ms)
Rendered issues/_form.html.erb (684.0ms)
Rendered attachments/_form.html.erb (7.4ms)
Rendered issues/_edit.html.erb (717.1ms)
Rendered issues/_sidebar.html.erb (15.8ms)
Rendered watchers/_watchers.html.erb (9.2ms)
Rendered issues/show.html.erb within layouts/base (849.4ms)
Completed 200 OK in 2049ms (Views: 659.7ms | ActiveRecord: 516.6ms

Update issue:

Rendered mailer/_issue.text.erb (28.6ms)
Rendered mailer/issue_edit.text.erb within layouts/mailer (31.5ms)
Rendered mailer/_issue.html.erb (5.1ms)
Rendered mailer/issue_edit.html.erb within layouts/mailer (12.5ms)
Completed 302 Found in 1524ms (ActiveRecord: 184.5ms)
Rendered issues/_action_menu.html.erb (6.9ms)
Rendered issue_relations/_form.html.erb (1.9ms)
Rendered issues/_relations.html.erb (3.4ms)
Rendered issues/_history.html.erb (13.6ms)
Rendered issues/_action_menu.html.erb (4.7ms)
Rendered issues/_form_custom_fields.html.erb (8.6ms)
Rendered issues/_attributes.html.erb (479.1ms)
Rendered issues/_form.html.erb (511.7ms)
Rendered attachments/_form.html.erb (2.3ms)
Rendered issues/_edit.html.erb (530.6ms)
Rendered issues/_sidebar.html.erb (15.7ms)
Rendered watchers/_watchers.html.erb (7.8ms)
Rendered issues/show.html.erb within layouts/base (638.2ms)
Completed 200 OK in 1898ms (Views: 815.0ms | ActiveRecord: 231.3ms)

Add watchers:

Rendered watchers/_new.html.erb (9726.5ms)
Rendered watchers/new.js.erb (9738.6ms)
Completed 200 OK in 9760ms (Views: 6924.7ms | ActiveRecord: 2825.3ms)

One last one, the Settings tab for a large project:

Completed 200 OK in 331262ms (Views: 84048.1ms | ActiveRecord: 247120.7ms)

Based on the performance I see at the redmine.org site, this performance seems quite slow. Any suggestions on improvements?

Thanks

Replies (6)

RE: Improving performance - Added by Etienne Massip over 8 years ago

You should at least:
  • enable debug log to get the part of DB work in the whole transaction time (for analysis purpose)
  • if not done yet, switch to asynchronous mail notifications
You can also try to run on different stack:
  • JRuby is faster than MRI, you can switch to puma server as well since it's supposed to be faster in multithread environment like JRuby
  • Passenger
  • Redmine.org uses FCGI AFAIK
  • in a cluster (Passenger, Thin, Puma, most server supports running in cluster) if you have a lot of simultaneous users

My 2 cents, never tried these configs by myself.

RE: Improving performance - Added by Razi Baluchi about 8 years ago

So it appears that the performance issues directly correlate to number pf members of a project. The larger the number of members, the slower the performance. I'm temporarily working around this by making the largest projects public and removing the members. The largest had close to 1500 members. I'm not sure what the 'safe' limit is, but it does appear that there is some inefficiency in the way updates to issues are processed when evaluating which members are impacted/involved.

RE: Improving performance - Added by Etienne Massip about 8 years ago

Did you follow any of my advices?

RE: Improving performance - Added by Razi Baluchi about 8 years ago

Etienne Massip wrote:

Did you follow any of my advices?

Yes, our standard production instance is a Passenger cluster - I had dropped down to a Vanilla configuration on the test instance to make it easier to troubleshoot. I also experimented with JRuby but did not see a noticeable improvement over Ruby 1.9.3-p194. What's intersting is that the number of issues in the system or total number of users don't seem to have an impact. It's only when all these users are added as members to a project that the slow down occurs. Do we have other folks that're running projects with 1000+ members? it would be helpful to see what they're doing differently.

RE: Improving performance - Added by Ewan Makepeace about 8 years ago

I am getting increasingly frustrated with slow performance (especially submits) in my own Redmine projects and we are only around 8000 issues in each system and under 100 users.

One variable you did not mention - we are enthusiastic users of subtasks. Many tasks are even sub-sub tasks with 20 or 30 issues grouped in a hierarchy. I have a suspicion that the parent child relationship updates could be contributing to performance issues - do you use that feature much?

RE: Improving performance - Added by shakib a 9 months ago

I've noticed recently that if someone is engaged in many projects and issues, will suffer from Redmine slow performance, while any other user with just a few projects (i.e. 3 or 5 at most) will be happy with fast responsive action in Redmine! I think Redmine queries are increased by user projects and slows down the system.

(1-6/6)