Skip navigation.

Load & Perf Testing

Week 9 – How to Measure Application Performance

Measurement is the most central concept in any performance-related activity. If you are not measuring you are blind. As important as measuring per se is collecting the right measurements. Which metrics are the right ones depends on what you want to do. However there are some general principles which – when followed – can make [...]
Categories: Load & Perf Testing

Video of Business Transaction Management in Action: In 6 minutes from Slow Search Request to identify Impacted Users and Offending SQL

During last weeks webinar – Charlie Weiblen from IntraLinks talked about how the manage performance of their SaaS running in their private cloud. You should listen to the full recorded webinar to learn more on how they transformed from traditional performance monitoring to performance management. As a teaser to the webinar I want you to watch [...]
Categories: Load & Perf Testing

IE Compatibility View: How to identify performance problems between IE versions

A client of ours recently contacted me with the question: We use Keynote, WebPagetest and dynaTrace AJAX – but we get different results with these tools/services. WebPagetest tells us that our page is very slow – but dynaTrace on my local machine does not. What can be the problem here? What’s the difference? I took a [...]
Categories: Load & Perf Testing

dynaTrace at Web Performance Meetups in Boston and New York City

If you care about Web Performance then you should check if there is a local Web Performance Meetup Group in your area. Jonathan Klein just recently started a new Group in Boston. Sergey Chernyshev runs his Group in New York City. Both guys invited me to give a detailed Hands-On overview of the latest dynaTrace AJAX [...]
Categories: Load & Perf Testing

How to Monitor Oracle Database Performance

An Oracle database provides several v$ views to query information about the database instance, including statistical information that can be used for monitoring and problem analysis purposes. Rene Nyffenegger wrote a nice Summary on Oracle’s v$ views that gives an overview of all available views. The following illustration shows [...]
Categories: Load & Perf Testing

dynaTrace Forums Launched – the Direct Link to the dynaTrace Community

dynaTrace Forums have been launched to give the community a new platform to interact. dynaTrace AJAX community members will get access to the dynaTrace AJAX Forums – commercial dynaTrace community members will additionally get access to the dynaTrace APM Forums. Whether you have feedback on dynaTrace, feedback or ideas for new dynaTrace Community Plugins [...]
Categories: Load & Perf Testing

From Cloud Monitoring to Effective Cloud Management – Webinar with IntraLinks on July 15th 2010

I am hosting a Webinar with IntraLinks this Wednesday. The following overview of the webinar is taken from the guest blog I wrote for the IntraLinks blog as posted on July 13th 2010: —- The Cloud has become the hot topic in the past year, with many major technology leaders (Amazon, Google, Microsoft, SalesForce.com, etc.) [...]
Categories: Load & Perf Testing

How to identify IE Add-Ons such as Skype that impact Web Site Performance

I occasionally get invited to do JavaScript/AJAX Performance Workshops. Last week I spent two days with a group of dynaTrace AJAX Users that work in a performance task force group within their R&D Organization. I asked them about the reasons for this Client-Side Performance Initiative. They told me the following story: One of our sales managers [...]
Categories: Load & Perf Testing

Complete Walkthrough Webinar on dynaTrace AJAX Edition 2.0 Beta 1 available

Last week’s Walkthrough Webinar on the new dynaTrace AJAX Edition 2.0 Beta 1 is now available for public access: View Webinar on ajax.dynatrace.com If you have any feedback on either the new dynaTrace AJAX Edition or the Best Practice Documents then please use our Community Forum an let us know about it. //
Categories: Load & Perf Testing

Best Practices on JavaScript and AJAX Performance

JavaScript can save your day or it can cause you nightmares. JavaScript and XHR (XmlHttpRequest) enable what the industry considers to be Web 2.0 – meaning highly interactive web sites where some application logic is pushed down to the client into the browsers JavaScript engine. As with any application code – [...]
Categories: Load & Perf Testing

Java Record-Replay with LoadRunner

Performance Testing with LoadRunner Focus - Thu, 07/29/2010 - 04:31
On increasingly rare occasions, you might be required to load test an application that has a Java-based client. While it’s nice for users to have an application that has a rich GUI, it will probably lead to a world of pain for you as a performance tester. Don’t immediately reach for LoadRunner’s Java Record-Replay virtual [...]
Categories: Load & Perf Testing

Best Practices on Web Performance Optimization (WPO)

Over the last couple of years performance of web applications became more important to businesses as search engines (such as Google) factor in performance into their ranking. This ultimately leads to Performance == Better Visibility == More Users == More Revenue. Read more on Why Web Performance Optimization [...]
Categories: Load & Perf Testing

Rackspace Cloud - Outbound Bandwidth Caps, Network Too Slow

Corey Goldberg - Tue, 07/27/2010 - 09:11
p Have you seen the network/bandwidth caps that a href="http://www.rackspacecloud.com"Rackspace/a places on their cloud servers? /p p From the a href="http://cloudservers.rackspacecloud.com/index.php/Frequently_Asked_Questions"Rackspace Cloud Server FAQ/a: /p blockquote p em "Your Cloud Server has a bandwidth cap that is applied in relation to the size of the server. Please note that the bandwidth caps are placed on outbound bandwidth only. Inbound bandwidth is not capped." /em /p table trtdServer Size/tdtdPublic Limit/tdtdServiceNet Limit/td/tr trtd256MB/tdtd10 Mbps/tdtd20 Mbps/td/tr trtd512MB/tdtd20 Mbps/tdtd40 Mbps/td/tr trtd1024MB/tdtd30 Mbps/tdtd60 Mbps/td/tr trtd2048MB/tdtd40 Mbps/tdtd80 Mbps/td/tr trtd4096MB/tdtd50 Mbps/tdtd100 Mbps/td/tr trtd8192MB/tdtd60 Mbps/tdtd120 Mbps/td/tr trtd15872MB/tdtd70 Mbps/tdtd140 Mbps/td/tr /table /blockquote p I was going to use the Rackspace Cloud to do some performance testing of a new server. I wanted to run 2 servers in a clustered mode, replicating data to each other. My first concern was the speed of the internal network interconnects between cloud nodes. /p p After doing some research, I realized the bandwidth caps make it a non-starter. 20-140 Mbps private interconnects?? That's not enough. I would saturate the network almost immediately, even on their largest server class. Sorry Rackspace. /p p In comparison, a href="http://aws.amazon.com/ec2/"Amazon's EC2 Cloud/a offers High Performance Computing nodes with 10 Gigabit interconnects: a href="http://aws.amazon.com/hpc-applications/"Amazon HPC/a /pdiv class="blogger-post-footer"img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5236867476487043111-3217723913347784700?l=coreygoldberg.blogspot.com' alt='' //div
Categories: Load & Perf Testing

WebInject - New Discussion Group Launched

Corey Goldberg - Sun, 07/25/2010 - 10:52
p I just started a new discussion group for WebInject:br / br / a href="http://groups.google.com/group/webinject"http://groups.google.com/group/webinject/a /p p The old forums (a href="http://www.webinject.org/cgi-bin/forums/YaBB.cgi"http://www.webinject.org/cgi-bin/forums/YaBB.cgi/a) have been broken for several years. I will leave them up in read-only mode, but some threads are broken and unviewable. /p p Feel free to post a message to this new discussion group.br / questions, bugs, patches, collaboration, comments, welcome... /p p Updates and new development coming soon... /p p br / ema href="http://www.webinject.org"WebInject/a is a free tool for automated testing and monitoring of web applications or services. It can be used standalone, or as a plugin for external monitoring systems./em /pdiv class="blogger-post-footer"img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5236867476487043111-3914653040547693196?l=coreygoldberg.blogspot.com' alt='' //div
Categories: Load & Perf Testing

LoadRunner Syntax Highlighting (for your blog or forum)

Performance Testing with LoadRunner Focus - Sat, 07/24/2010 - 20:48
I like posting LoadRunner code snippets on My Load Test and, judging by the emails and comments that I get, a lot of people find them really useful. To make my code more readable, I have added syntax highlighting that uses the same colours you see in VuGen. If you would like to download a [...]
Categories: Load & Perf Testing

Membase Stats Report (Python)

