[Gluster-devel] FOP ratelimit?

Joseph Fernandes josferna at redhat.com
Thu Sep 10 11:59:08 UTC 2015

Hi Guys,

Have we given thought about other IO scheduling algorithms like mclock algorithm [1], used by vmware for their QOS solution.
Plus another point to keep in mind here is the distributed nature of the solution. Its easier to think of a brick
controlling the throughput for a client or a tenant. But how would this work in collaboration and scale with all the
bricks together, what I am talking about is Distributed QOS.


[1] http://www.gluster.org/community/documentation/index.php/File:Qos.odp

----- Original Message -----
From: "Venky Shankar" <vshankar at redhat.com>
To: "Raghavendra Gowdappa" <rgowdapp at redhat.com>
Cc: "Gluster Devel" <gluster-devel at gluster.org>
Sent: Thursday, September 10, 2015 12:16:41 PM
Subject: Re: [Gluster-devel] FOP ratelimit?

On Thu, Sep 3, 2015 at 11:36 AM, Raghavendra Gowdappa
<rgowdapp at redhat.com> wrote:
> ----- Original Message -----
>> From: "Emmanuel Dreyfus" <manu at netbsd.org>
>> To: "Raghavendra Gowdappa" <rgowdapp at redhat.com>, "Pranith Kumar Karampuri" <pkarampu at redhat.com>
>> Cc: gluster-devel at gluster.org
>> Sent: Wednesday, September 2, 2015 8:12:37 PM
>> Subject: Re: [Gluster-devel] FOP ratelimit?
>> Raghavendra Gowdappa <rgowdapp at redhat.com> wrote:
>> > Its helpful if you can give some pointers on what parameters (like
>> > latency, throughput etc) you want us to consider for QoS.
>> Full blown QoS would be nice, but a first line of defense against
>> resource hogs seems just badly required.
>> A bare minimum could be to process client's FOP in a round robin
>> fashion. That way even if one client sends a lot of FOPs, there is
>> always some window for others to slip in.
>> Any opinion?
> As of now we depend on epoll/poll events informing servers about incoming messages. All sockets are put in the same event-pool represented by a single poll-control fd. So, the order of our processing of msgs from various clients really depends on how epoll/poll picks events across multiple sockets. Do poll/epoll have any sort of scheduling? or is it random? Any pointers on this are appreciated.

I haven't come across any kind of scheduling for picking events for
sockets. Routers use synthetic throttling for traffic shaping. Most
commonly used technique is by using TBF (token bucket filter) to
"induce" latency for outbound traffic. Lustre had some work[1] done
for QoS along the lines of TBF.


[1]: http://cdn.opensfs.org/wp-content/uploads/2014/10/7-DDN_LiXi_lustre_QoS.pdf

>> --
>> Emmanuel Dreyfus
>> http://hcpnet.free.fr/pubz
>> manu at netbsd.org
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at gluster.org
> http://www.gluster.org/mailman/listinfo/gluster-devel
Gluster-devel mailing list
Gluster-devel at gluster.org

More information about the Gluster-devel mailing list