One of the options that a colleague of mine came up with is related to the on disk directory structure of the objects. I believe Swift hashes every object, uses the trailing N bytes of the hash itself to name the directory into which this object is put. Is this configurable in any way? For e.g. can I try and put many objects into a single directory by making N = 1. This will reduce the amount of work done when a single object is written.
What do you think? -Shri On Sat, Mar 1, 2014 at 2:25 PM, Shrinand Javadekar <[email protected]> wrote: > Hi, > > I have single node Swift instance running in a VM. It has: 4 cores, 16 > GB memory and 300GB SSD disk > > I want to get the best possible throughput from this Swift instance > when, say 100 clients are writing data concurrently. Are there any > recommendations to achieve this? > > So far, I've tried the following: > > 1. I tweaked the # of workers threads in the config files and it seems > that I get best results when I have: > > # grep workers *.conf > account-server.conf:workers = 16 > container-server.conf:workers = 16 > object-server.conf:workers = 64 > proxy-server.conf:workers = 64 > > 2. I am fine with not using SSL. > 3. Sharding data across multiple containers also gives me better results. > > I think I also observed better throughput with larger objects, but the > object size I need to work with cannot be changed. I have to 64K > objects. > > With these options, the best I got was ~20MB/s, whereas a simple dd > shows that the disk is capable of ~128MB/s (1Gbps). > > Are there other options that I can tweak for getting better throughput? > > Thanks in advance. > -Shri _______________________________________________ Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack Post to : [email protected] Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