Corey Goldberg - Fri, 07/23/2010 - 15:22
p em[a href="http://membase.org/"Membase/a is a high-performance, distributed key-value database (NoSQL)]/em /p p To check operational stats of your Membase server/cluster, you can use the telnet interface (port 11211) and issue the stats command to any individual node: /p pre style="font-size:11px;border:1px #999999 dashed;font-family:monospace;color:#990000;background-color:#EEEEEE;padding-left:10px;" $ telnet 192.168.12.11 11211 stats /pre p The output is unsorted and a little difficult to read at quick glance. /p hr / p I use the following Python script for getting a quick snapshot of stats from Membase in a more readable format. Since Membase speaks the a href="http://memcached.org/"Memcached/a protocol, I use the a href="http://pypi.python.org/pypi/python-memcached"python-memcached/a module. List all nodes you want stats from. /p pre style="font-size:11px;border:1px #999999 dashed;font-family:monospace;color:#990000;background-color:#EEEEEE;padding-left:10px;" #!/usr/bin/env python # Corey Goldberg - 2010 (goldb.org) # print a stats report from membase key-value database (membase.org) # python 2.x # requires python-memcached import memcache NODES = ('192.168.12.11:11211',) mc = memcache.Client(NODES) for node_stats in mc.get_stats(): server, stats = node_stats print '-----------------------------------------' print server print '-----------------------------------------' for stat_name, value in sorted(stats.iteritems()): if not stat_name.startswith('ep'): if stat_name not in ('libevent', 'version'): print stat_name.ljust(25), value.rjust(15) print '-----------------------------------------' for stat_name, value in sorted(stats.iteritems()): if stat_name.startswith('ep'): if stat_name not in ('ep_dbname', 'ep_version'): print stat_name.ljust(25), value.rjust(15) /pre p sample output (1 node): /p pre style="font-size:11px;border:1px #999999 dashed;font-family:monospace;color:#990000;background-color:#EEEEEE;padding-left:10px;" $ python membase_stats_report.py ----------------------------------------- 127.0.0.1:11211 (1) ----------------------------------------- auth_cmds 0 auth_errors 0 bytes_read 81754885 bytes_written 77239947 cas_badval 0 cas_hits 0 cas_misses 0 cmd_flush 1 cmd_get 370229 cmd_set 380230 conn_yields 0 connection_structures 16 curr_connections 16 curr_items 178679 daemon_connections 10 decr_hits 0 decr_misses 0 delete_hits 0 delete_misses 0 get_hits 370228 get_misses 1 incr_hits 0 incr_misses 0 limit_maxbytes 67108864 mem_used 40909042 pid 2009 pointer_size 64 rejected_conns 0 rusage_system 65.660000 rusage_user 113.320000 threads 4 time 1278257466 total_connections 16 uptime 592 ----------------------------------------- ep_commit_time 1 ep_data_age 286 ep_data_age_highwat 286 ep_dbinit 0 ep_flush_duration 1 ep_flush_duration_highwat 2 ep_flusher_state running ep_flusher_todo 483 ep_item_commit_failed 0 ep_item_flush_failed 0 ep_max_txn_size 50000 ep_min_data_age 1 ep_queue_age_cap 5 ep_queue_size 176786 ep_storage_age 286 ep_storage_age_highwat 286 ep_tap_keepalive 0 ep_tap_total_fetched 0 ep_tap_total_queue 0 ep_too_old 1410 ep_too_young 56372 ep_total_enqueued 380487 ep_total_persisted 198703 ep_warmed_up 479990 ep_warmup true ep_warmup_thread complete ep_warmup_time 4 /pre p script source code: a href="http://code.google.com/p/corey-projects/source/browse/trunk/python2/memcached/membase_stats_report.py"membase_stats_report.py/a /p p For more advaned stats and graphing from Memcached and Membase, see:br / a href="http://coreygoldberg.blogspot.com/2010/07/monitoring-stats-from-memcached-or.html"http://coreygoldberg.blogspot.com/2010/07/monitoring-stats-from-memcached-or.html/a /pdiv class="blogger-post-footer"img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5236867476487043111-2493719226427323488?l=coreygoldberg.blogspot.com' alt='' //div
Categories: Load & Perf Testing

Monitoring Stats From Memcached or Membase (Python, RRDTool)

