Monitorowanie TCP na serwerze: porównanie netstat vs lsof?

12

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?

ericslaw
źródło
3
Dodaj tag * nix, aby odstraszyć nas maniaków Windows
KevinH

Odpowiedzi:

7

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.

Geoff Fritz
źródło
2

Moim pierwszym założeniem byłoby użycie, netstat -ptanktó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

Suroot
źródło
1

Sprawdź dstat i uruchom z:

% sudo dstat --tcp

Co więcej, jeśli chcesz przeanalizować dane wyjściowe, możesz zapisać je w pliku CSV przy użyciu opcji --output.

Tim
źródło
Ciekawe narzędzie, niestety tylko Linux (choć zrozumiałe). Miło widzieć coś podobnego do SAR, które zawiera informacje o sieci (choć wersje linux sar również to pokazują).
ericslaw
1

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).

Christopher Cashell
źródło
Narzędzie wiersza poleceń służy wyłącznie do gromadzenia. Twoim celem gromadzenia danych dla linii bazowej jest rzeczywiście podejście propr.
ericslaw