{"id":9911,"date":"2007-01-14T09:58:00","date_gmt":"2007-01-14T09:58:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/bharry\/2007\/01\/14\/orcas-work-item-tracking-performance-improvements\/"},"modified":"2018-08-14T00:34:22","modified_gmt":"2018-08-14T00:34:22","slug":"orcas-work-item-tracking-performance-improvements","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/bharry\/orcas-work-item-tracking-performance-improvements\/","title":{"rendered":"Orcas Work Item Tracking Performance Improvements"},"content":{"rendered":"<p>Back in October I published some <a class=\"\" href=\"http:\/\/blogs.msdn.com\/bharry\/archive\/2006\/10\/06\/Orcas-Version-Control-Performance-Improvements.aspx\">results<\/a> from the performance work we&#8217;ve done on version control for Orcas.&nbsp; We&#8217;ve also been working on work item tracking performance improvements &#8211; I mentioned them in our last dogfood server statistics.&nbsp; I&#8217;m very pleased with the results and thought I&#8217;d share them with you.\nFirst you have to understand the context.&nbsp; The numbers are taken on a system under load and don&#8217;t reflect changes you would see with a few people using a server.&nbsp; In fact this work was done as part of preparing to roll TFS out to the Microsoft Office organization and is&nbsp;from a 2000 user, constant load, statistical simulation based on their observed historical work load.&nbsp; A high load like this yields substantially different results than light loads&nbsp;because performance curves, as load increases, are rarely linear &#8211; we work hard to make them so but it&#8217;s generally just a best approximation.\nIn addition to performance improvements under load &#8211; we have observed over the past year or so that in our dogfood environment work item tracking would have periodic &#8220;pauses&#8221;.&nbsp; They seemed random (a couple of times a day per user) and would last 20 seconds to a minute.&nbsp; We have tracked down the cause of the problem and fixed it in Orcas.&nbsp; It had to do with rebuilding dynamic views in SQL and the times were exaggerated due to the number of columns we have in our views on our dogfood server.&nbsp; We had approximately 500 columns and what we learned is that rebuilding views on a busy server when the views have hundreds of columns is a pretty slow operation.&nbsp; You&#8217;ll find in Orcas we gave greatly simplified our views and reduced our dependence on them.\nSo, on to the results&#8230; Here&#8217;s the timing of the response time of the server for 4 of the most common operations in work item tracking and the corresponding data tier CPU utilization at a load of 2000 users.&nbsp; User perceived times will be longer as there is client\/UI time that is not captured here (this is just measuring the server response time).<\/p>\n<table class=\"MsoNormalTable\" cellspacing=\"0\" cellpadding=\"0\" width=\"475\" border=\"0\">\n<tbody>\n<tr>\n<td class=\"\" valign=\"bottom\" nowrap width=\"165\" height=\"17\">\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span><\/span><\/font>&nbsp;<\/p>\n<\/td>\n<td class=\"\" valign=\"bottom\" nowrap width=\"35\" height=\"17\">\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span>Save<\/span><\/font><\/p>\n<\/td>\n<td class=\"\" valign=\"bottom\" nowrap width=\"39\" height=\"17\">\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span>Open<\/span><\/font><\/p>\n<\/td>\n<td class=\"\" valign=\"bottom\" nowrap width=\"43\" height=\"17\">\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span>Query<\/span><\/font><\/p>\n<\/td>\n<td class=\"\" valign=\"bottom\" nowrap width=\"91\" height=\"17\">\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span>Page results<\/span><\/font><\/p>\n<\/td>\n<td class=\"\" valign=\"bottom\" nowrap width=\"103\" height=\"17\">\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span>CPU utilization<\/span><\/font><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"\" valign=\"bottom\" nowrap width=\"165\" height=\"17\">\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span>Before (in sec)<\/span><\/font><\/p>\n<\/td>\n<td class=\"\" valign=\"bottom\" nowrap width=\"35\" height=\"17\">\n<p class=\"MsoNormal\" align=\"right\"><font face=\"Arial\" size=\"2\"><span>4.06<\/span><\/font><\/p>\n<\/td>\n<td class=\"\" valign=\"bottom\" nowrap width=\"39\" height=\"17\">\n<p class=\"MsoNormal\" align=\"right\"><font face=\"Arial\" size=\"2\"><span>0.78<\/span><\/font><\/p>\n<\/td>\n<td class=\"\" valign=\"bottom\" nowrap width=\"43\" height=\"17\">\n<p class=\"MsoNormal\" align=\"right\"><font face=\"Arial\" size=\"2\"><span>1.18<\/span><\/font><\/p>\n<\/td>\n<td class=\"\" valign=\"bottom\" nowrap width=\"91\" height=\"17\">\n<p class=\"MsoNormal\" align=\"right\"><font face=\"Arial\" size=\"2\"><span>0.85<\/span><\/font><\/p>\n<\/td>\n<td class=\"\" valign=\"bottom\" nowrap width=\"103\" height=\"17\">\n<p class=\"MsoNormal\" align=\"right\"><font face=\"Arial\" size=\"2\"><span>62.1%<\/span><\/font><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"\" valign=\"bottom\" nowrap width=\"165\" height=\"17\">\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span>After (in sec)<\/span><\/font><\/p>\n<\/td>\n<td class=\"\" valign=\"bottom\" nowrap width=\"35\" height=\"17\">\n<p class=\"MsoNormal\" align=\"right\"><font face=\"Arial\" size=\"2\"><span>0.29<\/span><\/font><\/p>\n<\/td>\n<td class=\"\" valign=\"bottom\" nowrap width=\"39\" height=\"17\">\n<p class=\"MsoNormal\" align=\"right\"><font face=\"Arial\" size=\"2\"><span>0.06<\/span><\/font><\/p>\n<\/td>\n<td class=\"\" valign=\"bottom\" nowrap width=\"43\" height=\"17\">\n<p class=\"MsoNormal\" align=\"right\"><font face=\"Arial\" size=\"2\"><span>0.16<\/span><\/font><\/p>\n<\/td>\n<td class=\"\" valign=\"bottom\" nowrap width=\"91\" height=\"17\">\n<p class=\"MsoNormal\" align=\"right\"><font face=\"Arial\" size=\"2\"><span>0.08<\/span><\/font><\/p>\n<\/td>\n<td class=\"\" valign=\"bottom\" nowrap width=\"103\" height=\"17\">\n<p class=\"MsoNormal\" align=\"right\"><font face=\"Arial\" size=\"2\"><span>38.6%<\/span><\/font><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"\" valign=\"bottom\" nowrap width=\"165\" height=\"17\">\n<p class=\"MsoNormal\"><font face=\"Arial\" size=\"2\"><span>Times faster<\/span><\/font><\/p>\n<\/td>\n<td class=\"\" valign=\"bottom\" nowrap width=\"35\" height=\"17\">\n<p class=\"MsoNormal\" align=\"right\"><font face=\"Arial\" size=\"2\"><span>13.9<\/span><\/font><\/p>\n<\/td>\n<td class=\"\" valign=\"bottom\" nowrap width=\"39\" height=\"17\">\n<p class=\"MsoNormal\" align=\"right\"><font face=\"Arial\" size=\"2\"><span>12.4<\/span><\/font><\/p>\n<\/td>\n<td class=\"\" valign=\"bottom\" nowrap width=\"43\" height=\"17\">\n<p class=\"MsoNormal\" align=\"right\"><font face=\"Arial\" size=\"2\"><span>7.6<\/span><\/font><\/p>\n<\/td>\n<td class=\"\" valign=\"bottom\" nowrap width=\"91\" height=\"17\">\n<p class=\"MsoNormal\" align=\"right\"><font face=\"Arial\" size=\"2\"><span>10.1<\/span><\/font><\/p>\n<\/td>\n<td class=\"\" valign=\"bottom\" nowrap width=\"103\" height=\"17\">\n<p class=\"MsoNormal\" align=\"right\"><font face=\"Arial\" size=\"2\"><span>1.6<\/span><\/font><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>As you can see, not only is Orcas about 10 times faster under this load than TFS 2005 is, it is accomplished with just over half the CPU utilization.&nbsp; Both are results we&#8217;re very excited about!\nLastly, we&#8217;ve also been working on client performance improvements.&nbsp; We&#8217;ve primarily been concentrating on work item form rendering speed.&nbsp; The&nbsp;improvements we&#8217;ve made have reduced the time to view a work item form to 20%-50% of the&nbsp;TFS 2005 times.&nbsp; That&#8217;s 2-5 times faster.&nbsp; These times were taken under single user load scenarios so as the number of users increases, the performance improvements I described above&nbsp;will kick in and the difference will be even greater.&nbsp;\nI&#8217;m looking forward to getting this stuff in your hands in the next CTP.<\/p>\n<p>Brian<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Back in October I published some results from the performance work we&#8217;ve done on version control for Orcas.&nbsp; We&#8217;ve also been working on work item tracking performance improvements &#8211; I mentioned them in our last dogfood server statistics.&nbsp; I&#8217;m very pleased with the results and thought I&#8217;d share them with you. First you have to [&hellip;]<\/p>\n","protected":false},"author":244,"featured_media":14617,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-9911","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"blog_post_summary":"<p>Back in October I published some results from the performance work we&#8217;ve done on version control for Orcas.&nbsp; We&#8217;ve also been working on work item tracking performance improvements &#8211; I mentioned them in our last dogfood server statistics.&nbsp; I&#8217;m very pleased with the results and thought I&#8217;d share them with you. First you have to [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/posts\/9911","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/users\/244"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/comments?post=9911"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/posts\/9911\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/media\/14617"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/media?parent=9911"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/categories?post=9911"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/tags?post=9911"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}