amitkale@clusterfs.com
2007-Mar-20 07:04 UTC
[Lustre-devel] [Bug 11988] New: Benchmark to generate IO from multiple threads
Please don''t reply to lustre-devel. Instead, comment in Bugzilla by using the following link: https://bugzilla.lustre.org/show_bug.cgi?id=11988 Requirement: We have a need for a benchmark that does the following: 1. it starts a variable number T of threads. 2. the threads write to N files and to M regions each file of size R. The total IO is therefore R*N*M. The IO is "evenly" distributed, meaning each thread would grab a "next io task" from a task queue generator and write in an extent at a multiple of S/M. Some randomization can be imposed on the "next io task" function. If N=1 the file can be a block device. 3. Each individual IO task would do direct, cached or sync IO 4. athread can call fsync every so many transactions or every so many seconds 5. another thread or program is used in conjunction with this to create CPU noise Implementation estimate and comments: Implementing this work from scratch will be about 300 lines of C code, estimated to require 10 person days of work. This includes a couple of days of initial setup and about 3 days of final testing-landing time. This work is functionally similar to #10960 "Document and improve ior for IOkit". It''s also similar to llverfs utility we''d implemented last year. We may want to generalize them in the interest of having to maintain less code. That might be more work than 10 days since #10960 is still to be done and llverfs implements a lesser amount of functionality.