Corey Goldberg - Mon, 07/19/2010 - 09:39
p a href="http://code.google.com/p/corey-projects/source/browse/trunk/python2/memcached/memcached_stats_rrd.py"memcached_stats_rrd.py/a is a script for monitoring and graphing stats from Memcached or Membase. /p p Memcached is a high-performance, distributed memory object caching system, and Membase is the related key-value database management system. Both are open source, with packaged/commercial versions distributed by a href="http://www.northscale.com/"NorthScale/a. They both use the memcached protocol for communication, so this script will work against a vanilla memcached installation, or against a membase server/cluster. /p p For more info: /p ul liMemcached: a href="http://memcached.org"http://memcached.org/a/li liMembase: a href="http://membase.org"http://membase.org/a/li /ul hr / p script source code: a href="http://code.google.com/p/corey-projects/source/browse/trunk/python2/memcached/memcached_stats_rrd.py"memcached_stats_rrd.py/a /p p This script is useful for ad-hoc monitoring or longer term trend/capacity analysis. It collects data, stores it in RRD databases, and outputs graphs and stats in the form of PNG images. You can monitor any stats that memcached/membase publishes and graph them over specified time spans. It will generate an image file for each stat, for each time span selected. /p pThis mini monitoring system is built with:/p ul lia href="http://pypi.python.org/pypi/python-memcached/"python-memcached/a/li lia href="http://oss.oetiker.ch/rrdtool/"RRDTool/a/li lia href="https://help.ubuntu.com/community/CronHowto"cron/a (or other task/job scheduler)/li /ul pSample Graph/Image Output:/p a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_k7-jvtv2cLo/TER96OYSzxI/AAAAAAAAAr4/aPRpI4t4pIs/s1600/memcached_rrd_bytes_read_180.png"img style="cursor:pointer; cursor:hand;width: 400px; height: 182px;" src="http://1.bp.blogspot.com/_k7-jvtv2cLo/TER96OYSzxI/AAAAAAAAAr4/aPRpI4t4pIs/s400/memcached_rrd_bytes_read_180.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5495655884544724754" //a br / (bytes_read, 3 hour timespan, 60 sec collection interval)br / a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_k7-jvtv2cLo/TER96V9-zkI/AAAAAAAAAsA/5SBkZx7_hw4/s1600/memcached_rrd_mem_used_60.png"img style="cursor:pointer; cursor:hand;width: 400px; height: 182px;" src="http://2.bp.blogspot.com/_k7-jvtv2cLo/TER96V9-zkI/AAAAAAAAAsA/5SBkZx7_hw4/s400/memcached_rrd_mem_used_60.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5495655886581845570" //a br / (mem_used, 1 hour timespan, 60 sec collection interval)br / p It will generate images in the directory you specify. I have an Apache web server installed serving content from the output directory for easy web viewing. You can wrap the images in some HTML and create a little dashboard to watch your entire memcached/membase cluster, like this: /p a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_k7-jvtv2cLo/TER95p0g-PI/AAAAAAAAArw/SHFlsaDV2jM/s1600/memcached_rrd_2node_dashboard_240.png"img style="cursor:pointer; cursor:hand;width: 400px; height: 338px;" src="http://1.bp.blogspot.com/_k7-jvtv2cLo/TER95p0g-PI/AAAAAAAAArw/SHFlsaDV2jM/s400/memcached_rrd_2node_dashboard_240.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5495655874730981618" //a br / (4 hour timespan, 60 sec collection interval, 2 nodes, 3 stats each)br / hr / p Instructions... /p p strong1)/strong Install prerequisites /p p You will need the following software installed: /p ul liPython 2.x/li lipython-memcached (memcached client for Python)/li liRRDTool (round-robin database, logging/graphing backend)/li /ul p on Debian/Ubuntu: /p pre style="font-size:11px;border:1px #999999 dashed;font-family:monospace;color:#990000;background-color:#EEEEEE;padding-left:10px;" $ sudo apt-get install -y python-memcache $ sudo apt-get install -y rrdtool /pre p strong2)/strong Configure the script /p p Near the top of the script, there are a few configuration settings: /p pre style="font-size:11px;border:1px #999999 dashed;font-family:monospace;color:#990000;background-color:#EEEEEE;padding-left:10px;" # Config Settings NODES = ('192.168.1.3:11211', '192.168.1.4:11211') INTERVAL = 60 STATS = (('curr_items', 'GAUGE'), ('bytes_written', 'COUNTER')) GRAPH_MINS = (60, 180) GRAPH_DIR = '/var/www/' /pre pConfig Setting Definitions:/p ul liNODES: list of memcached/membase nodes to monitor./li liINTERVAL: collection interval in seconds. This should be the same value as you schedule the script to run./li liSTATS: list of tuples containing (stat_name, datasource_type), where "stat_name" is a memcached/membase stat, and "datasource_type" is an RRDTool data source type (DST). The most useful data source types are GAUGE and COUNTER. GAUGE is used to report a current value, and COUNTER is used for continuous incrementing counters. (see: http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html for more info on RRD data sources)/li liGRAPH_MINS: list of minutes, corresponding to time spans displayed in the output graphs. An image for each stat is generated for each value here./li liGRAPH_DIR: directory to generate out images in./li /ul p After you have the script configured, make the script executable: /p pre style="font-size:11px;border:1px #999999 dashed;font-family:monospace;color:#990000;background-color:#EEEEEE;padding-left:10px;" $ chmod +x memcached_stats_rrd.py /pre p strong3)/strong Schedule the script /p p You can add an entry to your crontab (crontab -e) so cron will run it regularly. The example here uses a 60 sec (1 min) interval: /p pre style="font-size:11px;border:1px #999999 dashed;font-family:monospace;color:#990000;background-color:#EEEEEE;padding-left:10px;" */1 * * * * /home/perfserver/memcached_stats_rrd.py /pre p em[These instructions are for Linux/Unix, but you can configure a similar system on Windows using Task Scheduler instead of cron. The code in memcached_stats_rrd.py works cross-platform.]/em /pdiv class="blogger-post-footer"img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5236867476487043111-7035108896037480077?l=coreygoldberg.blogspot.com' alt='' //div
Categories: Load & Perf Testing

