Jupyter Notebook生成大量含socket文件的u开头临时目录原因问询
问题根因定位
你描述的u开头带递增后缀、内部仅包含空socket文件的临时目录泄漏问题,是pyzmq 20.0.1版本的已知bug导致。Jupyter Notebook的进程间通信依赖zmq组件实现,运行过程中反复创建zmq上下文时就会触发该资源泄漏问题。
异常生成逻辑
- ZMQ创建IPC socket时,默认会在系统临时目录下生成对应父目录与socket文件,正常流程下zmq上下文销毁时会自动删除这类临时资源
- pyzmq 20.0.1版本的资源释放逻辑存在缺陷,部分场景下zmq上下文销毁时不会同步删除关联的临时目录,每次新建上下文就会生成新的带递增后缀的u开头目录,最终出现每秒生成多个、累计上百万个目录的现象
修复方案
- 优先升级pyzmq到22.2.1及以上版本,该版本已修复临时资源泄漏问题,你测试的高版本环境无异常的现象和官方修复结论一致
- 若暂时无法升级pyzmq版本,可以部署定时清理脚本,匹配
%TEMP%\u*格式的空目录定期删除,避免磁盘inode被耗尽导致系统异常
内容的提问来源于stack exchange,提问作者João A. Toledo
相关产品推荐
相关产品推荐

