Re: PROBLEM: CephFS write performance drops by 90%

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

 



Dear Ilya,


Am 22.12.22 um 16:25 schrieb Ilya Dryomov:
On Thu, Dec 22, 2022 at 3:41 PM Roose, Marco <marco.roose@xxxxxxxxxxxxx> wrote:

thanks for providing the revert. Using that commit all is fine:

~# uname -a
Linux S1020-CephTest 6.1.0+ #1 SMP PREEMPT_DYNAMIC Thu Dec 22 14:30:22 CET
2022 x86_64 x86_64 x86_64 GNU/Linux

~# rsync -ah --progress /root/test-file_1000MB /mnt/ceph/test-file_1000MB
sending incremental file list
test-file_1000MB
           1.00G 100%   90.53MB/s    0:00:10 (xfr#1, to-chk=0/1)

I attach some ceph reports taking before, during and after an rsync on a bad
kernel (5.6.0) for debugging.

I see two CephFS data pools and one of them is nearfull:

     "pool": 10,
     "pool_name": "cephfs_data",
     "create_time": "2020-11-22T08:19:53.701636+0100",
     "flags": 1,
     "flags_names": "hashpspool",

     "pool": 11,
     "pool_name": "cephfs_data_ec",
     "create_time": "2020-11-22T08:22:01.779715+0100",
     "flags": 2053,
     "flags_names": "hashpspool,ec_overwrites,nearfull",

How is this CephFS filesystem is configured?  If you end up writing to
cephfs_data_ec pool there, the slowness is expected.  nearfull makes
the client revert to synchronous writes so that it can properly return
ENOSPC error when nearfull develops into full.  That is the whole point
of the commit that you landed upon when bisecting so of course
reverting it helps:

-   if (ceph_osdmap_flag(&fsc->client->osdc, CEPH_OSDMAP_NEARFULL))
+   if ((map_flags & CEPH_OSDMAP_NEARFULL) ||
+       (pool_flags & CEPH_POOL_FLAG_NEARFULL))
             iocb->ki_flags |= IOCB_DSYNC;

Well, that effect is not documented in the commit message, and for the user it’s a regression, that the existing (for the user working) configuration performs worse after updating the Linux kernel. That violates Linux’ no-regression policy, and at least needs to be better documented and explained.


Kind regards,

Paul



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

  Powered by Linux