Re: CPUs, threads, and speed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jan 15, 2020 at 1:04 PM Andrey Kuzmin <andrey.v.kuzmin@xxxxxxxxx> wrote:
>
> On Wed, Jan 15, 2020 at 8:29 PM Gruher, Joseph R
> <joseph.r.gruher@xxxxxxxxx> wrote:
> >
> > > -----Original Message-----
> > > From: fio-owner@xxxxxxxxxxxxxxx <fio-owner@xxxxxxxxxxxxxxx> On Behalf Of
> > > Mauricio Tavares
> > > Sent: Wednesday, January 15, 2020 7:51 AM
> > > To: fio@xxxxxxxxxxxxxxx
> > > Subject: CPUs, threads, and speed
> > >
> > > Let's say I have a config file to preload drive that looks like this (stolen from
> > > https://github.com/intel/fiovisualizer/blob/master/Workloads/Precondition/fill
> > > _4KRandom_NVMe.ini)
> > >
> > > [global]
> > > name=4k random write 4 ios in the queue in 32 queues
> > > filename=/dev/nvme0n1
> > > ioengine=libaio
> > > direct=1
> > > bs=4k
> > > rw=randwrite
> > > iodepth=4
> > > numjobs=32
> > > buffered=0
> > > size=100%
> > > loops=2
> > > randrepeat=0
> > > norandommap
> > > refill_buffers
> > >
> > > [job1]
> > >
> > > That is taking a ton of time, like days to go. Is there anything I can do to speed it
> > > up?
> >
> > When you say preload, do you just want to write in the full capacity of the drive?
>
> I believe that preload here means what in SSD world is called drive
> preconditioning. It means bringing a fresh drive into steady mode
> where it gives you the true performance in production over months of
> use rather than the unrealistic fresh drive random write IOPS.
>
> > A sequential workload with larger blocks will be faster,
>
> No, you cannot get the job done by sequential writes since it doesn't
> populate FTL translation tables like random writes do.
>
> As to taking a ton, the rule of thumb is to give the SSD 2xcapacity
> worth of random writes. At today speeds, that should take just a
> couple of hours.
>
      When you say 2xcapacity worth of random writes, do you mean just
setting size=200%?

> Regards,
> Andrey
>
> > like:
> >
> > [global]
> > ioengine=libaio
> > thread=1
> > direct=1
> > bs=128k
> > rw=write
> > numjobs=1
> > iodepth=128
> > size=100%
> > loops=2
> > [job00]
> > filename=/dev/nvme0n1
> >
> > Or if you have a use case where you specifically want to write it in with 4K blocks, you could probably increase your queue depth way beyond 4 and see improvement in performance, and you probably don't want to specify norandommap if you're trying to hit every block on the device.
> >
> > -Joe




[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux