【问题标题】:lsof FD column equal to DEL, what does it mean?lsof FD列等于DEL,是什么意思?
【发布时间】:2015-09-23 11:48:28
【问题描述】:

我有一个使用太多内存的进程。

当我运行lsof -p <pid> 时,输出是:

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
...

DEL 是什么意思?可能是该进程在内存中有文件,但它已被任何其他进程删除?

【问题讨论】:

  • 您阅读过lsof 的文档吗? ` ''DEL'' 表示已删除的 Linux 映射文件;`
  • 是的,我读到了,DEL 缩写看起来很明显,但我想确认我的问题:可能是该进程在内存中有文件,但它已被任何其他进程删除?我的意思是该过程引用了已删除的 FD
  • DEL 在 FD 列中 实际上没有记录我的lsof 版本。当它出现在TYPE 列中时,它已为我记录了下来,这似乎就是您引用的内容。这个问题(和我的问题)是关于它何时出现在FD 列中的。这可能是文档中的错误或lsof

标签: unix memory process linux-kernel


【解决方案1】:

lsof 通常报告来自 Linux /proc/<PID>/maps 文件的条目,在 TYPE 列中带有 mem。但是,当lsof不能stat(2)进程中的路径maps文件并且mapsfile条目中包含(deleted),说明文件打开后被删除,lsof报告文件键入DEL

是的,这些文件在进程读取后会被删除。如果您已经更新/替换了这些文件,那么您可能需要重新启动服务/进程。

【讨论】:

    【解决方案2】:

    可能是进程在内存中有文件,但它已经 被其他进程删除了吗?

    是的,或者通过相同的过程。

    【讨论】:

      猜你喜欢
      • 2014-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-31
      相关资源
      最近更新 更多