Skip to content

Tools to run perf on multiple remote machines simultaneously and analyze the results

Notifications You must be signed in to change notification settings

craiig/remote-perf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A tool to execute perf on a set of given remote machines and to analyze the result.
Runs interactively, profiling happens while script is running
OR can be start/stop like a daemon

Installation:
 * setup a virtualenv if you don't want to install stuff globally with pip
 * make install
 * run the user_data.sh on the remote machine somehow (provide it as user_data when launching an instance)
 * if you are using a docker config, add the contents of Dockerfile to your own dockerfile
 * the best success I've had is with an oracle 8u jdk

Usage:
 * make hosts=path_to_hosts run
 * run your benchmark and wait
 * Ctrl+C to stop profiling on the remote machines
 * make hosts=path_to_hosts get 
 * perf data is downloaded to local machine
 * make analyze
 * flame graphs are generated

Daemon usage:
 * make daemon-run hosts=...
 * wait
 * make daemon-stop
 * use as above

This depends on a customized version of parallel-ssh that sends the ctrl+c character to the remote machines, instead of killing them via a signal. This allows perf to clean up on the remote side. (See user_data.sh for install)

About

Tools to run perf on multiple remote machines simultaneously and analyze the results

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published