Я наблюдаю за стеком TCP на сервере, надеясь выявить проблемы с приложением на коробке.
В первую очередь я хочу измерить количество сокетов во всех сообщаемых состояниях (LISTEN, ESTABLISHED, FIN_WAIT2, TIME_WAIT и т. Д.) И обнаружить некоторые аномалии.
Товарищ по команде предполагает, что «lsof» будет лучшим инструментом для определения состояния стеков TCP.
Какие-либо предпочтения или советы от толпы серверов?
Ответы:
Я предпочитаю lsof, потому что его вывод одинаков для всех платформ, на которых он работает. Вы можете в значительной степени получить ту же информацию из обеих программ. Я думаю, что все сводится к личным предпочтениям.
источник
Моим первым выводом будет использование,
netstat -ptan
которое даст вам всю информацию, которую вы ищете. Вероятно, труба для сортировки и уникальности. Следующее должно дать вам хорошее количество статуса сокета '.netstat -ptan | awk '{print $6 " " $7 }' | sort | uniq -c
источник
Проверьте dstat и запустите с:
Еще лучше, если вы хотите проанализировать вывод, вы можете записать его в CSV с помощью --output.
источник
Я думаю, что это действительно больше личного предпочтения, так как с небольшой настройкой (и правильными параметрами команды) вы можете получить примерно одинаковую информацию от любого из них.
Однако, если вы хотите отслеживать количество соединений в различных состояниях, я бы не стал делать это с помощью инструмента командной строки с одним выстрелом. Я бы использовал что-то, что может сделать некоторые тренды, чтобы вы могли просмотреть это с течением времени. Что-то вроде munin было бы очень полезно, так как отображало бы его с течением времени (наряду с показом вам другой потенциально полезной системной статистики).
Устранение неполадок в приложении всегда проще, если у вас есть хорошая информация о самой коробке и о том, как она работает (как во время проблем, так и в случае их отсутствия).
источник