Project

General

Profile

Actions

Bug #7385

closed

Objectcacher setting max object counts too low

Added by Mark Nelson about 10 years ago. Updated almost 9 years ago.

Status:
Resolved
Priority:
High
Assignee:
Jason Dillaman
Target version:
-
% Done:

0%

Source:
Development
Tags:
Backport:
hammer,firefly
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

It appears that the objectcacher is setting max object counts based on the max dirty data size and object size. With default RBD block size and RBD cache values, this was max objects = 42 according to objectcacher logs. In performance testing performed on our new test hardware, this caused severe rbd cache thrashing with high amounts of concurrent IO (8 threads with io_depth = 16 each). With lower amounts of concurrent IO, journal writes on the OSDs were on average around 400-450K in size (with a default 512 max_sectors_kb value). With higher concurrent IOs, this decreased to around 12-16K default journal write size and significantly lower performance.

This may also explain the odd graphs that we saw in our cuttlefish testing with multiple volumes on a QEMU/KVM guest as the io depth increased:

http://ceph.com/wp-content/uploads/2014/07/cuttlefish-rbd_btrfs-write-0004K.png

This can likely be worked around in current code by increasing the rbd dirty cache limits, but ultimately may be fixed by changing the behavior for how object limits are set in the objectcacher.


Related issues 2 (0 open2 closed)

Copied to rbd - Backport #11730: Objectcacher setting max object counts too lowResolvedLoïc Dachary02/10/2014Actions
Copied to rbd - Backport #11731: Objectcacher setting max object counts too lowResolvedNathan Cutler02/10/2014Actions
Actions #1

Updated by Josh Durgin about 10 years ago

  • Category changed from ObjectCacher to librbd

This is set by librbd or ceph-fuse's Client.cc after creating the objectcacher. There's already a config option for Client.cc, so just librbd needs fixing.

Actions #2

Updated by Mark Nelson about 10 years ago

Does it make sense to be exposing this to librbd/client.cc at all vs just directly setting it via a config option? (or even eliminating it?)

Actions #3

Updated by Sage Weil about 10 years ago

  • Priority changed from Normal to Urgent
Actions #4

Updated by Ian Colle about 10 years ago

  • Assignee set to David Zafman
Actions #5

Updated by Josh Durgin about 10 years ago

  • Status changed from New to Fix Under Review
  • Assignee changed from David Zafman to Josh Durgin
  • Backport set to emperor, dumpling
Actions #6

Updated by Sage Weil about 10 years ago

  • Status changed from Fix Under Review to Pending Backport
Actions #7

Updated by Sage Weil about 10 years ago

  • Status changed from Pending Backport to 12
Actions #8

Updated by Sage Weil about 10 years ago

  • Status changed from 12 to Pending Backport

This now leaks memory.. presumably stray Object's the cache that never get cleaned up.

Let's just increase the object count to be something that's pretty big? Or auto-scale based on the cache size?

Actions #9

Updated by Ian Colle about 10 years ago

  • Status changed from Pending Backport to 12
Actions #10

Updated by Sage Weil about 10 years ago

  • Status changed from 12 to In Progress
Actions #11

Updated by Josh Durgin about 10 years ago

  • Backport deleted (emperor, dumpling)
Actions #12

Updated by Sage Weil about 10 years ago

  • Priority changed from Urgent to High
Actions #13

Updated by Sage Weil over 9 years ago

  • Project changed from Ceph to rbd
  • Category deleted (librbd)
  • Source changed from other to Development
Actions #14

Updated by Josh Durgin over 9 years ago

  • Status changed from In Progress to 12
  • Assignee deleted (Josh Durgin)
Actions #15

Updated by Jason Dillaman about 9 years ago

  • Status changed from 12 to In Progress
  • Assignee set to Jason Dillaman
Actions #16

Updated by Jason Dillaman about 9 years ago

  • Backport set to hammer,firefly
Actions #17

Updated by Josh Durgin about 9 years ago

  • Status changed from In Progress to Pending Backport

commit:0b378942c4f1b79cb65967f2d3466728ca1c8d5b

Actions #20

Updated by Nathan Cutler almost 9 years ago

  • Status changed from Pending Backport to Resolved
  • Regression set to No
Actions

Also available in: Atom PDF