This file is indexed.

/usr/share/polygraph/workloads/webaxe-1.pg is in polygraph 4.3.2-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
/*
 * WebAxe-1 workload for testing Web Accelerators (reverse proxies)
 *
 */

// Warning: These specs are under construction

#include "contents.pg"
#include "phases.pg"

// Request rate is determined by the number of robots and is computed
// later; setting request rate here has no effect
rate PeakRate = undef();

// Fill rate (must be between 10% and 100% of peak request rate PeakRate)
rate FillRate = undef() * PeakRate;

// the two standard working set sizes are 100MB and 1GB
size WSS = 100MB;

// Cache size affects the duration of the "fill" phase below
// Use the sum of RAM and cache disks physical capacity
size CacheSize = 10GB;

// describe WebAxe-1 server
Server S = { 
	kind = "WebAxe-1-srv";

	contents      = [ cntImage: 65%, cntHTML: 15%, cntDownload: 0.5%, cntOther ];
	direct_access = [ cntHTML, cntDownload, cntOther ];

	xact_think = norm(0.3sec, 0.1sec);
	pconn_use_lmt = zipf(16);
	idle_pconn_tout = 15sec;
	http_versions = [ "1.0" ];  // newer agents use HTTP/1.1 by default
};

// where the simulated servers and robots will be located
// these ips will need adjustments based on your local environment,
// working set size, and request rate!
addr[] srv_ips = ['127.0.0.1:8080' ];
addr[] rbt_ips = ['127.0.0.1' ];

// describe WebAxe-1 robot
Robot R = {
	kind = "WebAxe-1-rbt";
	origins = srv_ips;

	recurrence      =   95%;
	embed_recur     =  100%;
	pop_model = { pop_distr = popUnif(); };

	req_rate = 0.4/sec;
	pconn_use_lmt = zipf(64);
	open_conn_lmt = 4;              // open connections limit

	//launch_win = 2.5min;            // avoid burst of requests at start
	http_versions = [ "1.0" ];  // newer agents use HTTP/1.1 by default
};

// compute actual request rate
PeakRate = count(rbt_ips)*R.req_rate;


/* phases */

Phase phWarm = { 
	name = "warm"; 
	goal.duration = 5min;
	load_factor_beg = 0.1; 
	load_factor_end = FillRate/PeakRate;
	log_stats = false; 
};

Phase phFill = { 
	name = "fill";
	goal.fill_size = 2*CacheSize;
	recur_factor_beg = 5%/95%;
};

Phase phLink = { 
	name = "link";
	goal.duration = 5min;
	load_factor_end = 1.0;
	recur_factor_end = 1.0;
};

Phase phTop1 = { name = "top1"; goal.duration = 60min; };
Phase phDec  = { name = "dec";  goal.duration = 5min; load_factor_end = 0.1; };
Phase phIdle = { name = "idle"; goal.duration = 10min; };
Phase phInc  = { name = "inc";  goal.duration = 5min; load_factor_end = 1.0; };
Phase phTop2 = { name = "top2";	goal.duration = 60min; };

// build schedule using some well-known phases and phases defined above
schedule(phWarm, phFill, phLink,
	phTop1, phDec, phIdle, phInc, phTop2, 
	phCool);

// convert WSS in terms of "volume" to WSS in terms of units of "time"
working_set_length(WSS/(10KB*FillRate)/5%/80%);

// assign agents (servers and robots) to their hosts
S.addresses = srv_ips;
R.addresses = rbt_ips;

// commit to using these servers and robots
use(S, R);

// do not forget to configure network level delay and packet loss!
// client side: 100msec delay and 0.1% packet loss in both directions
// server side: no delays or packet losses.