[Lustre-devel] loadgen improvements
Andreas Dilger
adilger at sun.com
Tue Dec 8 22:35:32 PST 2009
On 2009-12-08, at 22:07, Alexey Lyashkov wrote:
> This can be something similar as
>>
> pattern $name $pool_name $operation [$stripe_size [$stripe_count]]
>
> where
> name - is pattern name
> pool_name - is name of OST pools assigned to this pattern
> operation - is one of READ or WRITE.
> stripe_size - if set, workload need to setup LOV and add linkage
> between
> LOV and OSC targets, and separate single operation to stripes.
> stripe_count - if set, workload should be use for only part of OST
> pool
> to each echo object.
Please do not use positional parameters. That makes it nearly
impossible to change the input format in the future, or to skip some
fields and leave them as defaults. This needs to use getopt() and
named parameters:
--pool=pool_name, --stripe_size=N, --stripe_count=N
> next stage is prepare clients.
> In this stage we should be send obd_connect to echo client and wait
> until all osc targets is connected (via send obd_statfs() or something
> similar).
> To start clients we can uses:
>>
> clients $name $count $workload_name [shared]
> where
> name - is client group name
> count - is client's count in that group
> workload_name - is name of workload parameters.
> shared - if set, clients in this pattern is share single OSC or LOV
> target. if don't set - each worker have own lustre stack.
> At this stage we also create echo objects with requested LSM for each
> client.
Same as above - please use named parameters instead of positional ones.
It probably also makes sense to look at the functions provided by LST
(LNET self test) so that we might have these two tools operate in a
similar manner. LST testing at the LNET level, loadgen testing at the
OBD/CLIO level.
Cheers, Andreas
--
Andreas Dilger
Sr. Staff Engineer, Lustre Group
Sun Microsystems of Canada, Inc.
More information about the lustre-devel
mailing list