C.3 Examples
Let's start off with a simple example. Suppose that
you have a saturated Internet connection, shared by many users. You
can use delay pools to limit the amount of bandwidth that Squid
consumes on the link, thus leaving the remaining bandwidth for other
applications. Use a class 1 delay pool to limit the bandwidth for all
users. For example, this limits everyone to 512 Kbit/s and keeps 1 MB
in reserve if Squid is idle:
delay_pools 1
delay_class 1 1
delay_parameters 1 65536/1048576
acl All src 0/0
delay_access 1 allow All
One of the problems with this simple approach is that some users may
receive more than their fair share of the bandwidth. If you want to
try something more balanced, use a class 2 delay pool that has
individual buckets. Recall that the individual bucket is determined
by the fourth octet of the client's IPv4 address.
Thus, if you have more than a /24 subnet, you might want to use a
class 3 pool instead, which gives you 65536 individual buckets. In
this example, I won't use the network buckets. While
the overall bandwidth is still 512 Kbit/s, each individual is limited
to 128 Kbit/s:
delay_pools 1
delay_class 1 3
delay_parameters 1 65536/1048576 -1/-1 16384/262144
acl All src 0/0
delay_access 1 allow All
You can also use delay pools to provide different classes of service.
For example, you might have important users and unimportant users. In
this case, you could use two class 1 delay pools. Give the important
users a higher bandwidth limit than everyone else:
delay_pools 2
delay_class 1 1
delay_class 2 1
delay_parameters 1 65536/1048576
delay_parameters 2 10000/50000
acl ImportantUsers src 192.168.8.0/22
acl All src 0/0
delay_access 1 allow ImportantUsers
delay_access 2 allow All
|