Created
August 19, 2025 21:09
-
-
Save mkopa/74c4e0a0a855c8bb02d73a9fbbd8ecb2 to your computer and use it in GitHub Desktop.
Revisions
-
mkopa created this gist
Aug 19, 2025 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,54 @@ ### Zasady Projektowe Schematu 1. **Wielowymiarowość (Multi-faceted):** Wektor musi przechwytywać ortogonalne aspekty połączenia – nie tylko opóźnienie, ale jego rozkład, charakterystykę częstotliwościową, niezawodność i kontekst systemowy. 2. **Interpretowalność (Interpretable):** Każdy wymiar musi mieć jasne znaczenie fizyczne lub statystyczne, aby klastry wektorów i anomalie były zrozumiałe dla człowieka. 3. **Normalizacja (Normalizable):** Wartości muszą być możliwe do znormalizowania (np. przez skalowanie min-max lub standaryzację Z-score), aby algorytm odległości (jak L2 w HNSW) działał poprawnie. 4. **Rozszerzalność (Extensible):** Schemat powinien pozwalać na przyszłe dodawanie wymiarów bez unieważniania całej koncepcji. --- ### Proponowany Schemat: Link Signature Vector (LSV), v1.0 20-wymiarowy wektor, podzielony na cztery logiczne grupy. Każdy wektor jest generowany w oknie czasowym (np. 1 sekunda) na podstawie zebranych próbek RTT. | Wymiar | Nazwa | Typ Danych | Opis i Uzasadnienie | | :----- | :---------------------------------- | :--------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Grupa 1: Profil Rozkładu Opóźnienia (Latency Distribution Profile) - Co się dzieje?** | | 1 | `latency_p50_us` | `float` | **Mediana opóźnienia (50. percentyl) w mikrosekundach.** Bardziej odporna na skrajne wartości odstające niż średnia. Stanowi bazowy, stabilny wskaźnik wydajności. | | 2 | `latency_p95_us` | `float` | **95. percentyl opóźnienia.** Kluczowy dla systemów o wysokich wymaganiach (HFT, VoIP). Reprezentuje wydajność w "złych, ale jeszcze akceptowalnych" warunkach. | | 3 | `latency_p99_us` | `float` | **99. percentyl opóźnienia.** Wskaźnik "najgorszego doświadczenia". Nagły wzrost tego wymiaru, przy stabilnym p50, jest sygnaturą problemów z buforowaniem (bufferbloat). | | 4 | `latency_iqr_us` | `float` | **Rozstęp międzykwartylowy (p75 - p25).** Miara "rozproszenia środka" rozkładu. W odróżnieniu od odchylenia standardowego, jest niewrażliwa na skrajne ogony. | | **Grupa 2: Sygnatura Jittera i Niestabilności (Jitter & Instability Signature) - Jaki jest charakter problemu?** | | 5 | `jitter_stddev_us` | `float` | **Odchylenie standardowe opóźnienia.** Klasyczna miara jittera. To jest moduł `r` z naszej pierwotnej koncepcji – "jak bardzo" połączenie jest niestabilne. | | 6 | `latency_skewness` | `float` | **Skośność rozkładu opóźnień.** Wartość > 0 (rozkład prawostronnie skośny) jest typowa dla sieci i wskazuje na istnienie "długiego ogona" wysokich opóźnień. Zmiana skośności to ważny sygnał. | | 7 | `fft_power_low_freq` | `float` | **Znormalizowana moc widmowa dla niskich częstotliwości (np. 0.1-2 Hz).** Wskazuje na wolne, cykliczne problemy (np. zadania w tle, "duże" cykle GC). | | 8 | `fft_power_mid_freq` | `float` | **Znormalizowana moc widmowa dla średnich częstotliwości (np. 2-20 Hz).** Może korelować z interakcjami systemowymi, mniejszymi cyklami GC, przełączaniem zadań. | | 9 | `fft_power_high_freq` | `float` | **Znormalizowana moc widmowa dla wysokich częstotliwości (>20 Hz).** Sygnatura problemów na poziomie sprzętowym, sterowników lub mikro-burstów w przełącznikach sieciowych. | | 10 | `entropy_change_rate` | `float` | **Tempo zmiany entropii Shannona w sekwencji opóźnień.** Wskaźnik nieprzewidywalności. Nagły wzrost oznacza przejście ze stanu stabilnego w chaotyczny. | | **Grupa 3: Profil Integralności Pakietów (Packet Integrity Profile) - Czy połączenie jest niezawodne?** | | 11 | `packet_loss_rate_pct` | `float` | **Procent utraconych pakietów.** Podstawowa metryka niezawodności. | | 12 | `loss_burstiness_factor` | `float` | **Współczynnik "wybuchowości" utraty pakietów.** Wartość > 1 wskazuje, że pakiety są tracone w seriach (bursts), co jest znacznie gorsze niż losowa utrata. | | 13 | `reorder_rate_pct` | `float` | **Procent pakietów, które dotarły poza kolejnością.** Kluczowe dla protokołów wrażliwych na kolejność. Wskazuje na problemy z routingiem lub wieloma ścieżkami. | | 14 | `ecn_ce_rate` | `float` | **Częstotliwość znaczników ECN Congestion Experienced (CE).** Nowoczesna, proaktywna metryka. Wskazuje na początki zatłoczenia, *zanim* dojdzie do utraty pakietów. | | **Grupa 4: Kontekst Systemu Źródłowego (Source System Context) - Jakie mogą być przyczyny źródłowe?** | | 15 | `cpu_core_load_pct` | `float` | **Obciążenie rdzenia CPU obsługującego przerwania sieciowe.** Bezpośrednia korelacja z opóźnieniami generowanymi przez hosta. | | 16 | `ctx_switch_rate` | `float` | **Liczba przełączeń kontekstu na sekundę na danym rdzeniu.** Wysoka wartość jest znanym źródłem jittera na poziomie systemu operacyjnego. | | 17 | `nic_queue_depth_pct` | `float` | **Procentowe zapełnienie kolejki TX/RX na karcie sieciowej.** Wskaźnik presji na sprzęt sieciowy. Wzrost powyżej progu zwiastuje utratę pakietów. | | 18 | `memory_bus_contention` | `float` | **Wskaźnik rywalizacji o magistralę pamięci.** Zaawansowana metryka (z perf counters). Nagły wzrost może wyjaśnić skok opóźnień, nawet przy niskim CPU. | | 19 | `clock_correction_rate` | `float` | **Tempo korekcji lokalnego zegara (np. przez chrony/ntpd).** Wskazuje na stabilność lokalnego oscylatora, co jest metadaną dla samego serwera czasu. | | 20 | `temperature_celsius` | `float` | **Temperatura CPU/SoC.** Ekstremalne temperatury mogą prowadzić do throttlingu, który w subtelny sposób wpływa na jitter. Czasem to jest właśnie "root cause". | --- ### Innowacyjność i Wartość Tego Schematu 1. **"Co" i "Dlaczego":** Klasyczne systemy monitoringu mówią, że "opóźnienie wzrosło" (wymiar 1-3). Nasz wektor mówi *jak* wzrosło: "opóźnienie wzrosło, głównie w 99. percentylu (3), rozkład stał się prawostronnie skośny (6), a analiza FFT wskazuje na cykliczny problem o niskiej częstotliwości (7), który koreluje ze wzrostem przełączeń kontekstu (16)". **To jest odcisk palca problemu, a nie tylko symptom.** 2. **Unikalne Sygnatury Problemów:** * **Problem z GC w Javie:** Wysokie `latency_p99_us`, `latency_skewness`, `fft_power_low_freq`. * **Mikro-bursty na przełączniku:** Stabilne `latency_p50_us`, ale skaczące `latency_p99_us`, wysokie `fft_power_high_freq` i `loss_burstiness_factor`. * **CPU Throttling z powodu przegrzania:** Wzrost wszystkich metryk opóźnienia, korelujący z `temperature_celsius` (20) i spadkiem `cpu_core_load_pct` (15) mimo presji. 3. **Predykcja i Wczesne Ostrzeganie:** Wymiary takie jak `ecn_ce_rate` (14) i `nic_queue_depth_pct` (17) to sygnały wyprzedzające. "Orion" może nauczyć się, że wektory z podwyższonymi wartościami w tych wymiarach często poprzedzają wektory oznaczające pełną awarię (wysoka utrata pakietów). Wielowymiarową narrację o stanie sieci. Jest to fundament, na którym "Orion" może budować wiedzę, rozpoznawać wzorce i ostatecznie przewidywać przyszłość.