Я казнил netstat -s
на моем выделенном сервере под управлением debian. Я хотел бы интерпретировать результаты, потому что у меня проблемы с подключением к TCP. Я не знаю, как читать эти результаты. Кто-нибудь может помочь?
Контекст: это общедоступный tcp-сервер с клиентами со всего мира, большинство из которых используют сети 3G / UMTS. Розетки открываются в среднем на 1 час. Некоторые TCP-ссылки останавливаются на 10-60 секунд, каждые 10 минут или около того. Я запускаю пользовательскую программу Java, которая является сервером TCP.
Вот результат netstat -s
. Есть ли очевидные проблемы с подключением?
Ip:
33780786 total packets received
0 forwarded
0 incoming packets discarded
33780059 incoming packets delivered
33577363 requests sent out
1 outgoing packets dropped
1442 reassemblies required
715 packets reassembled ok
Icmp:
4675 ICMP messages received
98 input ICMP message failed.
ICMP input histogram:
destination unreachable: 2901
timeout in transit: 152
echo requests: 1334
echo replies: 226
2109 ICMP messages sent
0 ICMP messages failed
ICMP output histogram:
destination unreachable: 550
echo request: 225
echo replies: 1334
IcmpMsg:
InType0: 226
InType3: 2901
InType8: 1334
InType11: 152
OutType0: 1334
OutType3: 550
OutType8: 225
Tcp:
8752 active connections openings
287296 passive connection openings
58164 failed connection attempts
74065 connection resets received
30 connections established
32997886 segments received
32357425 segments send out
438184 segments retransmited
587 bad segments received.
75868 resets sent
Udp:
777245 packets received
550 packets to unknown port received.
0 packet receive errors
779944 packets sent
TcpExt:
28674 invalid SYN cookies received
56570 resets received for embryonic SYN_RECV sockets
998 packets pruned from receive queue because of socket buffer overrun
9 ICMP packets dropped because they were out-of-window
27402 packets rejects in established connections because of timestamp
1266543 delayed acks sent
1399 delayed acks further delayed because of locked socket
Quick ack mode was activated 143367 times
1556 times the listen queue of a socket overflowed
1556 SYNs to LISTEN sockets dropped
25884635 packets directly queued to recvmsg prequeue.
785180902 bytes directly in process context from backlog
1800599695 bytes directly received in process context from prequeue
2879633 packet headers predicted
7627605 packets header predicted and directly queued to user
3218508 acknowledgments not containing data payload received
14774120 predicted acknowledgments
52 times recovered from packet loss due to fast retransmit
24519 times recovered from packet loss by selective acknowledgements
4 bad SACK blocks received
Detected reordering 146 times using FACK
Detected reordering 77 times using SACK
Detected reordering 2239 times using time stamp
3548 congestion windows fully recovered without slow start
15840 congestion windows partially recovered using Hoe heuristic
8832 congestion windows recovered without slow start by DSACK
127403 congestion windows recovered without slow start after partial ack
12080 TCP data loss events
TCPLostRetransmit: 3
179 timeouts after reno fast retransmit
21328 timeouts after SACK recovery
1481 timeouts in loss state
32373 fast retransmits
5349 forward retransmits
26402 retransmits in slow start
230593 other TCP timeouts
4 classic Reno fast retransmits failed
2367 SACK retransmits failed
563 times receiver scheduled too late for direct processing
243774 packets collapsed in receive queue due to low socket buffer
151068 DSACKs sent for old packets
45306 DSACKs sent for out of order packets
238987 DSACKs received
14 DSACKs for out of order packets received
27627 connections reset due to unexpected data
4045 connections reset due to early user close
4992 connections aborted due to timeout
IpExt:
1 outgoing packets dropped
Потери пакетов почти нет, что хорошо, но у нас нет данных о задержках. С первого взгляда я бы сказал, что вы используете неправильные инструменты для работы.
Присутствует ли база данных? Существуют ли какие-то циклические функции, которые замедляют работу системы примерно на 10-минутной отметке? Машина работает только с этим tcp-сервером или обслуживает другие ресурсы?
Netstat не является подходящей метрикой для того, что вы хотите делать. Чтобы убедиться, что ваше веб-приложение работает так, как задумано, вам нужна инфраструктура, включающая следующие
Вот несколько советов, которые помогут вам разобраться в проблеме: