How many objects per container?

Asked by Jasper Capel on 2011-05-26

I'm currently evaluating swift for object storage, to replace our MogileFS storage system, which is currently hosting approximately 75 million objects and growing rapidly. I can of course split these out over multiple containers, and scale the amount of container servers (which we will probably do). But I was wondering if anyone had some real world experiences as to when the amount of objects in a single container becomes a performance bottleneck (if I understand the architecture correctly, hosting the database for a single container is not sharded across multiple container servers).

Question information

English Edit question
OpenStack Object Storage (swift) Edit question
No assignee Edit question
Solved by:
Last query:
Last reply:
Launchpad Janitor (janitor) said : #1

This question was expired because it remained in the 'Open' state without activity for the last 15 days.

Jasper Capel (jasper-capel) said : #2

I'm now sizing for a maximum of 1 million objects per container, but would still be interested in some real world numbers.

Best gholt (gholt) said : #3

This depends greatly on the performance of the hardware and what services are colocated on that hardware. For instance, a rather standard machine with a standard hard drive running all services can handle, at load, about 30 puts per second (up to 70 puts per second with low load) per container up to around 10 million objects. We usually recommend trying to keep containers under 10 million objects.

However, we've also tested using an array of SSDs (container servers use up all the IOPS you can give them) and we were at about 400 puts per second on a 1 billion object container. Of course, the server was doing nothing else but that one container at the time.

So, as you can see, the performance can vary quite a bit, but 10 million objects per container is usually a pretty good target.

Jasper Capel (jasper-capel) said : #4


Jasper Capel (jasper-capel) said : #5

Thanks gholt, that solved my question.