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' ];
};