Adam Ierymenko 53731acf51 Bracket by time in result cruncher script. 10 年之前
..
2015-11-10_01_50000.out.xz 2854f14966 Some cluster parameter tweaks, and change the test code in tests/http to dramatically reduce the amount of data transfer to/from the test master. Also add results of first successful 50k test. 10 年之前
2015-11-10_02_50000.out.xz 0cf4ddda4a Some more test results, and fix OSX installer to put symlinks in /usr/local as per El Capitan requirements. 10 年之前
2015-11-10_03_12500_ec2-east-only.out.xz 141e2db38c More results. 10 年之前
Dockerfile 1f5ef968cf Test need a more recent version of NodeJS so update Dockerfile. 10 年之前
README.md f808138a94 docs and stuff 10 年之前
agent.js 0e4a2c378f Fix a sporadic warning in cluster-geo, and fix test to not overload the test-watcher. 10 年之前
big-test-kill.sh 869eff49bc . 10 年之前
big-test-start.sh 2854f14966 Some cluster parameter tweaks, and change the test code in tests/http to dramatically reduce the amount of data transfer to/from the test master. Also add results of first successful 50k test. 10 年之前
crunch-results.js 53731acf51 Bracket by time in result cruncher script. 10 年之前
docker-main.sh 4b655ab22c tests 10 年之前
nodesource-el.repo 1f5ef968cf Test need a more recent version of NodeJS so update Dockerfile. 10 年之前
package.json c6a918d996 HTTP test code. 10 年之前
server.js 0e4a2c378f Fix a sporadic warning in cluster-geo, and fix test to not overload the test-watcher. 10 年之前

README.md

HTTP one-to-all test

This is really internal use code. You're free to test it out but expect to do some editing/tweaking to make it work. We used this to run some massive scale tests of our new geo-cluster-based root server infrastructure prior to taking it live.

Before using this code you will want to edit agent.js to change SERVER_HOST to the IP address of where you will run server.js. This should typically be an open Internet IP, since this makes reporting not dependent upon the thing being tested. Also note that this thing does no security of any kind. It's designed for one-off tests run over a short period of time, not to be anything that runs permanently. You will also want to edit the Dockerfile if you want to build containers and change the network ID to the network you want to run tests over.

This code can be deployed across a large number of VMs or containers to test and benchmark HTTP traffic within a virtual network at scale. The agent acts as a server and can query other agents, while the server collects agent data and tells agents about each other. It's designed to use RFC4193-based ZeroTier IPv6 addresses within the cluster, which allows the easy provisioning of a large cluster without IP conflicts.

The Dockerfile builds an image that launches the agent. The image must be "docker run" with "--device=/dev/net/tun --privileged" to permit it to open a tun/tap device within the container. (Unfortunately CAP_NET_ADMIN may not work due to a bug in Docker and/or Linux.) You can run a bunch with a command like:

for ((n=0;n<10;n++)); do docker run --device=/dev/net/tun --privileged -d zerotier/http-test; done