Incorrect throughput being seen in report and differing PGL configs

Mohammed Rakhada <[email protected]> Tue, 02 Aug 2011 14:51:09 +0100
Newsgroups gmane.comp.web.web-polygraph.user
Organization Cisco
Message-ID <1312293069.2165.34.camel@localhost>
Hello,

I am using Web Polygraph version 4.4.0 and running against a proxy
server using 8 clients and 8 servers. After the report is run I see the
following data.


label: Tue Aug 2 13:52:51 BST 2011
throughput: 4196.00xact/sec or 608.43Mbits/sec
response time: 49msec mean
hit ratios: 18.86% DHR and 6.88% BHR
unique URLs: 820565xact (35.40% recurrence)
errors: 0.00% (8xact out of 1270224xact)
duration: 5.05min
start time: Tue, 02 Aug 2011 12:53:18 GMT
workload: available
Polygraph version: 4.4.0
reporter version: 4.4.0

however when I am looking at the switch statistics the number reported
is much lower (360Mbits/sec)

Could you clarify what the throughput value actually relates to?

I am also seeing the following message when trying to run the
polygraph-reporter. Could you help so that I can avoid this error?

PGL configuration in /opt/stress/scripts/tmp/sss-101-strs_1312291541.log
differs from the one
in /opt/stress/scripts/tmp/sss-103-strs_1312291541.log

All the configs are identical apart from the "use" line at the bottom
which I generate to pair up my servers and clients. The attached file
192.168.29.101.polygraph.pg is an example of this line. Each pair of
server / client will have the same line but the next pair will have a
different line.

Attached are my polygraph files to help you understand my setup.

Please let me know if you require further information or clarification.

Thanks in advance.

Mohammed Rakhada
Systems Administrator
Cisco Ltd

_______________________________________________
Users mailing list
Users-mN9fGWdlm5pku/f+YMZH/di2O/[email protected]
http://www.web-polygraph.org/mailman/listinfo/users
192.168.29.101.polygraph.pg (text/x-csrc, 5.5 KB)
/*
 * Commonly used Content models
 *
 */

/* Object life cycles are described first, followed by Content models */

// static object life cycle similar to PolyMix-1 environment
// everything is known and nothing changes
ObjLifeCycle olcStatic = {
	length = const(2year);          // two year cycle
	variance = 0%;                  // no variance
	with_lmt = 100%;                // all responses have LMT
	expires = [nmt + const(0sec)];  // everything expires when modified
};

// object life cycle for "HTML" content
ObjLifeCycle olcHTML = {
	length = logn(7day, 1day);      // heavy tail, weekly updates
	variance = 33%;
	with_lmt = 100%;                // all responses have LMT
	expires = [nmt + const(0sec)];  // everything expires when modified
};

// object life cycle for "Image" content
ObjLifeCycle olcImage = {
	length = logn(30day, 7day);    // heavy tail, monthly updates
	variance = 50%;
	with_lmt = 100%;               // all responses have LMT
	expires = [nmt + const(0sec)]; // everything expires when modified
};

// object life cycle for "Download" content
ObjLifeCycle olcDownload = {
	length = logn(0.5year, 30day); // almost no updates
	variance = 33%;
	with_lmt = 100%;               // all responses have LMT
	expires = [nmt + const(0sec)]; // everything expires when modified
};

Content cntJPG = {
        kind = "image";
        mime = { type = "image/jpg"; extensions = [ ".jpeg", ".jpg" ]; };
        obj_life_cycle = olcImage;
        size = exp(20KB);
        cachable = 0%;
        checksum = 1%;
};

Content cntGIF = {
        kind = "image";
        mime = { type = "image/gif"; extensions = [ ".gif" ]; };
        obj_life_cycle = olcImage;
        size = exp(2KB);
        cachable = 0%;
        checksum = 1%;
};

Content cntPNG = {
        kind = "image";
        mime = { type = "image/png"; extensions = [ ".png" ]; };
        obj_life_cycle = olcImage;
        size = exp(8KB);
        cachable = 0%;
        checksum = 1%;
};

Content cntPDF = {
        kind = "application";
        mime = { type = "application/pdf"; extensions = [ ".pdf" ]; };
        obj_life_cycle = olcImage;
        size = exp(1200KB);
        cachable = 0%;
        checksum = 1%;
	content_db = "/opt/home/mrakhada/pdf.cdb";
};

Content cntMalware = {
        kind = "application";
        mime = { type = "undef"; extensions = [ ]; };
        obj_life_cycle = olcImage;
        size = exp(97KB);
        cachable = 0%;
	content_db = "/opt/home/mrakhada/malware.cdb";
};


// object life cycle for "Other" content
ObjLifeCycle olcOther = {
	length = unif(1day, 1year);
	variance = 50%;
	with_lmt = 100%;               // all responses have LMT
	expires = [nmt + const(0sec)]; // everything expires when modified
};


// PolyMix-1 content
Content cntPolyMix_1 = {
	kind = "polymix-1"; // just a label
	mime = { type = undef(); extensions = []; };
	size = exp(13KB);
	obj_life_cycle = olcStatic;
	cachable = 70%;
};

