upgrade and performance problems.

16 views
Skip to first unread message

deno

unread,
Oct 14, 2009, 5:19:21 PM10/14/09
to Agilo for Scrum
so i decided to upgrade in hope that i could get agilo to run faster.
right it it takes several seconds (5-10) for almost any operation. i
also get the trac logo icon in the upper left of the screen and no the
agilo logo.

here's some config stuff, i'm running on centOs

Trac: 0.11.5
Python: 2.4.3 (#1, Mar 14 2007, 18:51:08) [GCC 4.1.1 20070105 (Red
Hat 4.1.1-52)]
setuptools: 0.6c8
pyPgSQL: 2.5.1
Genshi: 0.5.1
mod_python: 3.2.8
Agilo: 1.1.0-PRO
Subversion: 1.4.2 (r22196)
jQuery: 1.2.6

-----------

<VirtualHost 172.16.94.25:80 >

DocumentRoot /var/trac
ServerName trac.autoreturn.com
ServerAlias trac
ServerAdmin tr...@autoreturn.com

# Configure basic resources for TRAC
Alias /trac /usr/share/trac/htdocs
Alias /css /usr/share/trac/htdocs/css

<Location / >
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/trac
PythonOption TracUriRoot /
PythonPath "sys.path + ['/usr/share/trac']"
SetEnv PYTHON_EGG_CACHE /usr/share/trac/plugins
PythonDebug on
PythonOption TracLocale en_US.UTF8
</Location>

<LocationMatch "/[[:alnum:]]+/login" >
AuthType Basic
AuthName "The Trac Server"
AuthBasicProvider ldap
AuthzLDAPAuthoritative on
/ou=Users,ou=AutoReturn,dc=autoreturn,dc=com?sAMAccountName
Require ldap-group
cn=grp_it_dev,ou=groups,ou=AutoReturn,dc=autoreturn,dc=com
</LocationMatch>

<Location /trac>
SetHandler None
</Location>
</VirtualHost>

-------------

[agilo-backlogs]
bug_backlog.columns = sprint:editable, remaining_time:editable,
version, status, priority:editable, owner, reporter
bug_backlog.name = Bug Backlog
milestone_backlog.columns = businessvalue:editable, roif,
story_priority:editable, rd_points:editable, milestone:editabl
e, sprint:editable
milestone_backlog.name = Milestone Backlog
next_milestone.columns =
next_milestone.name = Next Milestone
product_backlog.columns = businessvalue:editable, roif,
story_priority:editable, rd_points:editable|total_story_points
product_backlog.name = Product Backlog
sprint_backlog.charts = burndown
sprint_backlog.columns = status, remaining_time:editable,
priority:editable, owner:editable, component, sprint:editable
sprint_backlog.name = Sprint Backlog

[agilo-charts]
burndown.height = 480
burndown.width = 920
sprintstats.background = #94d31a
sprintstats.foreground = #4180b3
sprintstats.height = 400
sprintstats.width = 400

[agilo-links]
allow = requirement-story, story-task, bug-story, bug-task
bug.calculate = total_remaining_time=sum:get_outgoing.remaining_time
bug.task.copy = sprint, owner
bug.task.show = remaining_time, owner
cache.related = false
cache.timeout = 0
requirement.calculate = total_story_points=sum:get_outgoing.rd_points|
type=story, mandatory_story_points=sum:get_outgoin
g.rd_points|type=story|story_priority=Mandatory,
roif=div:businessvalue;mandatory_story_points
requirement.story.copy = owner
requirement.story.show = rd_points, story_priority
story.calculate =
total_remaining_time=sum:get_outgoing.remaining_time,
estimated_remaining_time=mul:rd_points;get_sprin
t.get_team_metrics.rt_usp_ratio
story.task.copy = owner, sprint
story.task.show = remaining_time, owner

[agilo-types]
bug = remaining_time, owner, component, priority, version, sprint
bug.alias = Bug
requirement = reporter, businessvalue, milestone, keywords
requirement.alias = Requirement
story = owner, rd_points, story_priority, sprint, keywords
story.alias = User Story
task = drp_resources, remaining_time, owner, component, priority,
sprint
task.alias = Task

[attachment]
max_size = 262144
render_unsafe_content = false

