可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I've a process which is using too much memory.
When I run lsof -p <pid>
the output is :
ETL-GRIB 5981 root DEL REG 8,4 183633075 /tmp/icom/65516_GRIB/20150921220023_6796_YTXG23EGRR211800__ln_3857.shp ETL-GRIB 5981 root DEL REG 8,4 183633059 /tmp/icom/65516_GRIB/20150921220023_6796_YTXG23EGRR211800__pl_3857.shp ...
What DEL mean? It could be that the process has the file in memory but It has been deleted by any other process?
回答1:
lsof
usually reports entries from the Linux /proc/<PID>/maps
file with mem
in the TYPE column. However, when lsof
can't stat(2)
a path in the process maps
file and the maps
file entry contains (deleted)
, indicating the file was deleted after it had been opened, lsof
reports the file type as DEL
.
Yes, Simply those files are deleted after they are read by the process. If you have updated/replaced those files then you probably want to restart the service/process.
回答2:
It could be that the process has the file in memory but It has been deleted by any other process?
Yes, or by the same process.