Thank you for your reply, answers below.

> On 23 Jun 2015, at 13:15, Christian Balzer <ch...@gol.com> wrote:
> 
> 
> Hello,
> 
> On Tue, 23 Jun 2015 12:53:45 +0200 Jan Schermer wrote:
> 
>> I use CFQ but I have just discovered it completely _kills_ writes when
>> also reading (doing backfill for example)
>> 
> I've seen similar things, but for the record and so people can correctly
> reproduce things, please be specific.
> 
> For starters, what version of Ceph?
> 

0.67.12 dumpling (newest git)
I know it’s ancient :-)

> CFQ with what kernel, with what filesystem, on what type of OSD (HDD, HDD
> with on disk journal, HDD with SSD journal)?
> 

My test was done on the block device, not filesystem, on a SSD.
I tested several scenarios but the most simple one is to run

fio --filename=/dev/sda --direct=1 --sync=1 --rw=write --bs=4k --numjobs=1 
--iodepth=1 --runtime=60 --time_based --group_reporting --name=test 
--ioengine=aio
and
fio --filename=/dev/sda --direct=1 --sync=1 --rw=randread --bs=32k --numjobs=1 
--iodepth=8 --runtime=60 --time_based --group_reporting --name=test 
--ioengine=aio

You will see the first fio IOPS drop to ~10.

This will of course depend on the drive and this is also saturating the SATA 2 
capacity I have on my test machine (which might be the real cause).

I am still testing various combinations, different drives have different 
thresholds (some fall to the bottom only with 128k block size which is larger 
than my average IO on the drives - not accounting for backfills).

There’s a point though where it just hits the bottom and no amount of 
cfq-tuning magic can help.


>> If I run a fio job for synchronous writes and at the same time run a fio
>> job for random reads, writes drop to 10 IOPS (oops!). Setting io
>> priority with ionice works nicely maintaining ~250 IOPS for writes while
>> throttling reads.
>> 
> Setting the priority to what (level and type) on which process?
> The fio ones, the OSD ones?

ionice -c3 fio-for-read-test

this sets the class to idle
setting the priority to 7 but leaving in on best-effort helps, but not much (10 
x 30 IOPs)

> 
> Scrub and friends can really wreck havoc on one of my cluster which is 99%
> writes, same goes for the few times it has to do reads (VMs booting).

Scrubbing is fine on my cluster, backfilling kills it with new drives - that’s 
what I’m investigating right now and I encountered this. So before I go 
scratching my head I thought I’d ask here - I’m probably not the first one to 
have these kind of problems :-)

Thanks

Jan

> 
> Christian
> 
>> I looked at osd_disk_thread_ioprio_class - for some reason documentation
>> says “idle” “rt” “be” for possible values, but it only accepts numbers
>> (3 should be idle) in my case - and doesn’t seem to do anything in
>> regards to slow requests. Do I need to restart the OSD for it to take
>> effect? It actually looks like it made things even worse for me…
>> 
>> Changing the scheduler to deadline improves the bottom line a a lot for
>> my benchmark, but large amount of reads can still drop that to 30 IOPS -
>> contrary to CFQ which maintains steady 250 IOPS for writes even under
>> read load.
>> 
>> What would be the recommendation here? Did someone test this extensively
>> before?
>> 
>> thanks
>> 
>> Jan
>> 
>> _______________________________________________
>> ceph-users mailing list
>> ceph-users@lists.ceph.com
>> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
> 
> 
> -- 
> Christian Balzer        Network/Systems Engineer                
> ch...@gol.com         Global OnLine Japan/Fusion Communications
> http://www.gol.com/

_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to