Software /
code /
prosody-modules
Comparison
mod_limits/README.markdown @ 1803:4d73a1a6ba68
Convert all wiki pages to Markdown
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 28 Aug 2015 18:03:58 +0200 |
parent | 1782:mod_limits/README.wiki@29f3d6b7ad16 |
child | 1820:8de50be756e5 |
comparison
equal
deleted
inserted
replaced
1802:0ab737feada6 | 1803:4d73a1a6ba68 |
---|---|
1 --- | |
2 labels: | |
3 - 'Stage-Beta' | |
4 summary: 'Connection-level rate limiting' | |
5 ... | |
6 | |
7 Introduction | |
8 ============ | |
9 | |
10 On some servers, especially public ones, it is desired to make sure that | |
11 everyone gets their fair share of system resources (and no more). | |
12 | |
13 mod\_limits allows you to specify traffic bandwidth limits, preventing | |
14 any single connection hogging the server's CPU, RAM and bandwidth. | |
15 | |
16 Details | |
17 ======= | |
18 | |
19 mod\_limits detects when a connection has exceeded its traffic allowance | |
20 and temporarily ignores a connection. Due to the way TCP and the OS's | |
21 network API works no data is lost, only slowed. | |
22 | |
23 Configuration | |
24 ============= | |
25 | |
26 Currently mod\_limits is configured per connection type. The possible | |
27 connection types are: | |
28 | |
29 - c2s | |
30 - s2sin | |
31 - s2sout | |
32 - component | |
33 | |
34 The limits are specified like so in the **global** section of your | |
35 config (they cannot be per-host): | |
36 | |
37 limits = { | |
38 c2s = { | |
39 rate = "3kb/s"; | |
40 burst = "2s"; | |
41 }; | |
42 s2sin = { | |
43 rate = "10kb/s"; | |
44 burst = "5s"; | |
45 }; | |
46 } | |
47 | |
48 All units are in terms of *bytes*, not *bits*, so that "kb/s" is | |
49 interpreted as "kilobytes per second", where a kilobyte is 1000 bytes. | |
50 | |
51 Compatibility | |
52 ============= | |
53 | |
54 ----- ------------------- | |
55 0.9 Works | |
56 0.8 Doesn't work(`*`) | |
57 ----- ------------------- | |
58 | |
59 (`*`) This module can be made to work in 0.8 if you do two things: | |
60 | |
61 1. Install | |
62 [util.throttle](http://hg.prosody.im/0.9/raw-file/d46948d3018a/util/throttle.lua) | |
63 into your Prosody source's util/ directory. | |
64 2. If you use libevent apply [this | |
65 patch](http://prosody.im/patches/prosody08-mod-limits-fix.patch) to | |
66 net/server\_event.lua. |