Назад | Перейти на главную страницу

Множество соединений TIME-WAIT

Я работаю в системе Solaris. Я написал сценарий оболочки Korn, который каждые 30 секунд запускает эту строку: netstat -a | grep TIME-WAIT | wc -l

Это нормально работает уже год. Теперь я перехожу в новую лабораторию, и когда я запускаю ее, количество подключений в TIME-WAIT увеличивается с 80 до 32000.

Большинство этих подключений связаны с сервером ldap, работающим в другом компьютере в локальной сети.

Кто-нибудь видел такое поведение раньше? Как ты это починил?

Спасибо.

работает nscd? Я предполагаю, что раньше это было, а теперь нет. nscd используется для кэширования определенных типов данных каталога (особенно для группы и passwd). Если он не работает, то всякий раз, когда вы выполняете поиск, требующий обращения к серверу каталогов, им (потенциально) придется устанавливать соединение с хостом ldap вместо того, чтобы сначала запрашивать кеш.

Поскольку вы не указываете, какая версия solaris, я предполагаю, что это 10. Вы можете проверить, работает ли nscd, выполнив:

svcs -l имя-сервис-кеш

и посмотрите, находится ли он в онлайн-состоянии. Если это не так, вы можете попробовать перезапустить его с помощью:

svcadm обновить кеш службы имен

Если вы все еще получаете сбои, вам следует проверить файл журнала для этого, который вы можете найти в выходных данных приведенной выше команды svcs.

Состояние TIME-WAIT часто вызывается нарушением логики закрытия сокета в приложении. Вам нужно определить процессы, которые находятся на каждом конце, проверить каждый, чтобы увидеть, что он делает, и проверить другой сервер.

Попытайтесь определить, сохраняются ли отдельные соединения TIME-WAIT в течение длительного времени или создается много соединений, которые затем разрываются за короткий период времени.