I'm setting up for the L4 tests.
I got the polyprobe tests to work fine.
I don't yet understand the model being used for the L4 test.
Below is my nolb-14-4.pg. The only thing I've changed is the IPs
to suite my setup.
I'm running Linux-2.2.19 and 2.4.5.
Client problems: the client is looking for an
address on lo0 to bind to. I can't configure an lo0 on linux, but
can configure lo:1..lo:255.
So substituting client_side.addr_mask=lo:0::10.1.0.0
and with ifconfig, adding device lo:0=10.1.0.0/16
allows the client to start.
The client starts 1001 agents
with ports 3000:30000, starting 10.1.0.1 .. 10.1.3.228
(nothing seen in netstat -an, but not sure that I expect
anything there) and then dies with
DnsMgr.cc:67 (s24) Too many open files.
I assume this is something I have to fix, but I don't know how.
(Any suggestions).
Assuming I handle this, I understand that the client is routing
packets out of the client_side.hosts IP and that replies should return
to this IP.
This brings me to the server. With my .pg file, the servers want to
bind to 192.168.128.1.
I don't see where this address comes from in the .pg file.
Can you enlighten me?
If I put this IP on lo:1 on each server, the server starts up
listening on 192.168.128.1:8080 (visible in netstat -an)
and shuts down a while later
shutdown reason: inactivity timeout
I assume the server is not getting packets from the client(s)
In the switch off, do you add these extra IP's
(client 10.1.0.0/16, server 192.168.128.1/32) to the test machines?
Not having produced any packets yet to watch with tcpdump, I don't know
the dst_addr of the packets produced by the client.
Can you tell me
at the client: src_addr, dst_addr of packets generated
(presumably reply packets have the addresses reversed)
at the server: expected src_addr, expected dst_addr of incoming packets
src_addr, dst_addr of reply packets.
presumably when I know these addresses, I'll know whether to route the
reply packets through my L4 box or directly to the client(s).
It's not clear to me what the VIP (in my example 192.168.1.110) is doing
here. Can you tell me more about this? e.g. I don't understand
// use proxy side for VIP so that all real IPs are in one place (TheBench)
Thanks Joe
------------------------------------------------------------------
/* my-nolb-14-4.pg
* Server load balancing (layer 4) workload
*/
#include "workloads/include/benches.pg"
#include "workloads/include/contents.pg"
Bench TheBench = {
client_side = {
/*addr_mask = 'lo0::10.45.0.0';*/
addr_mask = 'lo:0::10.1.0.0';
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-70' ];*/
hosts = [ '192.168.1.254' ];
};
server_side = {
/*addr_mask = '172.16.45.0:80';*/
addr_mask = '192.168.1.0:8080';
max_host_load = client_side.max_host_load;
max_agent_load = max_host_load;
/* the primary ("real") ip addresses of the server machines. */
/*hosts = ['172.16.45.191-200'];*/
hosts = ['192.168.1.11-12'];
};
// use proxy side for VIP so that all real IPs are in one place (TheBench)
/*proxy_side.hosts = [ '172.16.45.254:80' ];*/
proxy_side.hosts = [ '192.168.1.110:8080' ];
peak_req_rate = client_side.max_host_load * count(client_side.hosts);
};
AddrMap vipMap = {
addresses = serverAddrs(asWebAxe4, TheBench);
names = addresses;
};
Server OriginS = {
kind = "SrvLB-l4-4-Srv";
contents = [ cntImage: 65%, cntHTML: 15%, cntDownload: 0.5%, cntOther ];
direct_access = [ cntHTML, cntDownload, cntOther ];
xact_think = norm(150msec, 50msec);
pconn_use_lmt = zipf(64);
idle_pconn_tout = 15sec;
addresses = vipMap.addresses;
};
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
};
Robot ClientR = {
kind = "SrvLB-l4-4-Clt";
req_rate = TheBench.client_side.max_agent_load;
recurrence = 95%;
public_interest = 95%;
private_cache_cap = 1000;
embed_recur = 100%;
pop_model = popModel;
req_types = [ "IMS" : 10%, "Reload" : 5%, "Basic" ];
open_conn_lmt = 4;
pconn_use_lmt = zipf(16);
launch_win = 1.5min;
minimize_new_conn = 100%;
origins = vipMap.names;
addresses = robotAddrs(asWebAxe4, TheBench);
};
/* the phases */
Phase phWarm = {
name = "warm";
recur_factor_beg = 5%/55%;
special_msg_factor_beg = 0.1;
load_factor_beg = 0.01;
goal.duration = 2*ClientR.launch_win;
};
Phase phRamp = {
name = "ramp";
recur_factor_end = 1;
special_msg_factor_end = 1;
load_factor_end = 1;
goal.duration = 30min;
};
Phase phPlat = {
name = "plat";
goal.duration = 90min;
};
Phase phExit = {
name = "exit";
load_factor_end = 0.01;
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(phWarm.goal.duration + phRamp.goal.duration/2);
schedule(phWarm, phRamp, phPlat, phExit);
// for Robot.minimize_new_conn, which simulates load balancing
note_substitutes( OriginS.addresses );
// commit to using these things
use(OriginS, ClientR);
use(vipMap);
use(TheBench);
-- Joseph Mack PhD, Senior Systems Engineer, Lockheed Martin contractor to the National Environmental Supercomputer Center, mailto:mack.joseph@epa.gov ph# 919-541-0007, RTP, NC, USA
This archive was generated by hypermail 2b29 : Tue Jul 10 2001 - 12:00:19 MDT