Najnowsza wiadomość [2016-06-04]

Dwa poważne problemy zostały wykryte w wersji stabilnej 1.2.2. Wersja 1.2.3 wprowadza obejścia obydwu.

1. Ubuntu - błędne wykrywanie uszkodzenia struktury HTB przy starcie.

Kernel Ubuntu, oraz kilku innych dystrybucji, kompilowany jest bez opcji CONFIG_CLS_U32_PERF. Stąd, NiceShaper nie może w pełni monitorować aktywności sieciowej. Zalecanym rozwiązaniem jest rekompilacja kernela z włączoną tą opcją.

2. Błąd w kernelu w wersji 3.16 (najprawdopodobniej również 3.14 i kilku następnych), uniemożliwiający odczytanie ostatniego filtra U32 w systemie x86.

W efekcie, NiceShaper uruchomiony na 32bitowym Debianie 8 z domyślnym kernelem, zgłasza uszkodzenie struktury HTB. Sprawdzonym i działającym rozwiązaniem jest instalacja kernela 4.X z backports lub samodzielna kompilacja.

NiceShaper

NiceShaper jest programem działającym w środowisku routera z systemem operacyjnym Linux. Pracuje w przestrzeni użytkownika, wykorzystując standardową Linuksową implementację QOS oraz iptables. Domyślnie, wykorzystuje sprawdzony algorytm podziału łącza HTB w roli klas pośrednich (root, inner) oraz terminujących(leaf). Dyscyplina kolejkowania (qdisc) SFQ jest domyślnym algorytmem kolejkowania dołączanym do klas terminujacych. Filtry U32 oraz FW umożliwiają klasyfikowanie pakietów do klas. NiceShaper udostępnia podejście dynamicznego podziału łącza, które, jest efektywniejsze niż tradycyjne dzielenie pasma z przypisanymi, użytkownikom sieci, stałymi przepustościami. NiceShaper stale monitorując ilości danych przepływających przez router, w odpowiedzi na zmieniające się obciążenie i charakterystykę ruchu generowanego przez użytkowników, dynamicznie dostosowuje wartości parametrów rate oraz ceil utworzonych klas HTB do poziomu umożliwiającego możliwie najpełniejsze wykorzystanie łącza.

NiceShape chroni pasma użytkowników, rozsądnie korzystających z przepustowości łącza i dba o to, by utrzymywać wysycenie pasma na skonfigurowanym optymalnym poziomie. Tak więc, w przypadku asymentrycznego dostępu do internetu, dba o to by nie dopuścić do nadmiernego wysycenia pasma uploadu co w efekcie mogło by doprowadzić do zablokowania downloadu (i odwrotnie). Nie dopuszczając do powstawania przeciążeń, gwarantuje również wygodę użytkowania usług interaktywnych.

Ponadto NiceShaper oferuje:

Oto wykres MRTG prezentujący efekt działania NiceShapera:
Wykres MRTG
Wykres został zarejestrowany w sieci, w której użytkownicy bardzo intensywnie wykorzystują oprogramowanie P2P wymagające, udostępniania zasobów. Jest to zabójcze dla łącz asymetrycznych charakteryzujących się małym pasmem wychodzącym. Na zielono download, upload - niebieska linia, obydwa kierunki przepływu danych praktycznie zawsze w pełni obciążone. Mimo to każdy użytkownik ma zagwarantowane wygodne surfowanie, pracę lub grę online. Konfiguracja statyczna praktycznie wyklucza tak skuteczne wysycenie pasma w obydwu kierunkach, wymuszając dużo wiekszy kompromis pomiędzy stopniem wykorzystania łącza a wygodą użytkowania usług interaktywnych.

[2016-03-06]

Po ponad 2 latach prac, udostępniony zostaje NiceShaper w wersji 1.2.0.

Jest to bardzo ważne wydanie. Gałąź 1.2 jest bardzo dojrzała i mocno zmodernizowana względem 1.0. Poza oprogramowaniem, również dokumentacje doczekały się porządnego przeglądu oraz mnóstwa poprawek: językowych i merytorycznych.

Po informacje odnośnie zmian zachodzących w trakcie całego procesu rozwoju, odsyłam do dokumentu listy zmian a po kompletne i aktualne opisy do dokumentacji. Zaznaczając, że lista zmian nie zawiera wszystkich najdrobniejszych modyfikacji i poprawek.

Na co warto zwrócić szczególną uwagę?:

[2013-07-04]

W odróżnieniu od wersji 0.6 która nigdy nie uzyskała oficjalnie statusu stabilnej, linia 1.0 doczekała się tylko jednego Release Candidate a na dodatek lista poprawek jest niezwykle skromna.

Zatem - zapraszam do pobierania!

To co najważniejsze w nowym NS to wyeliminowanie uruchamiania komendy systemowej tc. NiceShaper rozmawia bezpośrednio z kernelem więc dodawanie/usuwanie/modyfikowanie klas i filtrów HTB jest teraz piekielnie szybkie i tym większy zysk z tej zmiany im więcej operacji wykonywanych w jednym cyklu. Wreszcie usunięte zostało to ciążące od początku istnienia projektu wąskie gardło wydajności. wprowadza nową ciekawą funkcjonalność w postaci wyzwalaczy. Pozwalających na wprowadzenie quoty dla klas oraz alternatywnych wartości konfiguracyjnych o określonych porach doby.