The settings don't completely disable it, they push it back so that it won't happen for a very long time. I based doing my offline splitting every month because after 5-6 weeks I found that our PGs started splitting on their own with the increased settings... so I schedule a task to split them offline every 4 weeks.
Note that anything that moves PGs around between OSDs will build the PG on the new OSD with the current settings in the config file so you should schedule to do offline splitting shortly after adding/removing storage.
On Wed, Mar 14, 2018 at 1:43 PM David C <dcsysengineer@xxxxxxxxx> wrote:
On Mon, Feb 26, 2018 at 6:08 PM, David Turner <drakonstein@xxxxxxxxx> wrote:The slow requests are absolutely expected on filestore subfolder splitting. You can however stop an OSD, split it's subfolders, and start it back up. I perform this maintenance once/month. I changed my settings to [1]these, but I only suggest doing something this drastic if you're committed to manually split your PGs regularly. In my environment that needs to be once/month.Hi David, to be honest I've still not completely got my head around the filestore splitting, but one thing's for sure it's causing major IO issues on my small cluster. If I understand correctly, your settings in [1] completely disable "online" merging and splitting. Have I got that right?Why is your filestore_merge_threshold -16 as opposed to -1?
You say you need to do your offline splitting on a monthly basis in your environment but how are you arriving at that conclusion? What would I need to monitor to discover how frequently I would need to do a split?Thanks for all your help on thisAlong with those settings, I use [2]this script to perform the subfolder splitting. It will change your config file to [3]these settings, perform the subfolder splitting, change them back to what you currently have, and start your OSDs back up. using a negative merge threshold prevents subfolder merging which is useful for some environments.The script automatically sets noout and unset it for you afterwards as well it won't start unless the cluster is health_ok. Feel free to use it as is or pick from it what's useful for you. I highly suggest that anyone feeling the pains of subfolder splitting to do some sort of offline splitting to get through it. If you're using some sort of config management like salt or puppet, be sure to disable it so that the config won't be overwritten while the subfolders are being split.
[1] filestore_merge_threshold = -16filestore_split_multiple = 256[2] https://gist.github.com/drakonstein/cb76c7696e65522ab0e699b7ea1ab1c4[3] filestore_merge_threshold = -1filestore_split_multiple = 1On Mon, Feb 26, 2018 at 12:18 PM David C <dcsysengineer@xxxxxxxxx> wrote:Thanks, David. I think I've probably used the wrong terminology here, I'm not splitting PGs to create more PGs. This is the PG folder splitting that happens automatically, I believe it's controlled by the "filestore_split_multiple" setting (which is 8 on my OSDs, I believe that's the Luminous default...). Increasing heartbeat grace would probably still be a good idea to prevent the flapping. I'm trying to understand if the slow requests is to be expected or if I need to tune something or look at hardware.On Mon, Feb 26, 2018 at 4:19 PM, David Turner <drakonstein@xxxxxxxxx> wrote:Splitting PG's is one of the most intensive and disruptive things you can, and should, do to a cluster. Tweaking recovery sleep, max backfills, and heartbeat grace should help with this. Heartbeat grace can be set high enough to mitigate the OSDs flapping which slows things down by peering and additional recovery, while still being able to detect OSDs that might fail and go down. The recovery sleep and max backfills are the settings you want to look at for mitigating slow requests. I generally tweak those while watching iostat of some OSDs and ceph -s to make sure I'm not giving too much priority to the recovery operations so that client IO can still happen.On Mon, Feb 26, 2018 at 11:10 AM David C <dcsysengineer@xxxxxxxxx> wrote:_______________________________________________Followed by:I'm seeing some OSDs getting marked down, it appears to be related to PG splitting, e.g:Hi AllI have a 12.2.1 cluster, all filestore OSDs, OSDs are spinners, journals on NVME. Cluster primarily used for CephFS, ~20M objects.2018-02-26 10:27:27.935489 7f140dbe2700 1 _created [C,D] has 5121 objects, starting split.2018-02-26 10:27:58.242551 7f141cc3f700 0 log_channel(cluster) log [WRN] : 9 slow requests, 5 included below; oldest blocked for > 30.308128 secs
2018-02-26 10:27:58.242563 7f141cc3f700 0 log_channel(cluster) log [WRN] : slow request 30.151105 seconds old, received at 2018-02-26 10:27:28.091312: osd_op(mds.0.5339:811969 3.5c 3:3bb9d743:::200.0018c6c4:head [write 73416~5897 [fadvise_dontneed]] snapc 0=[] ondisk+write+known_if_redirected+full_force e13994) currently commit_sent
2018-02-26 10:27:58.242569 7f141cc3f700 0 log_channel(cluster) log [WRN] : slow request 30.133441 seconds old, received at 2018-02-26 10:27:28.108976: osd_op(mds.0.5339:811970 3.5c 3:3bb9d743:::200.0018c6c4:head [write 79313~4866 [fadvise_dontneed]] snapc 0=[] ondisk+write+known_if_redirected+full_force e13994) currently commit_sent
2018-02-26 10:27:58.242574 7f141cc3f700 0 log_channel(cluster) log [WRN] : slow request 30.083401 seconds old, received at 2018-02-26 10:27:28.159016: osd_op(mds.9174516.0:444202 3.5c 3:3bb9d743:::200.0018c6c4:head [stat] snapc 0=[] ondisk+read+rwordered+known_if_redirected+full_force e13994) currently waiting for rw locks
2018-02-26 10:27:58.242579 7f141cc3f700 0 log_channel(cluster) log [WRN] : slow request 30.072310 seconds old, received at 2018-02-26 10:27:28.170107: osd_op(mds.0.5339:811971 3.5c 3:3bb9d743:::200.0018c6c4:head [write 84179~1941 [fadvise_dontneed]] snapc 0=[] ondisk+write+known_if_redirected+full_force e13994) currently waiting for rw locks
2018-02-26 10:27:58.242584 7f141cc3f700 0 log_channel(cluster) log [WRN] : slow request 30.308128 seconds old, received at 2018-02-26 10:27:27.934288: osd_op(mds.0.5339:811964 3.5c 3:3bb9d743:::200.0018c6c4:head [write 0~62535 [fadvise_dontneed]] snapc 0=[] ondisk+write+known_if_redirected+full_force e13994) currently commit_sent
2018-02-26 10:27:59.242768 7f141cc3f700 0 log_channel(cluster) log [WRN] : 47 slow requests, 5 included below; oldest blocked for > 31.308410 secs
2018-02-26 10:27:59.242776 7f141cc3f700 0 log_channel(cluster) log [WRN] : slow request 30.349575 seconds old, received at 2018-02-26 10:27:28.893124:I'm also experiencing some MDS crash issues which I think could be related.Is there anything I can do to mitigate the slow requests problem? The rest of the time the cluster is performing pretty well.Thanks,David
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
_______________________________________________ ceph-users mailing list ceph-users@xxxxxxxxxxxxxx http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com