danmunn / redmine_mylyn_connector

API Connector for mylyn [redmine-myln-connector] as developed originally by Sven Krzyzak (sourceforge.net/projects/redmin-mylyncon)
danmunn.github.com/redmine_mylyn_connector
59 stars 31 forks source link

Configuring for speed #3

Open jmrharris opened 12 years ago

jmrharris commented 12 years ago

OK - I have a working install of the redmine_mylyn_connector version 2.8

Unfortunately the responsiveness is rather poor...

Started GET "/redmine/mylyn/issuestatus" for 192.168.3.151 at Tue Jul 03 16:50:44 +0930 2012 Processing by MylynConnector::IssueStatusController#all as XML Rendered plugins/redmine_mylyn_connector/app/views/mylyn_connector/issue_status/all.xml.builder (3.4ms) Completed 200 OK in 18062ms (Views: 3.8ms | ActiveRecord: 4.3ms)

Started GET "/redmine/mylyn/versions" for 192.168.3.151 at Tue Jul 03 16:51:02 +0930 2012 Processing by MylynConnector::VersionsController#all as XML Rendered plugins/redmine_mylyn_connector/app/views/mylyn_connector/versions/all.xml.builder (1.9ms) Completed 200 OK in 18150ms (Views: 2.1ms | ActiveRecord: 83.4ms)

These seem to be very long completion times.

Q: Is anyone else seeing the same?

My setup includes Apache, Phusion_Passenger and MySQL: [Mon Jul 02 10:47:05 2012] [notice] Apache/2.2.22 (Ubuntu) Phusion_Passenger/3.0.13 mod_ssl/2.2.22 OpenSSL/1.0.1

(BTW I saw similar performance issues on different very slow hardware that excluded https)

danmunn commented 12 years ago

Hello jmrharris,

Looking at the log it looks to be a problem your end - the view is taking 2-4ms to render, the db interaction 4.3 to 100ms to complete.

Started GET "/mylyn/issuestatus" for ... at 2012-07-04 04:45:50 +0100
Processing by MylynConnector::IssueStatusController#all as XML
Rendered plugins/redmine_mylyn_connector/app/views/mylyn_connector/issue_status/all.xml.builder (3.2ms)
Completed 200 OK in 27ms (Views: 5.3ms | ActiveRecord: 12.0ms)

Started GET "/mylyn/versions" for ... at 2012-07-04 04:47:05 +0100
Processing by MylynConnector::VersionsController#all as XML
Rendered plugins/redmine_mylyn_connector/app/views/mylyn_connector/versions/all.xml.builder (2.4ms)
Completed 200 OK in 38ms (Views: 4.4ms | ActiveRecord: 11.8ms)

I've attached the same requests from a production server running Apache 2.2.22 and thin (apache running as a reverse proxy)

jmrharris commented 12 years ago

Hi Daniel,

Thanks for the feedback - That is promising and good to know :)

I'm using Eclipse to access the redmine_mylyn_connector. Q:Are you doing the same?

Monitoring the logs in real time (tail -f log/production.log) is see:

Started GET "/redmine/mylyn/projects" for 192.168.3.148 at Wed Jul 04 13:48:15 +0930 2012
Processing by MylynConnector::ProjectsController#all as XML

Then a very long delay before:

Rendered plugins/redmine_mylyn_connector/app/views/mylyn_connector/projects/_project.xml.builder (404.9ms)
Rendered plugins/redmine_mylyn_connector/app/views/mylyn_connector/projects/all.xml.builder (480.0ms)
Completed 200 OK in 18551ms (Views: 457.3ms | ActiveRecord: 29.1ms)

Q: Does this "Completed 200 OK" depend on getting a response back from the client? (Eclipse in this case).

Thanks.

James

danmunn commented 12 years ago

I'm unsure why there would be a 15 second delay between starting to process a request and the actual processing it; do you get this behaviour when accessing the rest of Redmine?

In reply to your question, Completed 200 OK is part of the servers response to eclipse (or whatever client), just indicating that everything is okay in terms of the response (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html)

jmrharris commented 12 years ago

No, I do not see these delays elsewhere in Redmine, only when accessing issues from Eclipse.

So that suggests that there may be some kind of query/process internal to Redmine / Apache / redmine_mylyn_connector that is timing out, with fall-back, because I can't imagine there's that much raw processing involved!

I'll see if I can increase the Redmine logging verbosity and see a bit more of what is going on.

Thanks for your assistance.

Cheers,

James

awilkins commented 10 years ago

The problem is definitely with the

/redmine/mylyn/projects

route.

I suspected it was to do with the redonkulous number of custom fields in our database.

Commenting EVERYTHING out from _project.xml.builder with the exception of

project.name
project.identifier

.. still results in a query that takes a significant amount of time - without doing this, those ~1,900 ms values below are more like ~10,000ms

Processing by MylynConnector::ProjectsController#all as XML
  Current user: adwi2 (id=54)
  Rendered plugins/redmine_mylyn_connector/app/views/mylyn_connector/projects/_project.xml.builder (1947.5ms)
  Rendered plugins/redmine_mylyn_connector/app/views/mylyn_connector/projects/all.xml.builder (1949.8ms)
Completed 200 OK in 1965.5ms (Views: 1893.3ms | ActiveRecord: 57.6ms)

Not knowing enough about Ruby, is "project" some kind of lazy object? We do have a lot of projects in this instance, but the log seems to state that it's the view that taking the time, not ActiveRecord.