Как я могу получить pid хоста для процесса, выполняющегося в контейнере? - PullRequest
0 голосов
/ 27 апреля 2020

мои контейнеры работают в kubernetes, и я видел много OOM из журнала узлов kubernetes. Все журналы имеют только информацию об идентификаторе процесса. тяжело копать какие контейнеры ООМ. Я не знаю, как найти идентификатор контейнера по идентификатору процесса хоста.

Можно ли как-нибудь получить идентификатор процесса хоста внутри контейнера, чтобы я мог получить сопоставление.

это журнал узлов

2020-04-28 09:27:15.530 HKT
I0428 01:27:15.530763 1627 log_monitor.go:115] New status generated: &{Source:kernel-monitor Events:[{Severity:warn Timestamp:2020-04-28 01:27:08.060896434 +0000 UTC m=+89600.088785273 Reason:OOMKilling Message:Memory cgroup out of memory: Kill process 2493556 (node) score 1432 or sacrifice child

2020-04-28 09:29:15.000 HKT
Memory cgroup out of memory: Kill process 2493562 (node) score 1529 or sacrifice child Killed process 2493562 (node) total-vm:14009952kB, anon-rss:3146688kB, file-rss:28720kB, shmem-rss:0kB

2020-04-28 09:29:15.000 HKT
Memory cgroup out of memory: Kill process 2496433 (node) score 1275 or sacrifice child Killed process 2496433 (node) total-vm:7183684kB, anon-rss:1833580kB, file-rss:28804kB, shmem-rss:0kB

2020-04-28 09:29:15.309 HKT
I0428 01:29:15.309829 1627 log_monitor.go:115] New status generated: &{Source:kernel-monitor Events:[{Severity:warn Timestamp:2020-04-28 01:29:07.829961434 +0000 UTC m=+89719.857850273 Reason:OOMKilling Message:Memory cgroup out of memory: Kill process 2493562 (node) score 1529 or sacrifice child

2020-04-28 09:29:15.330 HKT
I0428 01:29:15.329925 1627 log_monitor.go:115] New status generated: &{Source:kernel-monitor Events:[{Severity:warn Timestamp:2020-04-28 01:29:07.849907434 +0000 UTC m=+89719.877796273 Reason:OOMKilling Message:Memory cgroup out of memory: Kill process 2496433 (node) score 1275 or sacrifice child

2020-04-28 09:48:29.000 HKT
Memory cgroup out of memory: Kill process 3086395 (monitor) score 237 or sacrifice child Killed process 3086395 (monitor) total-vm:130128kB, anon-rss:9204kB, file-rss:15488kB, shmem-rss:0kB

1 Ответ

0 голосов
/ 28 апреля 2020

Хорошо, это ошибка дизайна, которая выглядит для меня. Я бы предложил использовать 1 контейнер - 1 процесс и позволить процессу стать основным процессом (PID 1). Этот дизайн скажет вам, у какого модуля есть проблемы, так как Kubernetes перезапустит модуль, как только процесс достигнет предела памяти. В любом случае, используя Kubernetes, вы должны увидеть, какой модуль был перезапущен с помощью kubectl get pods, и увидеть либо модули при запуске с ошибкой, либо перезапуск счетчика increasign. Если вы хотите использовать только журналы узлов, я рекомендую вам его использовать, вы можете обнаружить, что это решение может помочь вам CoreOS - получить docker имя контейнера по PID?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...