[browser]
downloadable_paths = /trunk, /branches/*, /tags/*
hide_properties = svk:merge
render_unsafe_content = false

[changeset]
max_diff_bytes = 10000000
max_diff_files = 0
wiki_format_messages = true

[components]
agilo.* = enabled
agilo_common.* = enabled
#agilo_pro.* = enabled
batchmod.* = disabled
batchmod.web_ui.batchmodifymodule = disabled
batchmod.web_ui.ticketquerymacro = disabled

trac.ticket.api.ticketsystem = disabled
trac.ticket.roadmap.roadmapmodule = disabled
trac.ticket.web_ui.newticketmodule = disabled
trac.ticket.web_ui.ticketmodule = disabled

[header_logo]
alt =
height = -1
link = http://trac
src = common/trac_banner.png
width = -1

[hudson]
feed_url = http://hudson/job/ADS/rssAll
main_page = http://hudson

[inherit]
templates_dir = /usr/lib/python2.4/site-packages/
binary_agilo-1.1.0_PRO-py2.4.egg/agilo/templates

[logging]
log_file = trac.log
log_level = WARNING
log_type = file

[mimeviewer]
enscript_modes = text/x-dylan:dylan:4
enscript_path = enscript
max_preview_size = 262144
mime_map = text/x-dylan:dylan,text/x-idl:ice,text/x-ada:ads:adb
php_path = php
silvercity_modes =
tab_width = 8

[notification]
always_notify_owner = true
always_notify_reporter = true
always_notify_updater = true
mime_encoding = base64
smtp_always_bcc =
smtp_always_cc =
smtp_default_domain = autoreturn.com
smtp_enabled = true
smtp_from = tr...@autoreturn.com
smtp_password =
smtp_port = 25
smtp_replyto = tr...@autoreturn.com
smtp_server = localhost
smtp_subject_prefix = __default__
smtp_user =
use_public_cc = false
use_short_addr = false
use_tls = false

[project]
descr = Automated Dispatch Application
footer = Brought to you by the <a href="http://web1/it/>AutoReturn IT
Group</a>
icon = common/trac.ico
name = Automated Dispatch System (ADS)
url = http://apps/ads

[search]
min_query_length = 3

[theme]
override_logo = True
theme = Agilo

[ticket]
default_component = Core
default_milestone = M28 - ADS 3.1 - Continued
default_priority = major
default_type = defect
default_version = 3.3
restrict_owner = false

[ticket-custom]
businessvalue = select
businessvalue.label = Business Value Points
businessvalue.options = |100|200|300|500|800|1200|2000|3000
businessvalue.value =
drp_resources = text
drp_resources.label = Resources
i_links = text
i_links.label = Referenced By
o_links = text
o_links.label = References
rd_points = select
rd_points.label = User Story Points
rd_points.options = |1|2|3|5|8|13|20|40|100
remaining_time = text
remaining_time.label = Remaining Time
sprint = select
sprint.label = Sprint
sprint.value =
story_priority = select
story_priority.label = User Story Priority
story_priority.options = Mandatory|Linear|Exciter
story_priority.value = Mandatory

[ticket-workflow]
accept = new -> assigned
accept.operations = set_owner_to_self
accept.permissions = TICKET_MODIFY
leave = * -> *
leave.default = 1
leave.operations = leave_status
reassign = new,assigned,reopened -> new
reassign.operations = set_owner
reassign.permissions = TICKET_MODIFY
reopen = closed -> reopened
reopen.operations = del_resolution
reopen.permissions = TICKET_CREATE
resolve = new,assigned,reopened -> closed
resolve.operations = set_resolution
resolve.permissions = TICKET_MODIFY

[timeline]
changeset_long_messages = false
changeset_show_files = 0
default_daysback = 30
ticket_show_details = false

[trac]
authz_file =
authz_module_name =
base_url =
check_auth_ip = true
database = postgres://trac:trac@sql1/trac-ads-agilo
default_charset = iso-8859-15
default_handler = WikiModule
htdocs_location =
ignore_auth_case = false
mainnav = wiki,timeline,roadmap,browser,tickets,newticket,search
metanav = login,logout,settings,help,about
permission_policies = AgiloPolicy, DefaultPermissionPolicy,
LegacyAttachmentPolicy
permission_store = DefaultPermissionStore
repository_dir = /var/svn/ads
repository_type = svn
timeout = 20

[wiki]
ignore_missing_pages = false
render_unsafe_content = false
split_page_names = false

-----------

do i need the following in the above config?

[inherit]
templates_dir = /usr/lib/python2.4/site-packages/
binary_agilo-1.1.0_PRO-py2.4.egg/agilo/templates



Andrea Tomasini

unread,
Oct 14, 2009, 6:09:34 PM10/14/09
to ag...@googlegroups.com

On 14 Oct, 2009, at 23:19 , deno wrote:

Hi deno,

> so i decided to upgrade in hope that i could get agilo to run faster.
> right it it takes several seconds (5-10) for almost any operation. i
> also get the trac logo icon in the upper left of the screen and no the
> agilo logo.

Well 5-10 seconds is really a lot of time... what we do in production
systems (like our hosted Agilo - that uses mod_wsgi) is to deploy all
the static content in a separate folder and let Apache serve it.
Normally this accelerate the performances, but I do not think in your
case will solve it.

Anyway the tip is good for everyone, so you can try:
1) Download the source of Agilo (latest)
2) look in the script folder and you will find a trac_deploy.py script
3) use the command as:

$ python trac-deploy.py <env> deploy <static_folder>

This should deploy all the static files of your trac/agilo
installation to the "static_folder"

4) map apache to point there:

Alias /chrome/ /var/www/agilo_static/htdocs/

<Location /chrome/>
SetHandler None
</Location>

I don't know why you put also the path /trac/ with no handler... but
may be you know that ;-)

5) restart apache ;-)

This should guarantee you that trac will not serve static files
anymore...

This script will be available as a patch to trac-admin.py starting
from trac 0.11.6, this is why we didn't publish this yet ;-)

HTH
Best
ANdreaT

deno

unread,
Oct 14, 2009, 6:59:37 PM10/14/09
to Agilo for Scrum
here's what i just got loading the spring burndown before changes,

1.1.0-PRO © 2008-2009 agile42 all rights reserved (this page was
served in: 12.19452 sec.)
1.1.0-PRO © 2008-2009 agile42 all rights reserved (this page was
served in: 9.846101 sec.)
1.1.0-PRO © 2008-2009 agile42 all rights reserved (this page was
served in: 8.483665 sec.)


after i created /var/trac/agilo_static with the trac_deploy script and
changing my httpd.conf to;

<VirtualHost 172.16.94.25:80 >

DocumentRoot /var/trac
ServerName trac.autoreturn.com
ServerAlias trac
ServerAdmin tr...@autoreturn.com

# Configure basic resources for TRAC
Alias /trac /usr/share/trac/htdocs
Alias /css /usr/share/trac/htdocs/css
Alias /chrome/ /var/www/agilo_static/htdocs/

<Location / >
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/trac
PythonOption TracUriRoot /
PythonPath "sys.path + ['/usr/share/trac']"
SetEnv PYTHON_EGG_CACHE /usr/share/trac/plugins
PythonDebug on
PythonOption TracLocale en_US.UTF8
</Location>

<LocationMatch "/[[:alnum:]]+/login" >
AuthType Basic
AuthName "The Trac Server"
AuthBasicProvider ldap
AuthzLDAPAuthoritative on
Require ldap-group
cn=grp_it_dev,ou=groups,ou=AutoReturn,dc=autoreturn,dc=com
</LocationMatch>

</VirtualHost>


i got

1.1.0-PRO © 2008-2009 agile42 all rights reserved (this page was
served in: 6.272908 sec.)
1.1.0-PRO © 2008-2009 agile42 all rights reserved (this page was
served in: 8.652957 sec.)
1.1.0-PRO © 2008-2009 agile42 all rights reserved (this page was
served in: 8.571361 sec.)


this is slightly better but i'd love to see pages severed in ~1 sec.

- deno


On Oct 14, 3:09 pm, Andrea Tomasini <andrea.tomas...@agile42.com>
wrote:

deno

unread,
Oct 14, 2009, 7:16:32 PM10/14/09
to Agilo for Scrum
how do i configure httpd to use mod_wsgi for trac/agilo ?

i got the mod installed but not sure on the config.

thanks,

On Oct 14, 3:09 pm, Andrea Tomasini <andrea.tomas...@agile42.com>
wrote:

deno

unread,
Oct 14, 2009, 9:05:53 PM10/14/09
to Agilo for Scrum
i've make a bunch of changes but it didn't seem to do anything for
me. the new ticket page just took 17 secs to be severed.

my httpd.conf is now;

<VirtualHost 172.16.94.25:80 >

DocumentRoot /var/trac
ServerName trac.autoreturn.com
ServerAlias trac
ServerAdmin tr...@autoreturn.com

# Configure basic resources for TRAC
Alias /trac /usr/share/trac/htdocs
Alias /css /usr/share/trac/htdocs/css
Alias /chrome/ /var/www/agilo_static/htdocs/

WSGIScriptAlias / /var/trac/agilo_static/cgi-bin/trac.wsgi

<Directory /var/trac/agilo_static/cgi-bin >
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>

<LocationMatch "/[[:alnum:]]+/login" >
AuthType Basic
AuthName "The Trac Server"
AuthBasicProvider ldap
AuthzLDAPAuthoritative on
Require ldap-group
cn=grp_it_dev,ou=groups,ou=AutoReturn,dc=autoreturn,dc=com
</LocationMatch>

</VirtualHost>

i even ran a vacuum and re-index on the database. when i hit the
burndown chart i see httpd goto 100% CPU in top.

this machine is a VM but has a bunch of CPU and 2gigs of ram allocated
to it. what else could be wrong?

thanks,
deno

Felix Schwarz

unread,
Oct 15, 2009, 3:12:49 AM10/15/09
to ag...@googlegroups.com
Am 14.10.2009 23:19, schrieb deno:
> [inherit]
> templates_dir = /usr/lib/python2.4/site-packages/binary_agilo-1.1.0_PRO-py2.4.egg/agilo/templates

Yes, this enables the Agilo layout. Theoretically Agilo's theme.html
could be located in your env dir but we don't recommend that.

fs

Felix Schwarz

unread,
Oct 15, 2009, 3:24:35 AM10/15/09
to ag...@googlegroups.com
Am 15.10.2009 03:05, schrieb deno:
> i've make a bunch of changes but it didn't seem to do anything for
> me. the new ticket page just took 17 secs to be severed.

If it takes so long to load a simple new ticket page, something is
*very* wrong and you should not bother trying mod_wsgi and/or trac-admin
deploy (these might improve speed by a second or two but not 15-16).

I assume that the '17 seconds' is the page shown at the bottom of the
new ticket page? (This is important because it shows us where to look).

1. Check that your DB server is reasonably fast (don't forget to check
that it is fast to connect to the server if it's on an external machine)

2. Check for endless Agilo restarts: We had a bug once that Agilo
reloaded itself for every request when run with mod_python. This bug is
fixed in your version of Agilo but maybe we overlooked something.
- Enable debug logging
- restart Apache
- Go to any Agilo/trac page
- check the trac.log, it should contains like
'DEBUG: Loading trac.mimeview.patch from'
- check that this line is only shown once

3. Create a new environment using sqlite. Is the newticket page still
so slow?

fs

deno

unread,
Oct 15, 2009, 12:50:13 PM10/15/09
to Agilo for Scrum
> 1. Check that your DB server is reasonably fast (don't forget to check
> that it is fast to connect to the server if it's on an external machine)

this could be it. our db server is on the other side of a 54Mbps WAN
link. i would hope that i didn't need to db on the same local LAN.

>
> 2. Check for endless Agilo restarts: We had a bug once that Agilo
> reloaded itself for every request when run with mod_python. This bug is
> fixed in your version of Agilo but maybe we overlooked something.
>     - Enable debug logging
>     - restart Apache
>     - Go to any Agilo/trac page
>     - check the trac.log, it should contains like
>        'DEBUG: Loading trac.mimeview.patch from'
>     - check that this line is only shown once

i don't think this is happening as i upgraded to mod_wsgi yesterday.
i just see a lot of

2009-10-15 09:24:12,159 Trac[log] WARNING: [CommandParser] [By Key]:
Warning 'allowed_links'
2009-10-15 09:24:12,159 Trac[log] WARNING: [CommandParser] [By Key]:
Warning 'source'
2009-10-15 09:24:12,160 Trac[log] WARNING: [CommandParser] [By Key]:
Warning 'ticket_types'
2009-10-15 09:24:12,160 Trac[log] WARNING: [CommandParser] [By Key]:
Warning 'target'


>
> 3. Create a new environment using sqlite. Is the newticket page still
>     so slow?

i'll try that.

deno

unread,
Oct 16, 2009, 3:33:03 PM10/16/09
to Agilo for Scrum
moving postgres to the same machine as trac fixed it. i found out
server which hosts most all our companies databases to be bogged
down. my spring backlog generates in about 2secs now.
>  smime.p7s
> 4KViewDownload
Reply all
Reply to author
Forward
0 new messages