SMP Workloads

Michael Hendrie <pmix-HaiLnJIfpmJWo+R/V/U2/[email protected]> Fri, 19 May 2017 12:37:56 +0930
Newsgroups gmane.comp.web.web-polygraph.user
Message-ID <[email protected]>
--===============3115823493150596031==
Content-Type: multipart/alternative;
 boundary="Apple-Mail=_06D729E3-926A-4D71-9493-EE29F248A902"


--Apple-Mail=_06D729E3-926A-4D71-9493-EE29F248A902
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Hi All,

I'm experimenting with using SMP in workloads in v4.9.0 to increase the =
capacity of my test rig.  I notice without SMP I have multiple idle CPU =
cores on the host machines so expecting to see significant increase in =
performance.

I have tried multiple different configuration but consistently see =
console output on the client reporting connection errors and when I =
check one of the server one of the worker processes will have silently =
terminated.  This doesn't appear to happen with any particular pattern =
but does occur more often than not making it not possible to start a =
test with any confidence in SMP mode.

I'm seeing this same behaviour with both SSL and HTTP workloads, SSL =
workloads was the main driver to move to SMP as they are more taxing on =
the host but also tried HTTP to rule it out.

Here's the bench config that is intended to start multiple workers as I =
understand from the changelog.=20

Bench sslBench =3D {
	client_side =3D {
		max_host_load =3D 300/sec;
		max_agent_load =3D 0.4/sec;
		addr_space =3D [ 'lo::172.17.60-123.1-250/22' ];
		hosts =3D  [ '172.16.0.60-62' ];
	};
	server_side =3D {
		max_host_load =3D client_side.max_host_load;
		max_agent_load =3D 0.4/sec;
		addr_space =3D [ 'lo::172.17.188-251.0-250:443/22' ];
		hosts =3D [ '172.16.0.64-66' ] ** 2;
	};
};

 Entire workload also attached also.

Any suggestions on how I can get some stability in the SMP tests or =
other users facing the same issue?  I'm running on a RHEL 6.x clone OS.

Thanks,

Michael


--Apple-Mail=_06D729E3-926A-4D71-9493-EE29F248A902
Content-Type: multipart/mixed;
	boundary="Apple-Mail=_F8674D21-9902-4741-A20C-7B0797B472DB"


--Apple-Mail=_F8674D21-9902-4741-A20C-7B0797B472DB
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D"">Hi All,<div class=3D""><br class=3D""></div><div class=3D"">I'm=
 experimenting with using SMP in workloads in v4.9.0 to increase the =
capacity of my test rig. &nbsp;I notice without SMP I have multiple idle =
CPU cores on the host machines so expecting to see significant increase =
in performance.</div><div class=3D""><br class=3D""></div><div =
class=3D"">I have tried multiple different configuration but =
consistently see console output on the client reporting connection =
errors and when I check one of the server one of the worker processes =
will have silently terminated. &nbsp;This doesn't appear to happen with =
any particular pattern but does occur more often than not making it not =
possible to start a test with any confidence in SMP mode.</div><div =
class=3D""><br class=3D""></div><div class=3D"">I'm seeing this same =
behaviour with both SSL and HTTP workloads, SSL workloads was the main =
driver to move to SMP as they are more taxing on the host but also tried =
HTTP to rule it out.</div><div class=3D""><br class=3D""></div><div =
class=3D"">Here's the bench config that is intended to start multiple =
workers as I understand from the changelog.&nbsp;</div><div class=3D""><br=
 class=3D""></div><div class=3D""><font face=3D"Courier New" =
class=3D"">Bench sslBench =3D {<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>client_side =3D {<br class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">		</span>max_host_load =3D =
300/sec;<br class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">		</span>max_agent_load =3D =
0.4/sec;<br class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">		</span>addr_space =3D [ =
'lo::172.17.60-123.1-250/22' ];<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>hosts =3D&nbsp;&nbsp;[ '172.16.0.60-62' ];<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>};<br =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>server_side =3D {<br class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">		</span>max_host_load =3D =
client_side.max_host_load;<br class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">		</span>max_agent_load =3D =
0.4/sec;<br class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">		</span>addr_space =3D [ =
'lo::172.17.188-251.0-250:443/22' ];<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>hosts =3D [ '172.16.0.64-66' ] ** 2;<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>};<br =
class=3D"">};</font></div><div class=3D""><font face=3D"Courier New" =
class=3D""><br class=3D""></font></div><div class=3D"">&nbsp;Entire =
workload also attached also.</div><div class=3D""><br =
class=3D""></div><div class=3D"">Any suggestions on how I can get some =
stability in the SMP tests or other users facing the same issue? =
&nbsp;I'm running on a RHEL 6.x clone OS.</div><div class=3D""><br =
class=3D""></div><div class=3D"">Thanks,</div><div class=3D""><br =
class=3D""></div><div class=3D"">Michael</div><div class=3D""><font =
face=3D"Courier New" class=3D""><br class=3D""></font></div><div =
class=3D""></div></body></html>=

