[Lustre-discuss] Slow performance on the first IOR / iozone (Lustre)

Anand Bisen ddn at abisen.com
Sat Mar 22 11:55:13 PDT 2008


Hi,

I have been trying to understand why successive execution of iozone  
(also with dd and IOR) produces increasing performance from first run  
to third run. After the third run the performance is constant.

So when a new OSS is put into service or if an OSS server is rebooted  
and it joins the Lustre file system this characteristics is visible  
for each OST that it serves. Once the OST's reach a peak performance  
that performance is consistent, but once the OST's are unmounted and  
mounted back the same escalating performance is seen. Once the OST has  
been primed again mounting from a new client will also get's the same  
peak performance. And this characteristics is only visible for writes  
and not reads.

We have tried multiple scenario's, using one OST to multiple OST's. We  
are using "noop" as the IO scheduler on our OSS servers.

---Example with DD's---

mds2:/mnt/lustre/test # lfs setstripe foo 0 2 1         (We have tried  
each OST here same effect)
mds2:/mnt/lustre/test # dd if=/dev/zero of=foo bs=1048576 count=8192
8192+0 records in
8192+0 records out
8589934592 bytes (8.6 GB) copied, 43.7827 seconds, 196 MB/s
mds2:/mnt/lustre/test # dd if=/dev/zero of=foo bs=1048576 count=8192
8192+0 records in
8192+0 records out
8589934592 bytes (8.6 GB) copied, 33.153 seconds, 259 MB/s
mds2:/mnt/lustre/test # dd if=/dev/zero of=foo bs=1048576 count=8192
8192+0 records in
8192+0 records out
8589934592 bytes (8.6 GB) copied, 32.9747 seconds, 261 MB/s
mds2:/mnt/lustre/test # dd if=/dev/zero of=foo bs=1048576 count=8192
8192+0 records in
8192+0 records out
8589934592 bytes (8.6 GB) copied, 29.3566 seconds, 293 MB/s
mds2:/mnt/lustre/test # dd if=/dev/zero of=foo bs=1048576 count=8192
8192+0 records in
8192+0 records out
8589934592 bytes (8.6 GB) copied, 22.23 seconds, 386 MB/s
mds2:/mnt/lustre/test # dd if=/dev/zero of=foo bs=1048576 count=8192
8192+0 records in
8192+0 records out
8589934592 bytes (8.6 GB) copied, 22.236 seconds, 386 MB/s
mds2:/mnt/lustre/test # dd if=/dev/zero of=foo bs=1048576 count=8192
8192+0 records in
8192+0 records out
8589934592 bytes (8.6 GB) copied, 22.2838 seconds, 385 MB/s


---Example with IOZONE---
client-mnt # iozone -i 0 -s 10g -r 1m -t 2

         File size set to 10485760 KB
         Record Size 1024 KB
         Command line used: iozone -i 0 -s 10g -r 1m -t 2
         Output is in Kbytes/sec
         Time Resolution = 0.000001 seconds.
         Processor cache size set to 1024 Kbytes.
         Processor cache line size set to 32 bytes.
         File stride size set to 17 * record size.
         Throughput test with 2 processes
         Each process writes a 10485760 Kbyte file in 1024 Kbyte records

         Children see throughput for  2 initial writers  =  151909.33  
KB/sec
         Parent sees throughput for  2 initial writers   =  150657.64  
KB/sec
         Min throughput per process                      =   75476.66  
KB/sec
         Max throughput per process                      =   76432.67  
KB/sec
         Avg throughput per process                      =   75954.66  
KB/sec
         Min xfer                                        = 10354688.00  
KB

         Children see throughput for  2 rewriters        =  249051.45  
KB/sec
         Parent sees throughput for  2 rewriters         =  247016.15  
KB/sec
         Min throughput per process                      =  124407.29  
KB/sec
         Max throughput per process                      =  124644.16  
KB/sec
         Avg throughput per process                      =  124525.72  
KB/sec
         Min xfer                                        = 10465280.00  
KB


#######Second RUN

         Children see throughput for  2 initial writers  =  244629.49  
KB/sec
         Parent sees throughput for  2 initial writers   =  242007.64  
KB/sec
         Min throughput per process                      =  121223.02  
KB/sec
         Max throughput per process                      =  123406.48  
KB/sec
         Avg throughput per process                      =  122314.75  
KB/sec
         Min xfer                                        = 10300416.00  
KB

         Children see throughput for  2 rewriters        =  239316.48  
KB/sec
         Parent sees throughput for  2 rewriters         =  238836.01  
KB/sec
         Min throughput per process                      =  119017.80  
KB/sec
         Max throughput per process                      =  120298.68  
KB/sec
         Avg throughput per process                      =  119658.24  
KB/sec
         Min xfer                                        = 10375168.00  
KB

#######Third RUN

         Children see throughput for  2 initial writers  =  245567.60  
KB/sec
         Parent sees throughput for  2 initial writers   =  241539.16  
KB/sec
         Min throughput per process                      =  121565.91  
KB/sec
         Max throughput per process                      =  124001.69  
KB/sec
         Avg throughput per process                      =  122783.80  
KB/sec
         Min xfer                                        = 10279936.00  
KB

         Children see throughput for  2 rewriters        =  240782.11  
KB/sec
         Parent sees throughput for  2 rewriters         =  240390.69  
KB/sec
         Min throughput per process                      =  119717.36  
KB/sec
         Max throughput per process                      =  121064.75  
KB/sec
         Avg throughput per process                      =  120391.05  
KB/sec
         Min xfer                                        = 10370048.00  
KB

Any insight on explaining this behavior would be really appreciated.

Thanks

Anand





More information about the lustre-discuss mailing list