Content cntImage = {
	kind = "image";
	mime = { type = undef(); extensions = [ ".gif", ".jpeg", ".png" ]; };
	obj_life_cycle = olcImage;
	size = exp(4.5KB);
	cachable = 70%;
	checksum = 1%;
};

Content cntHTML = {
	kind = "HTML";
	mime = { type = undef(); extensions = [ ".html" : 60%, ".htm" ]; };
	obj_life_cycle = olcHTML;
	size = exp(8.5KB);
	//cachable = 90%;
	checksum = 1%;

	may_contain = [ cntImage ];
	embedded_obj_cnt = zipf(13);
};

Content cntDownload = {
	kind = "download";
	mime = { type = undef(); extensions = [ ".exe": 40%, ".zip", ".gz" ]; };
	obj_life_cycle = olcDownload;
	size = logn(300KB, 300KB);
	//cachable = 95%;
	checksum = 0.01%;
};

Content cntOther = {
	kind = "other";
	obj_life_cycle = olcOther;
	size = logn(25KB, 10KB);
	//cachable = 72%;
	checksum = 0.1%;
};

// Random content similar to request bodies generated before v3.3
Content cntSimpleRequest = {
	size = unif(0KB, 8KB);
};

// include content types and lifecycles which will be useful later on
//#include "/opt/home/mrakhada/workloads/include/contents.pg"
//#include "/opt/home/mrakhada/contents.pg"


// wait for a single transaction so that client and server are synchronized
Phase wait = {
	name = "wait";
	goal.xactions = 1;
	load_factor_end = 0.15; // may need to adjust
	log_stats = true;
};

// fire requests at the target to fill up the cache
Phase warmup = {
	name = "warmup";
	goal.fill_size = 1GB;
	load_factor_beg = 0.1; // may need to adjust
	log_stats = true;
};

Goal smallSample = { duration = 7sec; };
Goal midSample = { duration = 21sec; };

Phase peakFinder = {
	name = "peak-finder";
	//goal.duration = 10min;
	goal.duration = 5min;
	//goal.duration = 1hour;
	load_factor_beg = 1.00;
	populus_factor_beg = 0.40;

	script = {
		every smallSample do {
			StatSample sample = currentSample();
			print("small sample mean response time is ", sample.rep.rptm.mean);
			if (sample.rep.rptm.mean > 4000msec) then {
				print("decreasing load factor");
				changePopulusFactorBy(-2%);
			}
		}; 

		every midSample do {
      StatSample sample = currentSample();
      print("sample mean response time is ", sample.rep.rptm.mean);
      // if (sample.rep.rptm.mean < 500msec && sample.rep.rate <= 5000) then {
      if (sample.rep.rptm.mean < 3700msec) then {
        print("increasing load factor");
        changePopulusFactorBy(+4%);
      }
		};
	};
};
schedule(peakFinder);

#include "/opt/home/mrakhada/clients_and_servers.pg"

use(sss102strs, sss101strs);
clients_and_servers.pg (text/plain, 6.1 KB)
Robot sss101strs = {
        kind = "sss101strs";
        interests = [ "public": 30%, "foreign" ]; //user traces
        foreign_trace = "/opt/home/mrakhada/t53.urls.httponly.ports";
        pop_model = { pop_distr = popUnif(); };
        recurrence = 25% / cntImage.cachable;
        req_rate = 1/sec;
        //origins = M.names;
        origins = [ '192.168.30.202:8080' ];
	http_proxies = [ '192.168.30.50:8080' ];
        //origins = S.addresses;
        addresses = ['192.168.30.201' ** 1000 ];
};

Robot sss103strs = {
        kind = "sss103strs";
        interests = [ "public": 30%, "foreign" ]; //user traces
        foreign_trace = "/opt/home/mrakhada/t53.urls.httponly.ports";
        pop_model = { pop_distr = popUnif(); };
        recurrence = 25% / cntImage.cachable;
        req_rate = 1/sec;
        //origins = M.names;
        origins = [ '192.168.30.204:8080' ];
	http_proxies = [ '192.168.30.50:8080' ];
        //origins = S.addresses;
        addresses = ['192.168.30.203' ** 1000 ];
};

Robot sss105strs = {
        kind = "sss105strs";
        interests = [ "public": 30%, "foreign" ]; //user traces
        foreign_trace = "/opt/home/mrakhada/t53.urls.httponly.ports";
        pop_model = { pop_distr = popUnif(); };
        recurrence = 25% / cntImage.cachable;
        req_rate = 1/sec;
        //origins = M.names;
        origins = [ '192.168.30.206:8080' ];
	http_proxies = [ '192.168.30.60:8080' ];
        //origins = S.addresses;
        addresses = ['192.168.30.205' ** 1000 ];
};

Robot sss107strs = {
        kind = "sss107strs";
        interests = [ "public": 30%, "foreign" ]; //user traces
        foreign_trace = "/opt/home/mrakhada/t53.urls.httponly.ports";
        pop_model = { pop_distr = popUnif(); };
        recurrence = 25% / cntImage.cachable;
        req_rate = 1/sec;
        //origins = M.names;
        origins = [ '192.168.30.208:8080' ];
	http_proxies = [ '192.168.30.60:8080' ];
        //origins = S.addresses;
        addresses = ['192.168.30.207' ** 1000 ];
};

