Load Testing Tools to Consider. Depending on their complexity, some load testing tools can be quite expensive. However, there are cheaper options in the market and some are even free for use. I've included a mixture of these below for your reference, including a couple of open source options. Loadview by Dotcom Monitor. A command-line tool for simulating any number of clients; A group of computers that will run this tool simultaneously; A method to control those computers from the comfort of your swivel chair/throne/park bench; Now (finally) you're ready to begin your stress test in earnest. If all this is new to you, you might not have a production server. Artillery is a load testing and smoke testing solution for SREs, developers and QA engineers. Prod – fast & reliable, users - happy. $ npm install -g artillery. Artillery has been an invaluable tool for the SRE team as we continuously look to improve our platform's reliability and resiliency.'. So the stress tester tools should be controlled and designed with many attributes that should be managed at the time of development and customized at deployment. Some of the stress testing tools are discussed in this article. Top 10 Stress Testing Tools. The overflow of the buffer is the best example of stress testing.
Stress Test GPU with These Tools and Check Stability. So those were our 5 picks for the best GPU stress testing software. Almost all the tools mentioned in this list are safe to use so don't worry about damaging your GPU. However, be slightly cautious while using FurMark as it can drive the GPU nuts if not configured properly.
OCCT is the most popular all-in-one stability check & stress test tool available.OCCT is great at generating heavy loads on your components ( CPU, GPU, Memory, GPU Memory & Power supply ) , and aims at detecting hardware errors or stability issues faster than anything else.A monitoring engine is also embedded, to ease diagnostic and see how your computer reacts under heavy load using graphs.
OCCT is free for personal use only !
If you are running OCCT in a corporate or commercial environment, you have to buy a PRO license to use OCCT
I see an increasing number of companies downloading the free version of OCCT and shamelessly using it in their corporate environment.The free version of OCCT is meant to make OCCT as useful and widely used as possible. This has been the case since it started, back in 2003.
This time, when you do this, you aren't stealing from a big company !OCCT isn't enough to make a living as of now (far from it). Please support me and participate in keeping the free edition... free for everyone !
Personal edition
6 Tests
OCCT includes 6 different tests : OCCT and Linpack for your CPU, Memory for testing system RAM, 3D and VRAM for your Graphic card, and Power to stress your power supply. You can even monitor your PC while using an external app to generate reports using the Monitoring-only test !
Monitoring
OCCT will monitor your computer's reading and present you real-time graphs showing you temperatures, voltages, fan speed, frequencies, component usage, and power consumption during your tests. We are using the AWESOME engine from HwInfo !
Built-in protection for your computer
Worried about frying your components ? Turn the maximum temperature threshold in OCCT's options ! Should a component reach this critical temperature during a test, OCCT will stop itself immediately.
Test report
At the end of a test, you will be able to save a full graphical report of what happened during the test, for diagnostic purposes.
Pro edition
Allowed to run on domain-joined computers
OCCT's free edition won't run on computers joined to domain, this version removes that limit entirely
CSV readings export
OCCT will generate a CSV files containing all the monitoring readings upon saving a test report. Use it to build your own graphs !
Enterprise edition
Build your own test
Chain different test phases to build your own schedule. Everything is done graphically in the app, using drag&drop, for an easy configuration ! You can also export test configurations to a file
Detailed test report
Gain access to fully detailed, fine-grain test reports in HTML file format (single-file), allowing you to analyze easily the behaviour of your computer during the test, and use it as a comparison point between two different test runs.Preview it here !
Command-line support
Start OCCT with command-line switches, to automatically start a test, choose where to output the report, configure the report name,...
Please be aware that all sales are final.
Personal
(One Month)
$5.00
- All Tests available
- Embedded Monitoring
- Overheat protection
- No waiting time
- Test Reports
Editor's Note: The NodeFly app is tested below. Note that StrongLoop has integrated and expanded this monitoring application as StrongAgent. Read all about it in our _Getting Started _page for the most current instructions.__
In our previous post we looked at deployment and configuration of several different Node.js PaaS providers. Here's the summary table:
PROVIDER | DEPLOYMENT | ENV VARS | PERFORMANCE |
---|---|---|---|
Nodejitsu | CLI | CLI or web interface | ok |
Heroku | git | CLI | great |
Modulus | CLI or web upload | CLI or web interface | good |
AppFog | CLI | CLI or web interface | good |
Azure | CLI or git | CLI or web interface | good |
dotCloud | CLI | CLI or .yml file | good |
Engine Yard | git | ey_config npm module | great |
OpenShift | git | SSH and create file | not so good |
CloudFoundry | coming soon | coming soon | coming soon |
In this post we'll explore
NodeFly for reporting the performance of Node apps, and a few simple tools for stress testing.
So you're sending your first real Node.js app into production. Nervous? You should be. Not because Node isn't ready, but because you haven't yet established a history of gotchas and lessons learned. Are there uncaught exceptions? Did you unknowingly write a blocking function somewhere that will only come back to bite you when your app hits the front page of Hacker News?
NodeFly Setup
Signing up for an account is really simple. After that, we just install via npm:
npm install nodefly@stable
and then add a block like this to our app code before any other require
statements:
And when they say 'This must be the first require before you load any modules. Otherwise you will not see data reported' they mean it. I started by first loading nconf so that I could use a familiar way of putting the NodeFly config info in and external file. Sure enough, no data reported.
Also note that the second parameter of that profile
method is in fact an Array. I got stuck on that during my first attempt. It allows you to also include a hostname and a process number, e.g.
On the how-to page, NodeFly includes customized setup snippets for Nodejitsu, Heroku, and AppFog.
Sample App
So let's start with a simple app that runs the fibonacci sequence for a variable number of iterations.
Simple Stress Testing
There is of course no reason why you need to use tools written in Node to test Node apps. Nevertheless, here are a couple simple ones I found by digging through npm
node-http-perf
zanchin/node-http-perf is a tool with a familiar CLI:
nperf -c 5 -n 10 http://example.com/
That will send a total of 10 requests to example.com, 5 at a time.
node-ab
doubaokun/node-ab has an even simpler command:
nab example.com
While running, it increases the number of requests by 100 more per second until less than 99% of requests are returned.
Bees with Machine Guns
Mike Pennisi of bocoup has a great three-part write up of his experience stress-testing a realtime Node.js app. His focus was primarily on testing socket.io performance. In the process, he created a fork of Bees with Machine Guns that's worth checking out if you're looking to do some serious distributed stress testing.
With our sample app deployed on many different Node PaaS hosts, now we can run some of these simple tests and take a look at our NodeFly dashboard to get some insights on performance. I'll be running `nab` to get a basic sense of how a traffic spike is handled. We'll follow that with a single request to `/block/42` to see how the CPU holds up.
Please take these results with a grain of salt– this is not a real-world app. Also note that we're only testing the entry level setup. It's very likely that scaling each service up a notch would dramatically alter the results!
To set a baseline, here are the results from an AWS 'micro' instance with a fresh installation of Node 0.10.12:
EC2 Micro
Nodejitsu
Npm Test No Test Specified
Heroku
Modulus.io
AppFog
Stress Test Tool Npm Tutorial
Windows Azure
Monitoring
OCCT will monitor your computer's reading and present you real-time graphs showing you temperatures, voltages, fan speed, frequencies, component usage, and power consumption during your tests. We are using the AWESOME engine from HwInfo !
Built-in protection for your computer
Worried about frying your components ? Turn the maximum temperature threshold in OCCT's options ! Should a component reach this critical temperature during a test, OCCT will stop itself immediately.
Test report
At the end of a test, you will be able to save a full graphical report of what happened during the test, for diagnostic purposes.
Pro edition
Allowed to run on domain-joined computers
OCCT's free edition won't run on computers joined to domain, this version removes that limit entirely
CSV readings export
OCCT will generate a CSV files containing all the monitoring readings upon saving a test report. Use it to build your own graphs !
Enterprise edition
Build your own test
Chain different test phases to build your own schedule. Everything is done graphically in the app, using drag&drop, for an easy configuration ! You can also export test configurations to a file
Detailed test report
Gain access to fully detailed, fine-grain test reports in HTML file format (single-file), allowing you to analyze easily the behaviour of your computer during the test, and use it as a comparison point between two different test runs.Preview it here !
Command-line support
Start OCCT with command-line switches, to automatically start a test, choose where to output the report, configure the report name,...
Please be aware that all sales are final.
Personal
(One Month)
$5.00
- All Tests available
- Embedded Monitoring
- Overheat protection
- No waiting time
- Test Reports
Editor's Note: The NodeFly app is tested below. Note that StrongLoop has integrated and expanded this monitoring application as StrongAgent. Read all about it in our _Getting Started _page for the most current instructions.__
In our previous post we looked at deployment and configuration of several different Node.js PaaS providers. Here's the summary table:
PROVIDER | DEPLOYMENT | ENV VARS | PERFORMANCE |
---|---|---|---|
Nodejitsu | CLI | CLI or web interface | ok |
Heroku | git | CLI | great |
Modulus | CLI or web upload | CLI or web interface | good |
AppFog | CLI | CLI or web interface | good |
Azure | CLI or git | CLI or web interface | good |
dotCloud | CLI | CLI or .yml file | good |
Engine Yard | git | ey_config npm module | great |
OpenShift | git | SSH and create file | not so good |
CloudFoundry | coming soon | coming soon | coming soon |
In this post we'll explore
NodeFly for reporting the performance of Node apps, and a few simple tools for stress testing.
So you're sending your first real Node.js app into production. Nervous? You should be. Not because Node isn't ready, but because you haven't yet established a history of gotchas and lessons learned. Are there uncaught exceptions? Did you unknowingly write a blocking function somewhere that will only come back to bite you when your app hits the front page of Hacker News?
NodeFly Setup
Signing up for an account is really simple. After that, we just install via npm:
npm install nodefly@stable
and then add a block like this to our app code before any other require
statements:
And when they say 'This must be the first require before you load any modules. Otherwise you will not see data reported' they mean it. I started by first loading nconf so that I could use a familiar way of putting the NodeFly config info in and external file. Sure enough, no data reported.
Also note that the second parameter of that profile
method is in fact an Array. I got stuck on that during my first attempt. It allows you to also include a hostname and a process number, e.g.
On the how-to page, NodeFly includes customized setup snippets for Nodejitsu, Heroku, and AppFog.
Sample App
So let's start with a simple app that runs the fibonacci sequence for a variable number of iterations.
Simple Stress Testing
There is of course no reason why you need to use tools written in Node to test Node apps. Nevertheless, here are a couple simple ones I found by digging through npm
node-http-perf
zanchin/node-http-perf is a tool with a familiar CLI:
nperf -c 5 -n 10 http://example.com/
That will send a total of 10 requests to example.com, 5 at a time.
node-ab
doubaokun/node-ab has an even simpler command:
nab example.com
While running, it increases the number of requests by 100 more per second until less than 99% of requests are returned.
Bees with Machine Guns
Mike Pennisi of bocoup has a great three-part write up of his experience stress-testing a realtime Node.js app. His focus was primarily on testing socket.io performance. In the process, he created a fork of Bees with Machine Guns that's worth checking out if you're looking to do some serious distributed stress testing.
With our sample app deployed on many different Node PaaS hosts, now we can run some of these simple tests and take a look at our NodeFly dashboard to get some insights on performance. I'll be running `nab` to get a basic sense of how a traffic spike is handled. We'll follow that with a single request to `/block/42` to see how the CPU holds up.
Please take these results with a grain of salt– this is not a real-world app. Also note that we're only testing the entry level setup. It's very likely that scaling each service up a notch would dramatically alter the results!
To set a baseline, here are the results from an AWS 'micro' instance with a fresh installation of Node 0.10.12:
EC2 Micro
Nodejitsu
Npm Test No Test Specified
Heroku
Modulus.io
AppFog
Stress Test Tool Npm Tutorial
Windows Azure
dotCloud
EngineYard
OpenShift.com
We asked the OpenShift team what was behind the slow curl response, and here's what they said:
'One reason is that our node.js cartridge is still using 0.6.20. I tested versions 0.8.9 and later and verified that they are about 30% faster, so the nodejs-custom-version quickstart […] would make a big difference for you. The other thing is that we currently have tight controls about the share of the CPU that we give to each gear. Calling a function that wants to occupy the CPU for several seconds for a single request simply demonstrates that we are limiting your app's CPU usage so that it doesn't harm the performance of other colocated apps. We are still discussing safe ways to allow for occasional CPU spikes like this.'