![]() |
|
|
|
|
Issue Type:
|
Bug
|
|
Assignee:
|
Unassigned |
|
Components:
|
core |
|
Created:
|
05/Feb/13 8:53 PM
|
|
Description:
|
Every five seconds, for every browser tab of every user open on a typical Jenkins view page, two AJAX requests are made to the server, for /ajaxBuildQueue and /ajaxExecutors. The network bandwidth this consumes is not large since the responses are compressed and so tend to be pretty small (~1Kb for builds.apache.org). But inspection of thread dumps from masters in large installations, using hundreds of executors, shows that handling these requests is frequently the main activity of the server.
As such it ought to be optimized. However such requests force Stapler Jelly to be used to render full HTML, akin to part of a full page load, which involves some relatively expensive code paths. Perhaps the response can be sent in a rawer JSON form, with the HTML being reconstructed on the client?
With or without such an optimization, refreshPart should not set an indefinite five-second refresh time. Perhaps make the refresh interval grow exponentially (with a small base), so that the asymptotic load is zero. Of course you probably want a frequent refresh if you just opened the page, but people are just as likely to go out to lunch and leave the browser window open in a background, so we are wasting effort updating something no one is looking at. (Is there any way to tell from a browser tab if it is fronted or if there is any other activity in it, e.g. using a mouse listener?)
|
|
Project:
|
Jenkins
|
|
Labels:
|
performance
|
|
Priority:
|
Major
|
|
Reporter:
|
Jesse Glick
|
|
|
|
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira
|
--
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
[email protected].
For more options, visit
https://groups.google.com/groups/opt_out.