This file is indexed.

/usr/share/polygraph/workloads/srvlb-l7-4.pg is in polygraph 4.3.2-5.

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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/*
 * Server load balancing (layer 7) workload
 */

#include "benches.pg"
#include "contents.pg"
#include "srvlb-l7-4-guts.pg"

/* there must be a minimum of 6 servers, total.
 * there must be equal numbers of each type of server.
 */

addr[] html_servers = [ '172.16.45.191-192:80' ];
addr[] png_servers = [ '172.16.45.193-194:80' ];
addr[] jpg_servers = [ '172.16.45.195-196:80' ];

Bench TheBench = {
	client_side = {
		max_host_load = 700/sec;
		max_agent_load = 0.7/sec;

		// the primary ("real") ip addresses of the client machines.
		hosts = [ '172.16.45.61' ];
		addr_space = [ 'lo0::10.45.1-250.1-250' ];
	};
	
	server_side = {
		max_host_load = client_side.max_host_load;
		max_agent_load = max_host_load;

		// the primary ("real") ip addresses of the server machines.
		// also used as the origin server addresses
		hosts = [ html_servers, png_servers, jpg_servers ];
	};

	// use proxy_side to store VIP to keep all real IPs in TheBench
	proxy_side.hosts = [ '172.16.45.254:80' ];

	// maximum request rate for the configured number of hosts
	peak_req_rate = client_side.max_host_load * count(client_side.hosts);
};

AddrMap vipMap = {
	addresses = serverAddrs(asSrvLb_L7_4, TheBench);
	names = TheBench.proxy_side.hosts;
};

// common configuration for all three types of servers
Server OriginS = {
	kind = "SrvLb-L7-4";

	xact_think = norm(150msec, 50msec);
	pconn_use_lmt = zipf(64);
	idle_pconn_tout = 15sec;
	http_versions = [ "1.0" ];  // newer agents use HTTP/1.1 by default
};

Server OriginHTML = OriginS;
OriginHTML = {
	kind = "SrvLB-L7-4_HTML";
	contents = [ cntImage_HTML: 65%, cntHTML_HTML: 15%, 
		cntDownload_HTML: 0.5%, cntOther_HTML ];
	direct_access = [ cntHTML_HTML, cntDownload_HTML, cntOther_HTML ];
	addresses = html_servers;
};

Server OriginPNG = OriginS;
OriginPNG = {
	kind = "SrvLB-L7-4_PNG";
	contents = [ cntImage_PNG: 65%, cntHTML_PNG: 15%, 
		cntDownload_PNG: 0.5%, cntOther_PNG ];
	direct_access = [ cntHTML_PNG, cntDownload_PNG, cntOther_PNG ];
	addresses = png_servers;
};

Server OriginJPG = OriginS;
OriginJPG = {
	kind = "SrvLB-L7-4_JPG";
	contents = [ cntImage_JPG: 65%, cntHTML_JPG: 15%,
		cntDownload_JPG: 0.5%, cntOther_JPG ];
	direct_access = [ cntHTML_JPG, cntDownload_JPG, cntOther_JPG ];
	addresses = jpg_servers;
};


PopModel popModel = {
	pop_distr = popUnif();
	hot_set_frac = 1%;	// fraction of working set size (WSS)
	hot_set_prob = 10%;	// prob. of a request for object from hot set

	bhr_discrimination = 90%; // revisit smaller files more often
};

Robot ClientR = {
	kind = "SrvLb-L7-4-Clt";

	req_rate = TheBench.client_side.max_agent_load;
	recurrence = 95%;
	embed_recur = 100%;
	pop_model = popModel;
	req_types = [ "Ims200": 5%, "Ims304": 10%, "Reload" : 5%, "Basic" ];
	open_conn_lmt = 4;
	pconn_use_lmt = zipf(16);

	origins = vipMap.names;
	addresses = robotAddrs(asSrvLb_L7_4, TheBench);
	http_versions = [ "1.0" ];  // newer agents use HTTP/1.1 by default
};


/* the phases */

Phase phRamp = { 
	name = "ramp"; 
	populus_factor_beg = 1%;
	populus_factor_end = 100%;
	goal.duration = 30min;
};

Phase phPlat = { 
	name = "plat"; 
	goal.duration = 60min;
};

Phase phExit = {
	name = "exit";
	populus_factor_end = 1%;
	goal.duration = 30min;
};

// assume the number of pages on a site does not depend on its popularity
// working_set_cap(50000 / clientHostCount(TheBench));

// assume sites with higher request rate have more pages (larger WSS)
working_set_length(phRamp.goal.duration/2);

schedule(phRamp, phPlat, phExit);


// commit to using these things
use(OriginHTML, OriginPNG, OriginJPG, ClientR);
use(vipMap);
use(TheBench);