Просмотр "дескрипторов открытых файлов" - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть веб-страница, где бэкэнд написан на Go и работает в Ubuntu, и после определенного количества дней и активности, например, по маслу, программа вызовет «панику» и начнет выдавать 502 ошибки прокси.Ошибка, которую я получаю в Go, - «слишком много открытых файлов».

После некоторых исследований я чувствую, что сузил проблему до слишком большого количества «дескрипторов открытых файлов».Я читал различные предлагаемые решения, которые, кажется, имеют разные результаты для разных людей.Это все хорошо, но если бы я хотел на самом деле просмотреть эти якобы открытые файловые дескрипторы в реальном времени, чтобы я мог точно определить, что это за "файлы", как бы я это сделал?Я спрашиваю об этом, потому что вместо того, чтобы пытаться угадать, какие части моей программы Go вызывают это, я бы хотел посмотреть, смогу ли я сузить ситуацию еще дальше (возможно, к сокету MySQL, который не закрывается должным образом, или к файлу ОС).не закрывается должным образом и т. д.)

1 Ответ

0 голосов
/ 19 февраля 2019

Вы можете использовать команду lsof (Linux) для «вывода списка открытых файлов».Выводов будет много, поэтому хорошо фильтровать вывод с помощью опций.lsof -p <PID> может быть полезно, если вы знаете PID вашего процесса.Используйте команду ps, чтобы найти PID.

...