Я нахожу эластичный поиск процесс в Ubntu 14.04 linux vm, содержащий множество обработчиков файлов, а когда я использую lsof для дальнейшего анализа, он просто дает некоторые запутанные результаты, как показано ниже:
$ lsof -p | wc -l
$ lsof -p 63589 | wc -l
960
COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 63589 ubuntu mem REG 202,65 5614666 8627864 /var/elasticsearch/nodes/0/indices/jetty/1/index/_2uid_Lucene41_0.tim
$ lsof -n | grep | wc -l
$ lsof -n | grep 63589 | wc -l
111268
COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 63589 12817 ubuntu 625r REG 202,65 5014 8627698 /var/elasticsearch/nodes/0/indices/cde_api_server/1/index/_3h65.cfs
java 63589 63611 ubuntu 207u 0000 0,9 0 7413 anon_inode
java 63589 63611 ubuntu 208r FIFO 0,8 0t0 737362 pipe
Кажется, если использовать lsof с -п, в результате не будет TID? Но он должен перечислить все файловые дескрипторы pid 63589, верно?
960 против 111268 - такая огромная разница, может ли кто-нибудь объяснить это?
как насчет того, чтобы попробовать это?
lsof -n | grep 63589 | голова -100
«lsof» - это список открытых файлов. Таким образом, вы можете каждый раз получать разные результаты. Но 960 и 111268 настолько разные. Вероятно, может быть процесс аналогичного PID (например, 163589, включая 63589). Так что проверьте результат lsof -n | grep '
Первая команда
lsof -p 63589
покажет все открытые файлы процесса с id 63589
Второй
lsof -n | grep 63589
покажет открытые файлы, открытые процессом 63589, плюс потоки (поэтому присутствует столбец TIP), которые создал процесс 63589. Совершенно нормально, когда вторая команда подсчитывает гораздо больше результатов.