почему номер pid такой большой и что запускает команду `file`?

У меня есть Ubuntu 20.04.2 на хорошем оборудовании с Mate и всеми обновленными пакетами.

Идентификаторы процессов (pid) составляют 800 000 после всего 7 дней безотказной работы.

как определить, какой процесс запускается так часто, что PID становятся такими большими?

Результат указывает на тысячи случаев и время от времени команды.

Что происходит и как понять, что запускает столько процессов?

Какой системный процесс должен быть запущен и почему?

1 ответ

взгляд системного монитора с открытым исходным кодом выполняет /usr/bin/fileкомандовать каждый Nсекунд для его обновления. это было источником тысяч случаев в журнале системного учета.

это было довольно четко проверено путем запуска взглядов в течение 4 циклов обновления и проверки с помощью полученного вывода из dump-acct /var/log/account/pacct

с этим объяснением, скорее всего, не было никакого гнусного источника всех этих fileзаписи.

эта проблема заставила меня отслеживать скорость увеличения числа процессов. это простой скрипт bash для мониторинга скорости pid:

      loop_cnt=0
loop_cnt_max=10000
sleep_time=60 #5 # (seconds)

ppl=2  # ppl--> processes per loop from this script; remove this many new processes in the rate estimate

pid_cnt=`sysctl -n kernel.ns_last_pid`
let pid_cnt=$pid_cnt-1 # 1st loop only

while [ "$loop_cnt" -le "$loop_cnt_max" ];
 do
     pid_cnt_last=$pid_cnt
     pid_cnt=`sysctl -n kernel.ns_last_pid`
     let delta_pid=($pid_cnt - $pid_cnt_last - $ppl) # get pid delta over the last loop interval
     let pid_rate=$delta_pid/$sleep_time
     pid_rate=`bc <<< "scale=2; $delta_pid/$sleep_time"` # floating point arithmetic
     echo 'pid_cnt=' $pid_cnt ', an increase of' $delta_pid,' over the last' $sleep_time, ' seconds,  pid_rate=' $pid_rate '(pid/s),    cnt = ' $loop_cnt ', and cnt_max = ' $loop_cnt_max
     let loop_cnt=loop_cnt+1
     
     sleep $sleep_time
done
Другие вопросы по тегам