Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Próbuje znaleźć jakieś sensowne info na temat --limit i --limit-burst ale coś mi ciągle umyka. Generalnie to jeśli się ustawi --limit-burst na 100 i --limit na 5/s , to po przekroczeniu progu połączeń 5/s zaczną być wybierane tokeny z --limit-burst , czyli jeśli by było połączeń 10/s, to po 20s tokeny z --limit-burst się wyczerpią i zadziała limit ograniczając ilość połączeń do 5/s. Pytanie jest jak się napełnia ten --limit-burst ? Jeśli ilość połączeń by została zredukowana do 3/s, to --limit-burst odzyska 100 tokenów w 50s czy w 20s?
Offline
limit --oznacza limit, burst oznacza wartość początkową.
np w hashlimicie 5/h oznacza 5/godzinę, ale jak dodasz do tego burst 50, to zablokuje dopiero po 55 próbie.
burst w rożnych modułach ma wartości domyślne, w hashlimit to jest domyślnie 5.
Jak w limit, zobacz w dokumentacji modułu.
Z resztą, co tu jest do nierozumienia?
limit match options:
--limit avg max average match rate: default 3/hour
[Packets per second unless followed by
/sec /minute /hour /day postfixes]
--limit-burst number number to match in a burst, default 5[/quote]
i Haslimit:hashlimit match options:
--hashlimit-upto <avg> max average match rate
[Packets per second unless followed by
/sec /minute /hour /day postfixes]
--hashlimit-above <avg> min average match rate
--hashlimit-mode <mode> mode is a comma-separated list of
dstip,srcip,dstport,srcport (or none)
--hashlimit-srcmask <length> source address grouping prefix length
--hashlimit-dstmask <length> destination address grouping prefix length
--hashlimit-name <name> name for /proc/net/ipt_hashlimit
--hashlimit-burst <num> number to match in a burst, default 5
--hashlimit-htable-size <num> number of hashtable buckets
--hashlimit-htable-max <num> number of hashtable entries
--hashlimit-htable-gcinterval interval between garbage collection runs
--hashlimit-htable-expire after which time are idle entries expired?[/quote]
Pozdro
;-)
W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem para bellum ;) | Pozdrawiam :)Offline
limit --oznacza limit, burst oznacza wartość początkową.[/quote]
Jak wartość początkową? Pakiety sobie lecą poniżej limitu 5/s to nic się nie dzieje. Jak limit zostanie przekroczony, to wtedy są tokeny rozdawane z tego --limit-burst i jak jest 100, to liczba połączeń może skoczyć do 105/s po czym zostanie zredukowana do 5/s. Jeśli będzie 10/s, to po 20s limit zadziała, bo 5 nadmiarowych, a do wykorzystania 100 tokenów zostało. Czy ja coś tu źle rozumiem? W każdym razie nigdzie nie pisze jak te tokeny się uzupełniają, czyli po jakim czasie znów będzie do wykorzystania pełna stówa. Gdzieś mi tylko mignęło, że to zależy od ustawionego czasu czyli 5/s, to po tym jak liczba połączeń spadnie poniżej limitu, to tokeny się zaczną zbierać w tempie 5/s, chyba. Nie mogę tego znaleźć. :]
Offline
limit 5 burst 50 - wyczerpywanie limitu 5 zaczyna się od 51 próby.
Offline
To further explain the limit match, it is basically a token bucket filter. Consider having a leaky bucket where the bucket leaks X packets per time-unit. X is defined depending on how many matching packets we get, so if we get 3 packets, the bucket leaks 3 packets per that time-unit. The --limit option tells us how many packets to refill the bucket with per time-unit, while the --limit-burst option tells us how big the bucket is in the first place. So, setting --limit 3/minute --limit-burst 5, and then receiving 5 matches will empty the bucket. After 20 seconds, the bucket is refilled with another token, and so on until the --limit-burst is reached again or until they get used.
Consider the example below for further explanation of how this may look.
We set a rule with -m limit --limit 5/second --limit-burst 10/second. The limit-burst token bucket is set to 10 initially. Each packet that matches the rule uses a token.
We get packet that matches, 1-2-3-4-5-6-7-8-9-10, all within a 1/1000 of a second.
The token bucket is now empty. Once the token bucket is empty, the packets that qualify for the rule otherwise no longer match the rule and proceed to the next rule if any, or hit the chain policy.
For each 1/5 s without a matching packet, the token count goes up by 1, upto a maximum of 10. 1 second after receiving the 10 packets, we will once again have 5 tokens left.
And of course, the bucket will be emptied by 1 token for each packet it receives.[/quote]
No teraz już łapie jak to działa — po ustawieniu --limit-burst na 100, będzie 100 tokenów do wykorzystania i ta liczba nie ulegnie zmniejszeniu do chwili przekroczenia --limit 10/s . Potem zacznie się wybieranie tokenów z --limit-burst w tempie nadmiarowym, czyli jeśli by było 20/s, to po 10s cześć pakietów zostanie zrzucona i będzie zrzucana cały czas do chwili gdy tokeny się odnowią, a zaczną się odnawiać w momencie gdy do tej reguły z limitem nie będzie żadnych dopasowań, czyli pakiety będą napływać rzadziej niż 1/10s , a same tokeny będą się odnawiać w tempie --limit.
I to chyba tyle jeśli chodzi o to zagadnienie.
Offline
Strony: 1
Time (s) | Query |
---|---|
0.00011 | SET CHARSET latin2 |
0.00005 | SET NAMES latin2 |
0.00137 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='52.15.136.223' WHERE u.id=1 |
0.00070 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '52.15.136.223', 1733053183) |
0.00044 | SELECT * FROM punbb_online WHERE logged<1733052883 |
0.00047 | SELECT topic_id FROM punbb_posts WHERE id=265001 |
0.00081 | SELECT id FROM punbb_posts WHERE topic_id=25709 ORDER BY posted |
0.00067 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=25709 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00078 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=25709 ORDER BY p.id LIMIT 0,25 |
0.00076 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=25709 |
Total query time: 0.00621 s |