Rust https://www.tag1consulting.com/ en How to load test with Goose - Part 2: Running a Gaggle https://www.tag1consulting.com/blog/how-load-test-goose-part-2-running-gaggle <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>In this second part of our team talk series on live load testing with Goose, we focus on demonstrating load testing using a Gaggle. A Gaggle is a distributed load test running Goose from one or more servers. Here, we’re testing with 20,000 users using ten Workers and a Manager process on services spun up using Terraform.</p><div class="more-link"><a href="/blog/how-load-test-goose-part-2-running-gaggle" class="more-link" hreflang="en">Read more</a></div></div> <span><span lang="" about="/user/lynette-miles" typeof="schema:Person" property="schema:name" datatype="" content="lynette@tag1consulting.com">lynette@tag1co…</span></span> <span>Mon, 07/12/2021 - 07:37</span> Mon, 12 Jul 2021 14:37:07 +0000 lynette@tag1consulting.com 363 at https://www.tag1consulting.com How to load test with Goose - Part 1: D9 Umami on Pantheon with Fastly https://www.tag1consulting.com/blog/how-load-test-goose-part-1-d9-umami-pantheon-fastly <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Goose is the highly scalable load testing framework preferred by Tag1. In this series of Team Talks on Goose, we’ll take a look at how Goose scales on a single server, while distributed, and CEO Jeremy Andrews, VP of Software Engineering Fabian Franz, and Managing Director Michael Meyers walk through a demonstration of Goose load testing.</p><div class="more-link"><a href="/blog/how-load-test-goose-part-1-d9-umami-pantheon-fastly" class="more-link" hreflang="en">Read more</a></div></div> <span><span lang="" about="/user/lynette-miles" typeof="schema:Person" property="schema:name" datatype="" content="lynette@tag1consulting.com">lynette@tag1co…</span></span> <span>Thu, 07/08/2021 - 07:00</span> Thu, 08 Jul 2021 14:00:48 +0000 lynette@tag1consulting.com 361 at https://www.tag1consulting.com Tag1 Joins the Rust Foundation as the First Silver Member https://www.tag1consulting.com/blog/tag1-joins-rust-foundation-first-silver-member <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Open Source software is the foundation of Tag1 Consulting’s business, and it is essential to our core values that we contribute to and support the open source communities we benefit from. Just as we support the Drupal Association as an Enterprise Supporting partner and Platinum sponsor of DrupalCon NA, we are proud to announce that we are the first Silver member of the Rust Foundation.</p><div class="more-link"><a href="/blog/tag1-joins-rust-foundation-first-silver-member" class="more-link" hreflang="en">Read more</a></div></div> <span><span lang="" about="/user/lynette-miles" typeof="schema:Person" property="schema:name" datatype="" content="lynette@tag1consulting.com">lynette@tag1co…</span></span> <span>Tue, 07/06/2021 - 11:51</span> Tue, 06 Jul 2021 18:51:40 +0000 lynette@tag1consulting.com 381 at https://www.tag1consulting.com A Goose In The Clouds: Load Testing At Scale https://www.tag1consulting.com/blog/goose-clouds-load-testing-scale <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Experimenting with running Goose load tests from AWS, Goose has proven to make fantastic use of all available system resources, so that it is only generally limited by network speeds. A smaller server instance was able to simulate 2,000 users generating over 6,500 requests per second and saturating a 2.6 Gbps uplink.</p><div class="more-link"><a href="/blog/goose-clouds-load-testing-scale" class="more-link" hreflang="en">Read more</a></div></div> <span><span lang="" about="/user/jeremy-andrews" typeof="schema:Person" property="schema:name" datatype="">Jeremy</span></span> <span>Wed, 06/09/2021 - 06:57</span> Wed, 09 Jun 2021 13:57:55 +0000 Jeremy 334 at https://www.tag1consulting.com Choosing the right load testing tool - JMeter vs. Locust vs. Goose https://www.tag1consulting.com/blog/jmeter-vs-locust-vs-goose <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item">Load testing is a critical part of the quality assurance process in any business website. Knowing how your website behaves under load, and being sure it will stay up can make the difference between success and failure for your business. Retail websites require this for major events such as Black Friday and Cyber Monday. News outlets need to be sure that their readers can reach them and they can respond during major news cycles.<div class="more-link"><a href="/blog/jmeter-vs-locust-vs-goose" class="more-link" hreflang="en">Read more</a></div></div> <span><span lang="" about="/user/lynette-miles" typeof="schema:Person" property="schema:name" datatype="" content="lynette@tag1consulting.com">lynette@tag1co…</span></span> <span>Thu, 02/25/2021 - 09:01</span> Thu, 25 Feb 2021 17:01:46 +0000 lynette@tag1consulting.com 285 at https://www.tag1consulting.com The golden Goose egg, a compile-time adventure https://www.tag1consulting.com/blog/golden-goose-egg-compile-time-adventure <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Goose, the highly scalable load testing tool created by Tag1 Consulting, has undergone a number of improvements since its creation. Asynchronous support created a significant boost in performance, but Jeremy felt there was still room for improvement.</p><div class="more-link"><a href="/blog/golden-goose-egg-compile-time-adventure" class="more-link" hreflang="en">Read more</a></div></div> <span><span lang="" about="/user/lynette-miles" typeof="schema:Person" property="schema:name" datatype="" content="lynette@tag1consulting.com">lynette@tag1co…</span></span> <span>Wed, 01/06/2021 - 09:17</span> Wed, 06 Jan 2021 17:17:44 +0000 lynette@tag1consulting.com 264 at https://www.tag1consulting.com Real life Goose load testing https://www.tag1consulting.com/blog/real-life-goose-load-testing <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>In previous posts we’ve talked about <a href="https://www.tag1consulting.com/blog/introducing-goose-highly-scalable-load-testing-framework-written-rust">Goose</a>, and <a href="https://www.tag1consulting.com/blog/using-gaggles-distribute-your-load-testing">Gaggles</a>, and how they work. Running Goose for an actual client load test is the true test of its use and, like any software, one of the best ways to find out where additional improvements can be made. Here, we’ll walk through how we set up and proceeded through a test with a Tag1 client, what we found, and where, and what Goose improvements are being added or considered. ## Writing the test The first part of creating a load test suite for a client is to write the tests themselves. We were able to take advantage of some existing profiles and templates to speed up the test creation process. ### Template The website we load tested was running Drupal 8, and as such the recently added <a href="https://github.com/tag1consulting/goose/tree/main/examples/umami">Umami</a> sample was an excellent starting point. This Goose example is designed specifically for the Drupal 9 Umami <a href="https://www.drupal.org/project/demo_umami">installation profile</a>. We were able to cut and paste some of the functions directly out of <a href="https://github.com/tag1consulting/goose/blob/main/examples/umami/common.rs">common.rs</a>, such as logic for extracting forms and static elements out of loaded pages, using them with little or no changes in the customer's load test. The Umami example that ships...</p><div class="more-link"><a href="/blog/real-life-goose-load-testing" class="more-link" hreflang="en">Read more</a></div></div> <span><span lang="" about="/user/lynette-miles" typeof="schema:Person" property="schema:name" datatype="" content="lynette@tag1consulting.com">lynette@tag1co…</span></span> <span>Wed, 12/16/2020 - 09:00</span> Wed, 16 Dec 2020 17:00:55 +0000 lynette@tag1consulting.com 267 at https://www.tag1consulting.com Saving time by switching users: Async support in Goose https://www.tag1consulting.com/blog/saving-time-switching-users-async-support-goose <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Introduced in <a href="https://github.com/tag1consulting/goose">Goose</a> 0.7, Async enables the simulation of considerably more "users" by giving up the CPU when a task is blocked. For example, when a Goose "user" requests a web page, it's blocked until the server responds. Without Async, Goose blocks an entire CPU core while waiting for that response. With Async, Goose makes the request, then gives up the core (ie, sleeps) allowing another "user" to make a request with that same core, and again gives up the core (sleeps). When a response comes back, the appropriate "user" gets woken to complete the next task. In our testing, this creates a <a href="https://www.reddit.com/r/rust/comments/gqb1hh/goose_07_gains_async_for_2x_speedup/">2x boost in performance</a>.</p><div class="more-link"><a href="/blog/saving-time-switching-users-async-support-goose" class="more-link" hreflang="en">Read more</a></div></div> <span><span lang="" about="/user/lynette-miles" typeof="schema:Person" property="schema:name" datatype="" content="lynette@tag1consulting.com">lynette@tag1co…</span></span> <span>Thu, 12/03/2020 - 06:15</span> Thu, 03 Dec 2020 14:15:20 +0000 lynette@tag1consulting.com 265 at https://www.tag1consulting.com A working Gaggle in the Goose Load Testing Framework https://www.tag1consulting.com/blog/show-me-how-flock-flies-working-gaggle-goose <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>We’re going to dig into the process of a working Gaggle, so you can see how it runs, and how to deal with some of the errors you might encounter as you start working with this feature of <a href="https://github.com/tag1consulting/goose" title="Goose">Goose</a>. Goose does not currently have a UI; this example expects you to be familiar with the command line interface (CLI). This example uses one Manager and two Workers, so there are three different things going on at the same time. ### Leading the Gaggle: Starting the Manager As explained in the README for Goose, <a href="https://github.com/tag1consulting/goose/blob/master/README.md#getting-started">Cargo is the Rust package manager</a>. We're using it to run an <code>example</code> from the Goose codebase. We do this primarily because these examples are included in the Goose codebase and therefore are available to everyone for review and experimentation. When starting a Gaggle, you must start a Goose application <a href="https://github.com/tag1consulting/goose/blob/master/README.md#gaggle-manager">in Manager mode</a>. Adding the <code>--manager</code> flag isn't enough; a Manager requires other configuration. The error generated explains that the <code>--manager</code> flag expects some number of defined workers from the <code>--expect-workers</code> option: $ cargo run --example drupal_loadtest --release -- --manager Finished release [optimized] target(s) in 0.10s Running <code>target/release/examples/drupal_loadtest --manager</code> Error: InvalidOption { option: "--expect-workers", value: "0"...</p><div class="more-link"><a href="/blog/show-me-how-flock-flies-working-gaggle-goose" class="more-link" hreflang="en">Read more</a></div></div> <span><span lang="" about="/user/lynette-miles" typeof="schema:Person" property="schema:name" datatype="" content="lynette@tag1consulting.com">lynette@tag1co…</span></span> <span>Thu, 10/22/2020 - 05:33</span> Thu, 22 Oct 2020 12:33:18 +0000 lynette@tag1consulting.com 227 at https://www.tag1consulting.com Using Gaggles to distribute your load testing https://www.tag1consulting.com/blog/using-gaggles-distribute-your-load-testing <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p><a href="https://github.com/tag1consulting/goose">Goose</a>, the load testing software created by Tag1 CEO <a href="https://www.drupal.org/u/Jeremy">Jeremy Andrews</a> <a href="https://www.tag1consulting.com/blog/improvements-goose">has had a number of improvements since its creation</a>. One of the most significant improvements is the addition of Gaggles. A Gaggle is a distributed load test, made up of one Manager process and one or more Worker processes. The comparable concept in Locust is a <a href="https://www.tag1consulting.com/blog/distributed-load-testing-locust">Swarm</a>, and it's critical for Locust as Python can only make use of a single core: you have to spin up a Swarm to utilize multiple cores with Locust. With Goose, a single process can use all available cores, so the use case is slightly different. As we discussed in a previous post, <a href="https://www.tag1consulting.com/blog/goose-locust-inspired-load-testing-tool-rust">Goose Attack: A Locust-inspired Load Testing Tool In Rust</a>, building Goose in <a href="https://www.rust-lang.org/">Rust</a> increases the scalability of your testing structure. Building Goose in this language enabled the quick creation of safe and performant Gaggles. Gaggles allow you to horizontally scale your load tests, preparing your web site to really take flight. ## Distributing workers Goose is very powerful and fast. Now, it’s so CPU-efficient it is easier to saturate the bandwisth on a network interface; you'll likely need multiple Workers to scale beyond a 1G network interface. In our Tag1...</p><div class="more-link"><a href="/blog/using-gaggles-distribute-your-load-testing" class="more-link" hreflang="en">Read more</a></div></div> <span><span lang="" about="/user/lynette-miles" typeof="schema:Person" property="schema:name" datatype="" content="lynette@tag1consulting.com">lynette@tag1co…</span></span> <span>Thu, 10/15/2020 - 05:52</span> Thu, 15 Oct 2020 12:52:57 +0000 lynette@tag1consulting.com 228 at https://www.tag1consulting.com