Robot sss109strs = {
        kind = "sss109strs";
        interests = [ "public": 30%, "foreign" ]; //user traces
        foreign_trace = "/opt/home/mrakhada/t53.urls.httponly.ports";
        pop_model = { pop_distr = popUnif(); };
        recurrence = 25% / cntImage.cachable;
        req_rate = 1/sec;
        //origins = M.names;
        origins = [ '192.168.30.210:8080' ];
	http_proxies = [ '192.168.30.70:8080' ];
        //origins = S.addresses;
        addresses = ['192.168.30.209' ** 1000 ];
};

Robot sss111strs = {
        kind = "sss111strs";
        interests = [ "public": 30%, "foreign" ]; //user traces
        foreign_trace = "/opt/home/mrakhada/t53.urls.httponly.ports";
        pop_model = { pop_distr = popUnif(); };
        recurrence = 25% / cntImage.cachable;
        req_rate = 1/sec;
        //origins = M.names;
        origins = [ '192.168.30.212:8080' ];
	http_proxies = [ '192.168.30.70:8080' ];
        //origins = S.addresses;
        addresses = ['192.168.30.211' ** 1000 ];
};

Robot sss113strs = {
        kind = "sss113strs";
        interests = [ "public": 30%, "foreign" ]; //user traces
        foreign_trace = "/opt/home/mrakhada/t53.urls.httponly.ports";
        pop_model = { pop_distr = popUnif(); };
        recurrence = 25% / cntImage.cachable;
        req_rate = 1/sec;
        //origins = M.names;
        origins = [ '192.168.30.214:8080' ];
	http_proxies = [ '192.168.30.80:8080' ];
        //origins = S.addresses;
        addresses = ['192.168.30.213' ** 1000 ];
};

Robot sss115strs = {
        kind = "sss115strs";
        interests = [ "public": 30%, "foreign" ]; //user traces
        foreign_trace = "/opt/home/mrakhada/t53.urls.httponly.ports";
        pop_model = { pop_distr = popUnif(); };
        recurrence = 25% / cntImage.cachable;
        req_rate = 1/sec;
        //origins = M.names;
        origins = [ '192.168.30.216:8080' ];
	http_proxies = [ '192.168.30.80:8080' ];
        //origins = S.addresses;
        addresses = ['192.168.30.215' ** 1000 ];
};

Server sss102strs = {
        kind = "sss102strs";
        contents = [ cntJPG: 40%, cntGIF: 45%, cntPNG: 14%, cntPDF: 1% ];
        direct_access = contents;
        //addresses = M.addresses;
  	addresses = [ '192.168.30.202:8080', '192.168.30.202:80' ];
};
Server sss104strs = {
        kind = "sss104strs";
        contents = [ cntJPG: 40%, cntGIF: 45%, cntPNG: 14%, cntPDF: 1% ];
        direct_access = contents;
        //addresses = M.addresses;
  	addresses = [ '192.168.30.204:8080', '192.168.30.204:80' ];
};
Server sss106strs = {
        kind = "sss106strs";
        contents = [ cntJPG: 40%, cntGIF: 45%, cntPNG: 14%, cntPDF: 1% ];
        direct_access = contents;
        //addresses = M.addresses;
  	addresses = [ '192.168.30.206:8080', '192.168.30.206:80' ];
};
Server sss108strs = {
        kind = "sss108strs";
        contents = [ cntJPG: 40%, cntGIF: 45%, cntPNG: 14%, cntPDF: 1% ];
        direct_access = contents;
        //addresses = M.addresses;
  	addresses = [ '192.168.30.208:8080', '192.168.30.208:80' ];
};
Server sss110strs = {
        kind = "sss110strs";
        contents = [ cntJPG: 40%, cntGIF: 45%, cntPNG: 14%, cntPDF: 1% ];
        direct_access = contents;
        //addresses = M.addresses;
  	addresses = [ '192.168.30.210:8080', '192.168.30.210:80' ];
};
Server sss112strs = {
        kind = "sss112strs";
        contents = [ cntJPG: 40%, cntGIF: 45%, cntPNG: 14%, cntPDF: 1% ];
        direct_access = contents;
        //addresses = M.addresses;
  	addresses = [ '192.168.30.212:8080', '192.168.30.212:80' ];
};
Server sss114strs = {
        kind = "sss114strs";
        contents = [ cntJPG: 40%, cntGIF: 45%, cntPNG: 14%, cntPDF: 1% ];
        direct_access = contents;
        //addresses = M.addresses;
  	addresses = [ '192.168.30.214:8080', '192.168.30.214:80' ];
};
Server sss116strs = {
        kind = "sss116strs";
        contents = [ cntJPG: 40%, cntGIF: 45%, cntPNG: 14%, cntPDF: 1% ];
        direct_access = contents;
        //addresses = M.addresses;
  	addresses = [ '192.168.30.216:8080', '192.168.30.216:80' ];
};