I believe the question was in regards to which formula to use. There are two 
different formulas here [1] and here [2].

The difference being the additional steps used to calculate the appropriate PG 
counts for a pool. In Nautilus though, this mostly moot as the mgr service now 
has a module to automatically scale PG's. It would be great to see how this 
could be back ported to Mimic or Luminous though. 😉

[1]
https://ceph.com/pgcalc_assets/pgcalc.html
(this one is used by the PGCalc javascript)

[2]
https://ceph.com/pgcalc/


________________________________
From: ceph-users <ceph-users-boun...@lists.ceph.com> on behalf of David Turner 
<drakonst...@gmail.com>
Sent: Thursday, February 28, 2019 10:34 PM
To: Krishna Venkata
Cc: ceph-users
Subject: Re: [ceph-users] PG Calculations Issue

Those numbers look right for a pool only containing 10% of your data. Now 
continue to calculate the pg counts for the remaining 90% of your data.

On Wed, Feb 27, 2019, 12:17 PM Krishna Venkata 
<kvenkata...@gmail.com<mailto:kvenkata...@gmail.com>> wrote:

Greetings,


I am having issues in the way PGs are calculated in https://ceph.com/pgcalc/ 
[Ceph PGs per Pool Calculator ] and the formulae mentioned in the site.

Below are my findings

The formula to calculate PGs as mentioned in the https://ceph.com/pgcalc/ :

1.      Need to pick the highest value from either of the formulas

(( Target PGs per OSD ) x ( OSD # ) x ( %Data ))/(size)

Or

( OSD# ) / ( Size )

2.      The output value is then rounded to the nearest power of 2

  1.  If the nearest power of 2 is more than 25% below the original value, the 
next higher power of 2 is used.



Based on the above procedure, we calculated PGs for 25, 32 and 64 OSDs

Our Dataset:

%Data: 0.10

Target PGs per OSD: 100

OSDs 25, 32 and 64



For 25 OSDs



(100*25* (0.10/100))/(3) = 0.833



( 25 ) / ( 3 ) = 8.33



1. Raw pg num 8.33  ( Since we need to pick the highest of (0.833, 8.33))

2. max pg 16 ( For, 8.33 the nearest power of 2 is 16)

3. 16 > 2.08  ( 25 % of 8.33 is 2.08 which is more than 25% the power of 2)



So 16 PGs

•  GUI Calculator gives the same value and matches with Formula.



For 32 OSD



(100*32*(0.10/100))/3 = 1.066

( 32 ) / ( 3 ) = 10.66



1. Raw pg num 10.66 ( Since we need to pick the highest of (1.066, 10.66))

2. max pg 16 ( For, 10.66 the nearest power of 2 is 16)

3.  16 > 2.655 ( 25 % of 10.66 is 2.655 which is more than 25% the power of 2)



So 16 PGs

•  GUI Calculator gives different value (32 PGs) which doesn’t match with 
Formula.



For 64 OSD



(100 * 64 * (0.10/100))/3 = 2.133

( 64 ) / ( 3 ) 21.33



1. Raw pg num 21.33 ( Since we need to pick the highest of (2.133, 21.33))

2. max pg 32 ( For, 21.33 the nearest power of 2 is 32)

3. 32 > 5.3325 ( 25 % of 21.33 is 5.3325 which is more than 25% the power of 2)



So 32 PGs

•  GUI Calculator gives different value (64 PGs) which doesn’t match with 
Formula.



We checked the PG calculator logic from [ 
https://ceph.com/pgcalc_assets/pgcalc.js ] which is not matching from above 
formulae.



Can someone Guide/reference us to correct formulae to calculate PGs.



Thanks in advance.



Regards,

Krishna Venkata

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

Reply via email to