Article Figure 1 Figure 2 Figure 3 Listing 1
Listing 2 Sidebar mar2004.tar

Listing 1 SysAdmin.pg

 /* * 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
};

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

Server S = {
        kind = `\"{}S101`\"{};
        contents = [ SimpleContent ];
        direct_access = contents;

        addresses = ['10.100.123.123:9090' ]; // where to create these
server agents
};


// a primitive robot

Robot R = {
        kind = `\"{}R101`\"{};
        pop_model = { pop_distr = popUnif(); };
        recurrence = 55% / SimpleContent.cachable; // adjusted to get 55%
DHR

        origins = S.addresses;     // where the origin servers are
        addresses = ['10.100.123.123' ]; // where these robot agents will 
                                            be created
};


// commit to using these servers and robots
use(S, R);