Monitoruję stos TCP na serwerze w nadziei, że ogólnie wywnioskuję problemy z aplikacją na pudełku.
Moją pierwszą skłonnością jest pomiar liczby gniazd we wszystkich zgłoszonych stanach (LISTEN, ESTABLISHED, FIN_WAIT2, TIME_WAIT itp.) I wykrycie pewnych anomalii.
Kolega z drużyny sugeruje, że 'lsof' byłoby lepszym narzędziem do sprawdzenia, w jakim stanie są stosy TCP.
Jakieś preferencje lub wskazówki dotyczące doświadczenia od tłumu błędów serwera?
Odpowiedzi:
Wolę lsof, ponieważ jego wynik jest spójny na wszystkich platformach, na których działa. Możesz jednak uzyskać te same informacje z obu programów. Myślę, że sprowadza się to do osobistych preferencji.
źródło
Moim pierwszym założeniem byłoby użycie,
netstat -ptan
które zapewni ci wszystkie informacje, których szukasz. Prawdopodobnie potok do sortowania i uniq. Poniższe informacje powinny dać ci dobrą liczbę gniazd ”.netstat -ptan | awk '{print $6 " " $7 }' | sort | uniq -c
źródło
Sprawdź dstat i uruchom z:
Co więcej, jeśli chcesz przeanalizować dane wyjściowe, możesz zapisać je w pliku CSV przy użyciu opcji --output.
źródło
Myślę, że to naprawdę bardziej osobiste preferencje, ponieważ przy odrobinie poprawek (i odpowiednich opcjach poleceń) możesz uzyskać prawie te same informacje z obu.
Jeśli jednak chcesz monitorować liczbę połączeń w różnych stanach, nie zrobiłbym tego za pomocą narzędzia wiersza poleceń z jednym strzałem. Wykorzystałbym coś, co może trochę zyskać na popularności, abyś mógł to z czasem przejrzeć. Coś takiego jak munin byłoby bardzo przydatne, ponieważ zobrazowałoby to w czasie (wraz z pokazaniem innych potencjalnie przydatnych statystyk systemowych).
Rozwiązywanie problemów z aplikacją jest zawsze łatwiejsze, jeśli masz dobre informacje o samym pudełku i jego wydajności (zarówno podczas problemów, jak i gdy nie ma problemów).
źródło