/* * $Id: simple.pg,v 1.5.2.1 1999/09/30 19:43:54 rousskov Exp $ * * a very simple "Hello World!" workload * */ // static object life cycle similar to PolyMix-1 environment // everything is known and nothing changes ObjLifeCycle StaticLifeCycle = { birthday = now + const(-1year); // born a year ago length = const(2year); // two year cycle variance = 0%; // no variance with_lmt = 100%; // all response have LMT expires = [lmt + const(2year)]; // everything expires when modified }; // we start with defining content properties for our server to generate Content SimpleContent = { size = logn(11KB,7KB); // response sizes distributed exponentially cachable = 95%; // 5% of content is uncachable obj_life_cycle = StaticLifeCycle; }; // a primitive server cleverly labeled "S101" // normally, you would specify far more properties, // but we will mostly rely on defaults for now Server S = { kind = "S101"; contents = [ SimpleContent ]; direct_access = [ SimpleContent ]; xact_think = const(1sec); }; // a primitive robot Robot R = { kind = "R101"; public_interest = 50%; pop_model = pmUnif(); req_rate = 520/sec; open_conn_lmt = 1000; launch_win = 5sec; }; // recurrence is the probability that a robot revisits a URL // set recurrence ratio as desired_DHR/cachability_ratio R.recurrence = 95%; // for production tests, never use one host for clients and servers! addr[] srv_ips = ['10.13.0.12:8080' ]; // localhost addr[] rbt_ips = ['10.15.0.16' ]; // localhost R.origins = srv_ips; // tell our robot where the server is // assign agents (servers and robots) to their hosts S.hosts = srv_ips; R.hosts = rbt_ips; time phu = 1hour; // phase duration "unit" (handy for testing) Phase phWarm = { name = "warm"; goal.duration = 30sec; load_factor_beg = 0.10; log_stats = false; }; Phase phInc1 = { name = "inc1"; goal.duration = 10min; load_factor_end = 0.75; }; Phase phTop1 = { name = "top1"; goal.duration = 24*phu; load_factor_end = 1.0; }; Phase phCool = { name = "cool"; goal.duration = 10min; load_factor_end = 0.01; }; working_set_length(1hour); // build schedule using some well-known phases and phases defined above schedule(phWarm, phInc1, phTop1, phCool); // commit to using these servers and robots use(S, R);