To jest niestety problem sposobu jaki przyjąłem do robienia wykresów.
Można odpalić sobie narzędzia developera z przeglądarce, uruchomić wykres i w networku zobaczyć czas wywoływania ubusa. Nawet w czasie spoczynku średnia u mnie to np. 30ms, ale czasami sam z siebie nic nie robiąc potrafi strzelić 400ms. Oczywiście jest jeszcze problem kiedy on to fizycznie odczytuje, czy natychmiast i przeglądarka czeka ten czas na pojawienie się wyniku czy system jest zajęty i czyta dane z interfejsów z opóźnieniem, powodując zwiększenie transferu (bo okres się wydłużył), co będzie zwłaszcza widoczne przy dużych transferach.
Robiąc easyconfig przyjąłem że nie będę pisał własnych programów tylko maksymalnie wykorzystam możliwości systemu bez instalacji dodatkowych pakietów, powodując że samo easyconfig będzie niezależne od architektury (był czas kiedy używałem go na sprzętach kompletnie nie wspieranych przez openwrt). Stąd też wykresy wykorzystują statystyki interfejsów odczytywane co sekundę przez ubusa, co powoduje czasu wspomnianą anomalię.
Można by to rozwiązać przez zwiększenie okna odczytu do np. 3s. Wtedy nastąpiło by lekkie uśrednienie danych bo transfer rozłożył by się na te 3s ale nie było by widać sekundowych szpilek. Coś za coś, na razie zostało tak jak pierwotnie zrobiłem - co sekundę.
Luci wykorzystuje do takich wykresów swój własny demon (luci-bwc) który po prostu na czas wyświetlania wykresu chodzi w tle, sam zbiera dane i daje prawie gotowe dane do wykresu w postaci ztablicowanych wyników za pewne okno czasowe. Podobne robi gargoyle - też ma swojego demona który zbiera dane i udostępnia je już zebrane. Z powodów które wspomniałem nie pisałem swojego tylko korzystam z danych systemowych. Mógłbym korzystać z luci-bwc, ale to z kolei oznaczało by dodanie kilku pakietów od luci do zależności co spowodowało by zwiększenie zajmowanego miejsca. Może czas w końcu zerwać z przeszłością i routerami z 4MB flash i zrobić to "normalnie".
Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.