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. Regards, Joe [1] http://www.gluster.org/community/documentation/index.php/File:Qos.odp ----- Original Message ----- From: "Venky Shankar" <vshankar@xxxxxxxxxx> To: "Raghavendra Gowdappa" <rgowdapp@xxxxxxxxxx> Cc: "Gluster Devel" <gluster-devel@xxxxxxxxxxx> Sent: Thursday, September 10, 2015 12:16:41 PM Subject: Re: FOP ratelimit? On Thu, Sep 3, 2015 at 11:36 AM, Raghavendra Gowdappa <rgowdapp@xxxxxxxxxx> wrote: > > > ----- Original Message ----- >> From: "Emmanuel Dreyfus" <manu@xxxxxxxxxx> >> To: "Raghavendra Gowdappa" <rgowdapp@xxxxxxxxxx>, "Pranith Kumar Karampuri" <pkarampu@xxxxxxxxxx> >> Cc: gluster-devel@xxxxxxxxxxx >> Sent: Wednesday, September 2, 2015 8:12:37 PM >> Subject: Re: FOP ratelimit? >> >> Raghavendra Gowdappa <rgowdapp@xxxxxxxxxx> 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. HTH. [1]: http://cdn.opensfs.org/wp-content/uploads/2014/10/7-DDN_LiXi_lustre_QoS.pdf > >> >> -- >> Emmanuel Dreyfus >> http://hcpnet.free.fr/pubz >> manu@xxxxxxxxxx >> > _______________________________________________ > Gluster-devel mailing list > Gluster-devel@xxxxxxxxxxx > http://www.gluster.org/mailman/listinfo/gluster-devel _______________________________________________ Gluster-devel mailing list Gluster-devel@xxxxxxxxxxx http://www.gluster.org/mailman/listinfo/gluster-devel _______________________________________________ Gluster-devel mailing list Gluster-devel@xxxxxxxxxxx http://www.gluster.org/mailman/listinfo/gluster-devel