{"id":279,"date":"2009-03-14T12:32:56","date_gmt":"2009-03-14T20:32:56","guid":{"rendered":"http:\/\/jaredrobinson.com\/blog\/?p=279"},"modified":"2009-03-14T12:32:56","modified_gmt":"2009-03-14T20:32:56","slug":"mwrc-tourbus-server-load-tester-by-david-brady","status":"publish","type":"post","link":"https:\/\/jaredrobinson.com\/blog\/mwrc-tourbus-server-load-tester-by-david-brady\/","title":{"rendered":"mwrc: TourBus server load tester by David Brady"},"content":{"rendered":"<p>David Brady &#8212; TourBus<\/p>\n<p>He can make your website 10x faster in a day&#8217;s work. Given two weeks, he can make it 100x faster.<\/p>\n<p>Do you believe in refactoring? If you don&#8217;t believe he can do what he says he<br \/>\ncan do, then you don&#8217;t believe in refactoring.<\/p>\n<p>How do you optimize?<\/p>\n<p>1. Measure<br \/>\n2. Find bottlenecks<br \/>\n3. Go up a level<br \/>\n4. Rearchitect, redesign to fix<br \/>\n5. Measure<\/p>\n<p>TourBus helps you find the performance problems in web servers. It makes use of:<\/p>\n<p>&#8211; WWW::Mechanize<br \/>\n&#8211; Threaded<br \/>\n&#8211; Unit Testing<\/p>\n<p>He showed us an example. It&#8217;s easy to use.<\/p>\n<p>I notice he uses Aquamacs (emacs for Mac), and sinatra<\/p>\n<p>TourBus trips over itslef at 500 requests per second, since its written in<br \/>\nRuby. They used the mySQL slow query analyzer, and it told them they needed<br \/>\nsome indexes on some tables. The db CPU use dropped from 100% to 1%. Then the<br \/>\napp server was 90%-100%.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>David Brady &#8212; TourBus He can make your website 10x faster in a day&#8217;s work. Given two weeks, he can make it 100x faster. Do you believe in refactoring? If you don&#8217;t believe he can do what he says he can do, then you don&#8217;t believe in refactoring. How do you optimize? 1. Measure 2. &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/jaredrobinson.com\/blog\/mwrc-tourbus-server-load-tester-by-david-brady\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;mwrc: TourBus server load tester by David Brady&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[20,21],"class_list":["post-279","post","type-post","status-publish","format-standard","hentry","category-programming","tag-mtnwestrubyconf","tag-mwrc"],"_links":{"self":[{"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/posts\/279","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/comments?post=279"}],"version-history":[{"count":1,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/posts\/279\/revisions"}],"predecessor-version":[{"id":280,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/posts\/279\/revisions\/280"}],"wp:attachment":[{"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/media?parent=279"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/categories?post=279"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/tags?post=279"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}