From: Paride Legovini <pl@ninthfloor.org>
To: lartc@vger.kernel.org
Subject: Re: Limit bandwidth per-user (uid/gid)
Date: Mon, 23 Dec 2013 06:18:45 +0000 [thread overview]
Message-ID: <20131223061845.GF25985@ninthfloor.org> (raw)
In-Reply-To: <20131222171008.GE25985@ninthfloor.org>
Dear Joseph,
thanks for your suggestion, using cgroups is probably a better option
than using --uid-owner. Still I'll have to setup a rule for each user,
but I'm coming to the conclusion that I can't avoid that.
Paride
On Sun, Dec 22, 2013 at 07:00:34PM +0100, Joseph Santaniello wrote:
> You might have a look at cgroups and net_cls to set classid for all
> the processes a user owns/starts and then make a tc filter that
> matches the classid and sends the traffic to a suitable class with the
> type of sharing/limiting you wish.
>
> Joseph
>
> On Sun, Dec 22, 2013 at 6:10 PM, Paride Legovini <pl@ninthfloor.org> wrote:
> > Dear all,
> >
> > I'm working in an Antarctic research station where our connection to the
> > Internet is a 512kbps satellite link.
> >
> > I want to set up a server where each research project has an account
> > where they send data via sftp or rsync; this data is then transferred
> > overnight to a server in Europe. My idea is to use a separate cronjob
> > or daemon for each user that runs with the user's privileges.
> >
> > What I want to do is:
> >
> > 1. Limit the total bandwidth that a group (GID) can generate. There
> > should be separate limits for inbound and outbound traffic.
> >
> > 2. Limit the bandwidth per-user (UID), so if the GID is allowed to
> > generate 384kbps of traffic, and 3 users are using the network, each
> > user can at most benefit of 128kbps. If there's only one user he gets
> > all the 384kbps.
> > Again there should be different limits for inbound and outbound
> > traffic.
> > This should work regardless the number of connections the user makes.
> >
> > I played a bit with iptables and tc, but the only way I found to do
> > something like this is to manually set a different mark for each user
> > and then use tc, but I'd prefer a solution where there's no need to set
> > up any rule manually if a user is added or removed. Also, the
> > --uid-owner option works only for outbound traffic.
> >
> > Do you have any suggestion?
> > I think that you understood the problem, so even if a different approach
> > comes to your mind please let me know.
> >
> > Thank you,
> >
> > PL
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe lartc" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe lartc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2013-12-23 6:18 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-22 17:10 Limit bandwidth per-user (uid/gid) Paride Legovini
2013-12-22 18:00 ` Joseph Santaniello
2013-12-23 3:22 ` Carl-Daniel Hailfinger
2013-12-23 6:18 ` Paride Legovini [this message]
2013-12-23 7:12 ` Paride Legovini
2013-12-23 15:38 ` Erik Auerswald
2013-12-23 16:07 ` Paride Legovini
2013-12-23 16:24 ` Joseph Santaniello
2014-01-02 22:33 ` Dave Taht
2014-01-03 0:10 ` Rick Jones
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20131223061845.GF25985@ninthfloor.org \
--to=pl@ninthfloor.org \
--cc=lartc@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.