Web Performance Testing

Performance & Load Testing - Sat, 07/17/2010 - 11:30
pThere is a difference between performance testing of a traditional client server application versus a web application./p pWeb performance testing involves primarily HTTP traffic. There are latencies involved with Internet technologies that you shouldn't encounter on an internal software implementation./p pWeb performance testing can be the measuring and analysis of a single web page. Taking apart the download times of each individual resource such as an image, an HTML document, or a stylesheet. Web performance testing should also involve measuring the DNS lookup times and how long it takes to get a connection to the server. /p pRendering is a key element of understanding the performance of a web page. Specifically, how long after the user makes a request does the browser start to paint something. /p pIt is also critical to measure the actual server processing time for a request. The browser side perspective of the end user is important, and that is where large images or too many files can cause poor user experience. Additionally, if the database is a bottleneck that results in 5 seconds to put together a dynamic page, that is a performance problem./p
Categories: Load & Perf Testing

Load Testing Disconnect

Performance & Load Testing - Fri, 07/16/2010 - 10:51
pimg src=http://loadstorm.com/sites/loadstorm.com/files/load-testing-ignored.jpg class=picture alt=load testing disconnect /br / h2CTOs Don't Get It/h2 /ppOne of the most disruptive events at organizations is the disconnect between decisions made by managers and the views of those decisions by employees. Does this situation sound familiar? /p pYour CTO or CIO makes a decision to forego load testing until after the launch of your web application. Your team responds by talking about how the higher ups don't get it, they don't understand the issues with system performance, they are making shortsighted decisions, and they are ignoring the product development team. You have seen this before - management is saying postpone and they mean cancel./p pBefore CTOs were managers, they were individual employees. Most became managers because of their skills as individuals in technical problem solving and decision making. So why the disconnect between your team and the CTO?/p pLet's break it down so we as load testers can affect change. /p pspan /br / span /br / span //span/span/span/p h2Money, Money, Money/h2 pMost companies are always budgeting and adjusting budgets. The senior executives are paid the big bucks to make sure the investors are happy with results, and the most important result is the bottom line profitability. Profitability is driven by income and expenses, so every dollar saved on the expense side is a win for the executives (and investors). /p pLoad testing is mistakenly viewed as non-critical. It is an easy target for CTOs in budget cutting. Bugs are visible and immediately get the attention of users, which quickly reaches the CEO and other top managers. It rolls downhill to the CTO very quickly. Bugs are bad. Bugs are universally understood./p pimg src=http://loadstorm.com/sites/loadstorm.com/files/MONEY-in-trash.jpg class=picture-left alt=load testing money lost /However, if the site has 5 second response time instead of a 2 second response time, rarely does the CEO get involved. It isn't as noticeable. It isn't mission critical. Thus, it isn't nearly as high a priority to improve performance as it is to fix bugs. The conclusion is obvious and logical to put more resources on the functional testing than on load testing. In fact, CTOs cut the load testing out of the budget submitted by the development team without having to explain that decision to anyone. It's easy for them. Who is going to raise a stink about it? The testers? The QA Manager? The Product Manager? The programmers? You? Probably not. /p pIt is too hard to defend! It's tough to make an argument that gets attention. You put yourself out on a limb if you stir up trouble about wasting money on performance testing. You don't want to get called into the CTO's office to explain the importance of load testing and system performance under heavy traffic. /p pSo what I've seen is a dynamic where the testers and/or developers take an attitude of, They will find out when the system crashes, and I'll just sit here and smile. Most of us know that we are right about the importance of performance, so if the managers are out of touch and don't listen to us, then they deserve what they get./p pOf course, that isn't good for our company. Translate that to, Ignoring load testing is bad for my job security. Now it clearly becomes something that can cost our company credibility, money, and ultimately jobs. Hmmm....that isn't worth being smug about. We need to do something about it./p pspan /br / span /br / span //span/span/span/p h2Simple Psychology of I Versus We - Disconnect/h2 pWhen your CTO was a programmer, the questions often asked are What should I do?, How can I solve this problem?. However as a Manager, this evolves to What should WE do, How do WE solve this problem. The consequences that affect the WE are much more complicated than those that affect the I. Moreover, not everyone who is a part of that WE will be equally affected; therefore, there will be different levels of benefactors based on the decisions that include WE, and these benefactors have opinions. /p pThe more senior a manager is, the more distant they may become from the data and information that is needed to validate an assumption. The WE produces many views that can distort the validation. Without a good process to validate assumptions, a senior manager risks moving forward on an invalid assumption. The CTO needs you! You need to step up and contribute to the conversation about load testing./p pIt's no secret that poor communication is probably the most significant factor contributing to a disconnect about the importance of system performance. If the assumptions of the decision maker are different than those affected by the decisions, then the conclusions will likely be different. If there is no communication about what those assumptions are, it is almost certain that a disconnect will occur. /p pLet's consider an example. The CEO has made growth commitments to the investors. In a big off-site executive planning weekend, the CEO beats up the head of sales and marketing to get projections of higher revenue. Marketing budgets are increased to get more leads and closed deals. Innovative and expensive advertising campaigns will drive lots of traffic to your website where cool interactivity will create better qualified prospects. The content management system underpinning all of your web marketing, CRM, and prospect database becomes critical to the CEO's success. However, the execs on this don't realize the CMS has never been load tested or tuned for high performance. The CTO isn't concerned because he spent a bunch of money on the CMS and has lots of good hardware in the data center to run it on. In the CTO's thinking is the fact that the CMS vendor provided cool performance charts in their sales brochures showing very high volumes of traffic supported. strongDisconnect!!/strong/p pspan /br / span /br / span //span/span/span/p h2Get Your CTO and Managers on Board/h2 pCommunication between your team and the senior managers should include the assumptions being made and how they were validated. Show them how a href=http://loadstorm.com/2009/web-performance-tuningweb performance tuning affects profit/a. Get the VP of Marketing involved. Explain how slower response times has been proven to lower revenue. Teach them the importance of load testing because it turns into money. /p pimg src=http://loadstorm.com/sites/loadstorm.com/files/money-falling.gif class=picture alt=load testing helps profit /Educate them. Gather up your a href=http://performance-testing.org/performance-testing-statisticsperformance testing statistics/a and present them to the CTO. Remove the disconnect./p pFor example, explain to the CTO that just because the performance was good in the vendor's environment doesn't mean the system will respond well in your environment. The hardware is different, the web server is configured differently, the database is not tuned, etc. We MUST load test the CMS ourselves. It's a safe bet that we won't get half the load that the vendor claims. Tuning and testing will take several cycles for us to make our system perform well. If the CTO has real experience with software and operational systems, this should make a lot of sense to her or him./p pGive them articles about a href=http://loadstorm.com/category/tags/failuresperformance failures/a on websites. Let them see the downside of ignoring load testing. They should understand from examples and studies that there is a clear correlation between performance tuning and company profits. The marketing folks will be motivated by campaign results so show them how traffic spikes can bring down a site, which loses customers forever. I bet they quickly see in their mind how the dollars are walking out the proverbial door./p pspan /br / span /br / span //span/span/span/p h2Load Testing and Profit/h2 pWhen executives see the connection between profit and load testing, they will start listening to you. Now THAT'S job security!/p pspan /br / span /br / span //span/span/span/p
Categories: Load & Perf Testing

