[Openstack] [Swift] PUT requests sensitive to latency?

Shrinand Javadekar shrinand at maginatics.com
Tue Jun 24 17:14:34 UTC 2014


Communication between proxy and object servers shouldn't be affected by the
latency between the proxy server and the client, right? Also, I'm using a
single node Swift cluster. So there should be only 1 copy of the object
(along with any other I/Os required for the container and accound DBs).

Everything that happens on the Swift side should be the same (if there is
no back-n-forth between the Swift server and client) irrespective of how
much time it takes for communication between the Swift cluster and the
client.

I had made one mistake when experimenting with the network_chunk_size
and disk_chunk_size config options. These are supposed to go to the
object-server.conf and not the proxy-server.conf. I made that change and
restarted all the swift servers. However, I don't see any improvement. My
current object-server.conf looks like this:
http://pastie.org/private/exjiho1cbl80mbruythama

What do you think?

-Shri


On Tue, Jun 24, 2014 at 12:29 AM, Hua ZZ Zhang <zhuadl at cn.ibm.com> wrote:

> My guess is the object data need to be transmitted to Swift cluster before
> the status code returned.
> It can't be returned immediately before 2/3 I/O completed. Otherwise it is
> not consistent to tell client
> it succeed.
>
> -Edward Zhang
>
>
> [image: Inactive hide details for Shrinand Javadekar ---2014-06-24 下午
> 03:12:14---Shrinand Javadekar <shrinand at maginatics.com>]Shrinand
> Javadekar ---2014-06-24 下午 03:12:14---Shrinand Javadekar <
> shrinand at maginatics.com>
>
>
>    *Shrinand Javadekar <shrinand at maginatics.com
>    <shrinand at maginatics.com>>*
>
>    2014-06-24 下午 03:05
>
>
> To
>
>
>    "openstack at lists.openstack.org" <openstack at lists.openstack.org>
>
>
> cc
>
>
> Subject
>
>
>    [Openstack] [Swift] PUT requests sensitive to latency?
>
>
> Hi,
>
> I have a single node swift cluster. I measured the time taken to
> complete a PUT request that originated from three different client
> machines. Each client was writing a single 256K byte object.
>
> Note that the time measured was only the time taken on the Swift
> cluster itself. I started the timer after the request was received by
> the swift proxy-server process and stopped it when that method
> returned an HTTP status to the client. This is not the time on the
> client side and therefore *ideally* should not be affected by the
> latency between the client and the Swift cluster.
>
> However, it appears that the above is not true. The time required to
> complete the request is related to the latency between the client and
> swift cluster.
>
> Here are the results:
>
> * Client 1:
> Ping time 28ms
> PUT request time: ~180 ms
>
> * Client 2:
> Ping time 4 ms
> PUT request time: ~35 ms
>
> * Client 3:
> Ping time 0.04 ms
> PUT request time: ~10 ms
>
> Details about the experiment:
>
> * This is a single node Swift installation (not devstack) and uses
> SSDs to store metadata as well as data. This is just a test setup. In
> production, we won't have SSDs for storing data.
> * The above numbers are average of 50 PUT requests.
> * The Swift cluster was not being used for anything else during the
> experiment.
> * The client used was the jclouds library written in java. I had
> disable a config option that used the Expect 100-Continue header; i.e.
> the requests were not using the Expect 100-Continue header.
> * I tried increasing the size of the following options in the
> proxy-server.conf and restarting Swift.
> disk_chunk_size = 262144
> network_chunk_size = 262144
> ...
> [app:proxy-server]
> object_chunk_size = 262144
> client_chunk_size = 262144
>
> However, this didn't show any improvement in the time required for PUT
> requests.
>
> Am I missing anything? Does Swift require an extra round trip from the
> client for completing PUT requests? Any ways of avoiding that?
>
> Thanks in advance.
> -Shri
>
> _______________________________________________
> Mailing list:
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
> Post to     : openstack at lists.openstack.org
> Unsubscribe :
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20140624/2e2d7b1a/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pic09941.gif
Type: image/gif
Size: 1255 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20140624/2e2d7b1a/attachment.gif>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ecblank.gif
Type: image/gif
Size: 45 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20140624/2e2d7b1a/attachment-0001.gif>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: graycol.gif
Type: image/gif
Size: 105 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20140624/2e2d7b1a/attachment-0002.gif>


More information about the Openstack mailing list