Наш веб-сервер имел проблему из-за исчерпания порта. Это происходит каждые 2 недели, и перезагрузка устраняет проблему. Но я хочу докопаться до сути этой проблемы и найти постоянное исправление, чтобы избежать перезагрузок.
Я прочитал эту статью, и это было действительно полезно. Тем не менее, он упоминает это:
Итак, если вы видите процесс, который использует много портов, разговаривает с одним удаленным адресом или несколькими удаленными адресами, а состояние соединения - что-то вроде TIME_WAIT, то это, как правило, пустая распродажа, что у этого процесса есть проблема, и не освобождает эти порты должным образом.
(Акцент мой)
Затем еще ниже есть этот абзац:
Я упоминал выше, что утечки памяти тоже могут вызывать такое поведение - почему именно? Случается так, что для того, чтобы заставить порт использовать исходящее соединение, процессы должны получить дескриптор этого порта. Этот дескриптор выходит из памяти невыгружаемого пула. Таким образом, если у вас есть утечка памяти, и вы исчерпали пул невыгружаемого, процессы, которые должны общаться с другими машинами в сети, не смогут получить ручку и, следовательно, не смогут получить порт им нужен.
Вопросы:
- Что автор имеет в виду, не выпуская эти порты должным образом? Чья это работа, программист?
- Может кто-нибудь объяснить, как утечка памяти может привести к исчерпанию порта, потому что я все еще не уверен после прочтения выше?
И последнее, что нужно иметь в виду, это то, что я программист, а не администратор (если это помогает в любом случае).