Running Multi-Mechanize on RackSpace Cloud Servers with Ubuntu

Corey Goldberg - Wed, 07/14/2010 - 14:25
p This post is about Multi-Mechanize, the web performance and load testing framework.br visit the project website: a href="http://multimechanize.com"multimechanize.com/a /p p Here are some instructions for getting started on rackspace cloud. These are also general instructions for anyone using a debian/ubuntu system. /p p There are _lots_ of options for running multi-mechanize in the cloud. You have choices between several cloud vendors and hosting/vps providers. Then you have a choice of operating system to deploy onto. I've found the combination of rackpsace cloud servers and ubuntu to be a really good choice. I see it as a great platform to run cloud-based load tests from (though hopefully they will offer other geographic regions at some point). It has been a breeze to work with multi-mechanize on this infrastructure. /p p So far i've been very impressed with rackspace. It lacks some of the functionality and management feature that EC2 gives you, but it is much easier to use. you pay by the hour + bandwidth used (starting at 1.5cents/hour). It's dead simple to deploy servers, and they have lots of linux operating systems to choose from. You can login to your account and provision the latest Ubuntu Server (9.10) in literally seconds. Need multiple servers? no prob. need _lots_ of servers? no prob, use the API's they provide. very slick stuff. /p p So... to get multi-mechanize working on rackspace's service... /p p create a rackspace account:br a href="http://www.rackspacecloud.com/cloud_hosting_products/servers"http://www.rackspacecloud.com/cloud_hosting_products/servers /a /p p login to your account:br a href="https://manage.rackspacecloud.com"https://manage.rackspacecloud.com/a /p p Deploy a new server from your account (choose the latest Ubuntu image). You can start with the minimum RAM allocation, and later resize your server to run large tests. Once you create your server, Rackspace will email you the server's ip address and root password. /p p Open a terminal window and ssh into your server using the info they supplied: /p pre style="font-size:11px;border:1px #999999 dashed;font-family:monospace;color:#990000;background-color:#EEEEEE;padding-left:10px;"gt;ssh lt;ip addressgt; -l root /pre p (enter password when prompted) /p p First, setup the dependencies for multi-mechanize.br run the following commands: /p pre style="font-size:11px;border:1px #999999 dashed;font-family:monospace;color:#990000;background-color:#EEEEEE;padding-left:10px;"gt;apt-get install -y python-mechanize gt;apt-get install -y python-matplotlib gt;apt-get install -y subversion /pre p Now you can grab the latest multi-mechanize trunk from subversion: /p pre style="font-size:11px;border:1px #999999 dashed;font-family:monospace;color:#990000;background-color:#EEEEEE;padding-left:10px;"gt;cd /opt gt;svn checkout http://multi-mechanize.googlecode.com/svn/trunk/ multi-mechanize /pre p Now go to your multi-mechanize directory and run a test: /p pre style="font-size:11px;border:1px #999999 dashed;font-family:monospace;color:#990000;background-color:#EEEEEE;padding-left:10px;"gt;cd /opt/multi-mechanize gt;python multi-mechanize.py default_project /pre p thats it... /pdiv class="blogger-post-footer"img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5236867476487043111-5983545489832353473?l=coreygoldberg.blogspot.com' alt='' //div
Categories: Load & Perf Testing
Syndicate content