Cache Pool writing too much on ssds, poor performance?

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

 



Hi, 

I have created the cache tier using the following commands: 

95 ceph osd pool create cache-pool-ssd 2048 2048 ; ceph osd pool set cache-pool-ssd crush_ruleset 4 
124 ceph osd pool set cache-pool-ssd size 2 
126 ceph osd pool set cache-pool-ssd min_size 1 
130 ceph osd tier add Primary-ubuntu-1 cache-pool-ssd 
131 ceph osd tier cache-mode cache-pool-ssd writeback 
132 ceph osd tier set-overlay Primary-ubuntu-1 cache-pool-ssd 
135 ceph osd pool set cache-pool-ssd hit_set_type bloom 
136 ceph osd pool set cache-pool-ssd hit_set_count 1 
137 ceph osd pool set cache-pool-ssd hit_set_period 3600 
138 ceph osd pool set cache-pool-ssd target_max_bytes 500000000000 
143 ceph osd pool set cache-pool-ssd cache_target_full_ratio 0.8 


SInce the initial install i've increased the target_max_bytes to 800GB. The rest of the settings are left as default. 

Did I miss something that might explain the behaviour that i am experiencing? 

Cheers 

Andrei 


----- Original Message -----

From: "Xiaoxi Chen" <xiaoxi.chen@xxxxxxxxx> 
To: "Andrei Mikhailovsky" <andrei at arhont.com>, "ceph-users" <ceph-users at lists.ceph.com> 
Sent: Thursday, 11 September, 2014 2:00:31 AM 
Subject: RE: Cache Pool writing too much on ssds, poor performance? 



Could you show your cache tiering configuration? Especially this three parameters. 

ceph osd pool set hot-storage cache_target_dirty_ratio 0.4 ceph osd pool set hot-storage cache_target_full_ratio 0.8 ceph osd pool set {cachepool} target_max_bytes {#bytes} 




From: ceph-users [mailto:ceph-users-bounces@xxxxxxxxxxxxxx] On Behalf Of Andrei Mikhailovsky 
Sent: Wednesday, September 10, 2014 8:51 PM 
To: ceph-users 
Subject: Cache Pool writing too much on ssds, poor performance? 



Hello guys, 

I am experimeting with cache pool and running some tests to see how adding the cache pool improves the overall performance of our small cluster. 

While doing testing I've noticed that it seems that the cache pool is writing too much on the cache pool ssds. Not sure what the issue here, perhaps someone could help me understand what is going on. 

My test cluster is: 
2 x OSD servers (Each server has: 24GB ram, 12 cores, 8 hdd osds, 2 ssds journals, 2 ssds for cache pool, 40gbit/s infiniband network capable of 25gbit/s over ipoib). Cache pool is set to 500GB with replica of 2. 
4 x host servers (128GB ram, 24 core, 40gbit/s infiniband network capable of 12gbit/s over ipoib) 

So, my test is: 
Simple tests using the following command: "dd if=/dev/vda of=/dev/null bs=4M count=2000 iflag=direct". I am concurrently starting this command on 10 virtual machines which are running on 4 host servers. The aim is to monitor the use of cache pool when reading the same data over and over again. 


Running the above command for the first time does what I was expecting. The osds are doing a lot of reads, the cache pool does a lot of writes (around 250-300MB/s per ssd disk) and no reads. The dd results for the guest vms are poor. The results of the "ceph -w" shows consistent performance across the time. 

Running the above for the second and consequent times produces IO patterns which I was not expecting at all. The hdd osds are not doing much (this part I expected), the cache pool still does a lot of writes and very little reads! The dd results have improved just a little, but not much. The results of the "ceph -w" shows performance breaks over time. For instance, I have a peak of throughput in the first couple of seconds (data is probably coming from the osd server's ram at high rate). After the peak throughput has finished, the ceph reads are done in the following way: 2-3 seconds of activity followed by 2 seconds if inactivity) and it keeps doing that throughout the length of the test. So, to put the numbers in perspective, when running tests over and over again I would get around 2000 - 3000MB/s for the first two seconds, followed by 0MB/s for the next two seconds, followed by around 150-250MB/s over 2-3 seconds, followed by 0MB/s for 2 seconds, followed 150-250MB/s over 2-3 seconds, followed by 0MB/s over 2 secods, and the pattern repeats until the test is done. 


I kept running the dd command for about 15-20 times and observed the same behariour. The cache pool does mainly writes (around 200MB/s per ssd) when guest vms are reading the same data over and over again. There is very little read IO (around 20-40MB/s). Why am I not getting high read IO? I have expected the 80GB of data that is being read from the vms over and over again to be firmly recognised as the hot data and kept in the cache pool and read from it when guest vms request the data. Instead, I mainly get writes on the cache pool ssds and I am not really sure where these writes are coming from as my hdd osds are being pretty idle. 

>From the overall tests so far, introducing the cache pool has drastically slowed down my cluster (by as much as 50-60%). 

Thanks for any help 

Andrei 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ceph.com/pipermail/ceph-users-ceph.com/attachments/20140911/d3ae7ebd/attachment.htm>


[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Ceph Dev]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux