AW: polygraph-client tries to connect to server with odd IP address

Dmitry Kurochkin dmitry.kurochkin at measurement-factory.com
Mon Dec 5 17:03:28 UTC 2011


On Mon, 5 Dec 2011 16:51:36 +0100, "Hohl, Gerrit" <g.hohl at aurenz.de> wrote:
> Hello Dimitry,
> 
> I guess I found the problem:
> The ratio between peak_req_rate, max_host_load, max_agent_load and
> agents_per_addr is the root of all. If the relationship of this 4
> properties is not in balance polygraph-client somehow assumes a wrong
> number of servers.
> 

Yes, the number of agents is calculated by Polygraph based on rate and
load values.  But if the configuration is not valid (e.g. required
number of agents exceeds the address space), Polygraph should exit with
an error.  Otherwise it may be a bug.

I would like to reproduce the error you get.  The workload in your first
email does not show the problem with Polygraph v4.3.2: Polygraph exits
with the expected "too small address space" error.  What version of Web
Polygraph are you using?

Regards,
  Dmitry

> Currently if've the following address space for the client side:
> 
>     addr_space = [ 'lo::10.101.0-123.1-250/22' ];
> 
> and the following for the server side:
> 
>     addr_space = [ 'lo::10.101.128-251.1-250:80/22' ];
> 
> And it is working perfectly now. :-)
> 
> I only use this configuration so I can "play" with web polygraph on a Ubuntu 10.04.3 server installation and prepare a load test / stress test. But the real one will be run on real hardware and also on a few computers instead of only one. So I will change the network configuration later.
> 
> Regards,
> Gerrit
> 
> -----Ursprüngliche Nachricht-----
> Von: Dmitry Kurochkin [mailto:dmitry.kurochkin at measurement-factory.com] 
> Gesendet: Montag, 5. Dezember 2011 14:13
> An: Hohl, Gerrit; users at web-polygraph.org
> Betreff: Re: polygraph-client tries to connect to server with odd IP address
> 
> Hi Gerrit.
> 
> On Mon, 5 Dec 2011 13:11:22 +0100, "Hohl, Gerrit" <g.hohl at aurenz.de> wrote:
> > Hello everyone,
> > 
> > I've build a test case and facing now the problem that the 
> > polygraph-client tries to connect to server which don't exist. That is 
> > somehow odd as the polygraph-server and the polygraph-client using the 
> > same PGL file. If they use the same file and use the same PGL parser, 
> > shouldn't they work with the same numbers / IP addresses for servers 
> > and clients? I'm a little bit confused.
> > 
> 
> Yes, it should.
> 
> > At the end of this message is the content of the PGL file.
> > cred.pg contains some user credentials, but I don't use them at the 
> > moment.
> > DNS names are currently not used (or at least should not be used).
> > I only uses aliases in this version, no real machines (except the one 
> > where all the aliases are configured).
> > polygraph-server starts 26 agents, from 10.101.128.1 to 10.101.128.26.
> > polygraph-client starts 6 agents, from 10.101.0.1 to 10.101.0.3, 2 on 
> > each alias.
> > After the start of the test case polygraph-client prints, e.g., that 
> > it can't establish a connection from 10.101.0.1:38686 to 10.101.148.15:80.
> > How does it come up with that server IP address? It is not even in the 
> > addr_space of the server. :-?
> 
> There are no hard-coded addresses in Polygraph, but some standard workloads use 10.101.128-251.1-250 server address space by default.
> Please double check that you are running the correct workload.
> 
> Note that the workload you sent does not work as is because the server address space is too small:
> 
>   serverAddrs() call failed: too small address space; 520 agents cannot fit into 500 space slots
> 
> Regards,
>   Dmitry
> 
> > Make I should mention that I configure the aliases with the 
> > polygraph-aka command:
> > polygraph-aka --if lo --aliases 10.101.0.1-125/22 --aliases
> > 10.101.128-130.1-250/22
> > This creates 125 aliases for the servers and 750 aliases for the 
> > clients.
> > 
> > 
> > // this is just one of the simplest workloads that can produce hits // 
> > never use this workload for benchmarking #include "cred.pg"
> > 
> > // 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 theBench = {
> > 	peak_req_rate = 10000/sec;
> > 
> > 	client_side = {
> > 		max_host_load = 500/sec;
> > 		max_agent_load = 100/sec;
> > 		addr_space = [ 'lo::10.101.0-123.1-250/22' ];
> > 
> > 	};
> > 	server_side = {
> > 		max_host_load = client_side.max_host_load;
> > 		max_agent_load = undef();
> > 		addr_space = [ 'lo::10.101.128-129.1-250:80/22' ];
> > 	};
> > };
> > 
> > PolyMix4As asPolyMix4 = {
> > 	agents_per_addr = 2;
> > };
> > 
> > DnsResolver resolver = {
> > 	servers = [ '127.0.0.1:53' ];
> > 	timeout = 5sec;
> > };
> > 
> > Server server = {
> > 	kind = "simple-srv"; 
> > 	contents = [ simpleContent ];
> > 	direct_access = contents;
> > 
> > 	addresses = serverAddrs(asPolyMix4, theBench); };
> > 
> > AddrMap addrMap = {
> > 	zone = "bench.tst";
> > 	addresses = server.addresses;
> > 	names = ipsToNames(addresses, zone);
> > };
> > 
> > // a primitive robot
> > Robot robot = {
> > 	kind = "simple-rbt";
> > 	pop_model = { pop_distr = popUnif(); };
> > 	recurrence = 55% / simpleContent.cachable; // adjusted to get 55% DHR
> > 
> > 	// dns_resolver = resolver;
> > 	// origins = addrMap.names;
> > 	origins = server.addresses;
> > 	addresses = robotAddrs(asPolyMix4, theBench);
> > 
> > 	// credentials = cred;
> > };
> > 
> > Phase inc = {
> > 	name = "inc";
> > 	goal.duration = 5min;
> > 	populus_factor_beg = 0%;
> > 	populus_factor_end = 100%;
> > 	load_factor_beg = 0%;
> > 	load_factor_end = 100%;
> > };
> > 
> > Phase top = {
> > 	name = "top";
> > 	goal.duration = 10min;
> > };
> > 
> > Phase dec = {
> > 	name = "dec";
> > 	goal.duration = 5min;
> > 	populus_factor_beg = 100%;
> > 	populus_factor_end = 0%;
> > 	load_factor_beg = 100%;
> > 	load_factor_end = 0%;
> > };
> > 
> > schedule(inc, top, dec);
> > 
> > // commit to using these servers and robots use(server, robot); 
> > use(addrMap); use(theBench); 
> > _______________________________________________
> > Users mailing list
> > Users at web-polygraph.org
> > http://www.web-polygraph.org/mailman/listinfo/users
> _______________________________________________
> Users mailing list
> Users at web-polygraph.org
> http://www.web-polygraph.org/mailman/listinfo/users



More information about the Users mailing list