Я получаю утечки файлов, когда запускаю свой код в Google Compute Engine на серверы Google:
php 3630 www-data 873u IPv4 34632 0t0 TCP xxxx.internal:43328->vu-in-f139.1e100.net:https (CLOSE_WAIT)
php 3630 www-data 874u IPv4 34640 0t0 TCP xxxx.internal:39500->vh-in-f139.1e100.net:https (CLOSE_WAIT)
php 3630 www-data 875u IPv4 34648 0t0 TCP xxxx:43336->vu-in-f139.1e100.net:https (CLOSE_WAIT)
Я не звоню на эти серверы напрямую. Я считаю, что библиотека API Google может делать эти вызовы, но, похоже, не закрывает ее. Я запустил тот же код на сервере baremetal, и я не получаю этих утечек файлов.
Кто-нибудь знает, что вызывает это?
Близкие ожидания - это результат закрытия сеансов TCP на удаленной стороне, но локальный сокет не закрывается. ОС будет отслеживать соединение до тех пор, пока не будет установлено ограничение по времени tcp-сокета ОС или вы не «закроете» его. Обычно это происходит из-за того, что после подключения не выполняется очистка. (т.е. когда вы закончили с сокетом, вы не закрываете его и не уничтожаете объект должным образом). Возможно, вы не очищаете объекты API Google, когда закончите с ними. Без дополнительных деталей (кода?) Мы действительно можем только догадываться.