--Apple-Mail=_F8674D21-9902-4741-A20C-7B0797B472DB
Content-Disposition: attachment;
	filename=smp_ssl.pg
Content-Type: application/octet-stream;
	x-unix-mode=0644;
	name="smp_ssl.pg"
Content-Transfer-Encoding: 7bit

/*
 * A very simple "Hello, World!" workload
 */

// this is just one of the simplest workloads that can produce hits
// never use this workload for benchmarking


// SimpleContent defines properties of content that the server generates;
// if you get no hits, set SimpleContent.obj_life_cycle to cntStatic, which
// is defined in workloads/include/contents.pg
Content SimpleContent = {
	size = exp(13KB); // response sizes distributed exponentially
	cachable = 80%;   // 20% of content is uncachable
};

Bench sslBench = {
	client_side = {
		max_host_load = 400/sec;
		max_agent_load = 0.4/sec;
		addr_space = [ 'lo::172.17.60-123.1-250/22' ];
		hosts =  [ '172.16.0.60-62' ];
	};
	server_side = {
		max_host_load = client_side.max_host_load;
		max_agent_load = 0.4/sec;
		addr_space = [ 'lo::172.17.188-251.0-250:443/22' ];
		hosts = [ '172.16.0.64-66' ] ** 2 ;
	};
};

use(sslBench);

SpreadAs sslSpread = { agents_per_addr = 1; };

sslBench.peak_req_rate = 1200/sec;

// a primitive server cleverly labeled "S101"
// normally, you would specify more properties,
// but we will mostly rely on defaults for now

SslWrap sslwrp = {
        protocols = [ "TLSv1" ];
        ciphers = [ "ALL:HIGH": 100% ];
        rsa_key_sizes = [ 2048bit ];
	sharing_group = "certs";
	ssl_config_file = "/usr/share/polygraph/workloads/include/myssl.conf";
};

Server sslServer = {
	kind = "S102"; 
	contents = [ SimpleContent ];
	direct_access = contents;

	xact_think = norm(0.200sec, 0.100sec);
	pconn_use_lmt = zipf(16);
	idle_pconn_tout = 15sec;
	abort_prob = 0.1%;

	addresses = serverAddrs(sslSpread, sslBench); // where to create these server agents
	ssl_wraps = [ sslwrp ];
	http_versions = [ "1.1" ];
};

DnsResolver Resolver;
Resolver.servers = [ '172.16.0.2:53' ];
Resolver.timeout = 2sec;

/*
AddrMap httpMap = {
        zone = "ssltest.local";
        addresses = sslServer.addresses;
        names = ipsToNames(addresses, zone);
};
*/

// a primitive robot
Robot sslClient = {
	kind = "R102";
	pop_model = { pop_distr = popUnif(); };
	recurrence = 55% / SimpleContent.cachable; // adjusted to get 55% DHR

	abort_prob = 0.1%;

	origins = sslServer.addresses;      // where the origin servers are
	addresses = robotAddrs(sslSpread, sslBench); // where these robot agents will be created
	ssl_wraps = [  sslwrp ];
	req_rate = sslBench.client_side.max_agent_load;
	http_versions = [ "1.1" ];
	pconn_use_lmt = zipf(64);
	open_conn_lmt = 4;
};

// commit to using these servers and robots
use(sslServer, sslClient);

--Apple-Mail=_F8674D21-9902-4741-A20C-7B0797B472DB
Content-Transfer-Encoding: 7bit
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""></div></body></html>
--Apple-Mail=_F8674D21-9902-4741-A20C-7B0797B472DB--

--Apple-Mail=_06D729E3-926A-4D71-9493-EE29F248A902--

--===============3115823493150596031==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Users mailing list
[email protected]
http://lists.web-polygraph.org/mailman/listinfo/users
--===============3115823493150596031==--