{"id":4072,"date":"2017-10-03T21:35:08","date_gmt":"2017-10-04T04:35:08","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=4072"},"modified":"2023-08-04T09:35:53","modified_gmt":"2023-08-04T16:35:53","slug":"performance-testing-load-testing-couchbase-pillowfight","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/","title":{"rendered":"Performance Testing and Load Testing Couchbase with Pillowfight"},"content":{"rendered":"<div class=\"paragraph\">\n<p>Performance testing and load testing are important processes to help you make sure you are production ready. For testing Couchbase Server clusters, there is an open-source command line utility called &#8220;cbc-pillowfight&#8221;. It\u2019s part of <a href=\"https:\/\/github.com\/couchbase\/libcouchbase\">libcouchbase<\/a>.<\/p>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_before_you_begin\">Before you begin<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>You\u2019ll need a Couchbase Server cluster up and running. You can try it out directly on your local machine (<a href=\"https:\/\/couchbase.com\/downloads\/\">download Couchbase for Linux, Windows, and Mac<\/a>) or in a <a href=\"https:\/\/hub.docker.com\/_\/couchbase\/\">Docker container<\/a>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>If you\u2019re just trying out pillowfight, you may want to create a bucket on your cluster just for that purpose. I created a bucket called &#8220;pillow&#8221;.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>After you have Couchbase Server installed, you\u2019ll need to download and install libcouchbase:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>Mac: <code>brew install libcouchbase<\/code><\/li>\n<li>Windows: <a href=\"https:\/\/docs.couchbase.com\/c-sdk\/current\/project-docs\/sdk-release-notes.html\">download a zip file<\/a> (latest at the time of writing is libcouchbase-2.8.1)<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>For more information, including Linux instructions, check out the <a href=\"https:\/\/docs.couchbase.com\/c-sdk\/current\/project-docs\/sdk-release-notes.html\">libcouchbase release notes<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_pillow_fight_for_performance_testing\">Pillow fight for Performance Testing<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>If you used homebrew to install on a Mac, you can type <code>cbc-pillowfight --help<\/code> straight away for the command line help screen.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>On Windows, unzip the libcouchbase zip file wherever you\u2019d like. You\u2019ll find <code>cbc-pillowfight.exe<\/code> in the <code>bin<\/code> folder.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/10\/08301-performance-testing-tools.png\" alt=\"Performance testing tools\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>The simplest pillowfight you can run is:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>.\\cbc-pillowfight.exe -U couchbase:\/\/localhost\/pillow -u Administrator -P password<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><em>This is for a Windows Powershell command line, but it will be very similar on other OSes.<\/em><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>A pillow fight will start for the cluster running on your local machine (localhost), with the &#8220;Administrator&#8221; user that has a password of &#8220;password&#8221; (your username and password may be different).<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/10\/08302-starting-pillowfight.gif\" alt=\"Starting pillowfight\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>You should see a message like &#8220;Thread 0 has finished populating&#8221;.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_what_is_a_pillow_fight\">What is a pillow fight?<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>At this point, the pillowfight is going to start creating, updating, and reading documents from the &#8220;pillow&#8221; bucket. It\u2019s going to do all these operations (&#8220;ops&#8221;) according to the command line settings you specify (or fall back to the defaults).<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>For instance, with the <code>-I<\/code> flag, you can specify how many total documents you want to operate on. The default is 1000. So, if you run the above command, you will soon see 1000 documents show up in the pillow bucket.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>It doesn\u2019t just create 1000 documents and quit. Pillowfight will keep &#8220;getting&#8221; and &#8220;updating&#8221; those documents until you terminate the process. It\u2019s called a &#8220;pillowfight&#8221; because it will put your Couchbase Cluster into battle (with actual exertion), but it\u2019s really more of a battle simulation.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>While the fight is happening, you can monitor bucket statistics to see how your cluster is performing under load.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/10\/08303-performance-testing-monitoring.gif\" alt=\"Performance testing monitoring\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>As I type this, the fan on my laptop is whirring to life as I stress test the single node Couchbase cluster that I\u2019ve installed on it. (I suspect my home desktop would create a much more impressive set of charts, but <a href=\"https:\/\/www.couchbase.com\/blog\/road-couchbase-developer-advocacy\/\">I am traveling a lot this month<\/a>).<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>There are a lot of statistics available for you to look at on a bucket level. Check out the <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/monitoring\/ui-monitoring-statistics.html\">Couchbase Server documentation on Monitoring Statistics<\/a> for more details.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_options_for_performance_testing\">Options for performance testing<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>The default pillowfight settings may not be optimal for the type of application that you\u2019ll be using with Couchbase. There are many ways to adjust your pillow fight to make it better fit your use cases. For the full list of options, type <code>cbc-pillowfight --help<\/code> at the command line.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>But here are some notable options you might want to try out:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><code>-I<\/code> or <code>--num-items<\/code> with a number, to specify how many documents you want to operate on.<\/li>\n<li><code>--json<\/code> to use JSON payloads in the documents. By default, documents are created with <a href=\"https:\/\/www.couchbase.com\/blog\/using-couchbase-to-store-non-json-data\/\">non-JSON payloads<\/a>, but you may want to have real JSON documents in order to test other aspects of performance while the pillow fight is running.<\/li>\n<li><code>-e<\/code> to expire documents after a certain period of time. If you are using Couchbase as a cache or short term storage, you will want to use this setting to monitor the effect of documents expiring.<\/li>\n<li><code>--subdoc<\/code> to use the subdocument API. Not every operation will need to be on an entire document.<\/li>\n<li><code>-M<\/code> or <code>--max-size<\/code> to set a ceiling on the size of the documents. You may want to adjust this to tailor a more realistic document size for your system. There\u2019s a corresponding <code>-m<\/code> and <code>--min-size<\/code> too.<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>Here\u2019s another example using the above options:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>.\\cbc-pillowfight.exe -U couchbase:\/\/localhost\/pillow -u Administrator -P password -I 10000 --json -e 10 --subdoc -M 1024<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>This will start a pillowfight using 10000 JSON documents, that expire after 10 seconds, uses the sub-document API, and has a max document size of 1024 bytes.<\/p>\n<p><em>Note: there is a <code>-t --num-threads<\/code> option. Currently, if you&#8217;re using Windows (like me), you are limited to a single thread (see <a href=\"https:\/\/github.com\/couchbase\/libcouchbase\/blob\/master\/tools\/cbc-pillowfight.cc#L874-L879\">this code<\/a>).<\/em><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_summary\">Summary<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Couchbase is committed to performance. We do extensive performance testing to make sure that we are delivering the speed you expect. Check out recent blog posts on our <a href=\"https:\/\/www.couchbase.com\/blog\/plasma-index-performance\/\">Plasma storage engine<\/a> and <a href=\"https:\/\/www.couchbase.com\/blog\/n1ql-performance-feature-enhancements-couchbase-5-0\/\">N1QL enhancements<\/a>. But no one knows your use case and infrastructure better than you. With pillowfight, you have a tool to help you do performance testing, load testing, and stress testing.<\/p>\n<p>Thanks go out to <a href=\"https:\/\/www.couchbase.com\/blog\/author\/sergey-avseyev\/\">Sergey Avseyev<\/a> for helping with this blog post, and his <a href=\"https:\/\/github.com\/couchbase\/libcouchbase\/graphs\/contributors\">contributions to libcouchbase<\/a>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Please reach out with questions on Couchbase by leaving a comment below or finding me on <a href=\"https:\/\/twitter.com\/mgroves\">Twitter @mgroves<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Performance testing and load testing are important processes to help you make sure you are production ready. For testing Couchbase Server clusters, there is an open-source command line utility called &#8220;cbc-pillowfight&#8221;. It\u2019s part of libcouchbase. Before you begin You\u2019ll need [&hellip;]<\/p>\n","protected":false},"author":71,"featured_media":4073,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816],"tags":[2072],"ppma_author":[8937],"class_list":["post-4072","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","tag-pillowfight"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Pillowfight Performance Testing + Load Testing Processes<\/title>\n<meta name=\"description\" content=\"Performance testing and load testing are important processes to get production ready. Learn about the open-source command line utility Pillowfight.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Performance Testing and Load Testing Couchbase with Pillowfight\" \/>\n<meta property=\"og:description\" content=\"Performance testing and load testing are important processes to get production ready. Learn about the open-source command line utility Pillowfight.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-10-04T04:35:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-04T16:35:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/10\/083-hero-pillow-fight.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2048\" \/>\n\t<meta property=\"og:image:height\" content=\"907\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Matthew Groves\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@mgroves\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matthew Groves\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/\"},\"author\":{\"name\":\"Matthew Groves\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\"},\"headline\":\"Performance Testing and Load Testing Couchbase with Pillowfight\",\"datePublished\":\"2017-10-04T04:35:08+00:00\",\"dateModified\":\"2023-08-04T16:35:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/\"},\"wordCount\":836,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/10\/083-hero-pillow-fight.jpg\",\"keywords\":[\"pillowfight\"],\"articleSection\":[\"Couchbase Server\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/\",\"name\":\"Pillowfight Performance Testing + Load Testing Processes\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/10\/083-hero-pillow-fight.jpg\",\"datePublished\":\"2017-10-04T04:35:08+00:00\",\"dateModified\":\"2023-08-04T16:35:53+00:00\",\"description\":\"Performance testing and load testing are important processes to get production ready. Learn about the open-source command line utility Pillowfight.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/10\/083-hero-pillow-fight.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/10\/083-hero-pillow-fight.jpg\",\"width\":2048,\"height\":907,\"caption\":\"Warsaw Pillow Fight 2010 by Kuba Bo\u017canowski - Creative Commons https:\/\/commons.wikimedia.org\/wiki\/File:Warsaw_Pillow_Fight_2010_(4487959761).jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Performance Testing and Load Testing Couchbase with Pillowfight\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\",\"name\":\"Matthew Groves\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"caption\":\"Matthew Groves\"},\"description\":\"Matthew D. Groves is a guy who loves to code. It doesn't matter if it's C#, jQuery, or PHP: he'll submit pull requests for anything. He has been coding professionally ever since he wrote a QuickBASIC point-of-sale app for his parent's pizza shop back in the 90s. He currently works as a Senior Product Marketing Manager for Couchbase. His free time is spent with his family, watching the Reds, and getting involved in the developer community. He is the author of AOP in .NET, Pro Microservices in .NET, a Pluralsight author, and a Microsoft MVP.\",\"sameAs\":[\"https:\/\/crosscuttingconcerns.com\",\"https:\/\/x.com\/mgroves\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/matthew-groves\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Pillowfight Performance Testing + Load Testing Processes","description":"Performance testing and load testing are important processes to get production ready. Learn about the open-source command line utility Pillowfight.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/","og_locale":"en_US","og_type":"article","og_title":"Performance Testing and Load Testing Couchbase with Pillowfight","og_description":"Performance testing and load testing are important processes to get production ready. Learn about the open-source command line utility Pillowfight.","og_url":"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-10-04T04:35:08+00:00","article_modified_time":"2023-08-04T16:35:53+00:00","og_image":[{"width":2048,"height":907,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/10\/083-hero-pillow-fight.jpg","type":"image\/jpeg"}],"author":"Matthew Groves","twitter_card":"summary_large_image","twitter_creator":"@mgroves","twitter_misc":{"Written by":"Matthew Groves","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/"},"author":{"name":"Matthew Groves","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58"},"headline":"Performance Testing and Load Testing Couchbase with Pillowfight","datePublished":"2017-10-04T04:35:08+00:00","dateModified":"2023-08-04T16:35:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/"},"wordCount":836,"commentCount":2,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/10\/083-hero-pillow-fight.jpg","keywords":["pillowfight"],"articleSection":["Couchbase Server"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/","url":"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/","name":"Pillowfight Performance Testing + Load Testing Processes","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/10\/083-hero-pillow-fight.jpg","datePublished":"2017-10-04T04:35:08+00:00","dateModified":"2023-08-04T16:35:53+00:00","description":"Performance testing and load testing are important processes to get production ready. Learn about the open-source command line utility Pillowfight.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/10\/083-hero-pillow-fight.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/10\/083-hero-pillow-fight.jpg","width":2048,"height":907,"caption":"Warsaw Pillow Fight 2010 by Kuba Bo\u017canowski - Creative Commons https:\/\/commons.wikimedia.org\/wiki\/File:Warsaw_Pillow_Fight_2010_(4487959761).jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/performance-testing-load-testing-couchbase-pillowfight\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Performance Testing and Load Testing Couchbase with Pillowfight"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58","name":"Matthew Groves","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54","url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","caption":"Matthew Groves"},"description":"Matthew D. Groves is a guy who loves to code. It doesn't matter if it's C#, jQuery, or PHP: he'll submit pull requests for anything. He has been coding professionally ever since he wrote a QuickBASIC point-of-sale app for his parent's pizza shop back in the 90s. He currently works as a Senior Product Marketing Manager for Couchbase. His free time is spent with his family, watching the Reds, and getting involved in the developer community. He is the author of AOP in .NET, Pro Microservices in .NET, a Pluralsight author, and a Microsoft MVP.","sameAs":["https:\/\/crosscuttingconcerns.com","https:\/\/x.com\/mgroves"],"url":"https:\/\/www.couchbase.com\/blog\/author\/matthew-groves\/"}]}},"authors":[{"term_id":8937,"user_id":71,"is_guest":0,"slug":"matthew-groves","display_name":"Matthew Groves","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","author_category":"","last_name":"Groves","first_name":"Matthew","job_title":"","user_url":"https:\/\/crosscuttingconcerns.com","description":"Matthew D. Groves is a guy who loves to code.  It doesn't matter if it's C#, jQuery, or PHP: he'll submit pull requests for anything.  He has been coding professionally ever since he wrote a QuickBASIC point-of-sale app for his parent's pizza shop back in the 90s.  He currently works as a Senior Product Marketing Manager for Couchbase. His free time is spent with his family, watching the Reds, and getting involved in the developer community.  He is the author of AOP in .NET, Pro Microservices in .NET, a Pluralsight author, and a Microsoft MVP."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/4072","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=4072"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/4072\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/4073"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=4072"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=4072"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=4072"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=4072"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}