Tensorboard启动时面对大量文件存在内存升高问题
Tensorboard OOM隐患
Tensorboard启动时面对大量文件时存在内存过高问题,在启动之后tensorboard是可以正常启动查看的,但是很多人没有发现,tensorboard的内存占用会慢慢增加。
其实这个增长有快有慢。当logdir下的文件越多,内存升高越快。这到底是与文件总大小有关,还是跟个数有关。我们分别进行试验。
1.初始实验
root@web-tb-v1-679948455-x96hd:/tmp/data/test# cd
events.out.tfevents.1592482650.test-tb-v1-6bb74f84db-gphg2.591.0 n01632777/ n01675722/
n01608432/ n01644373/ n01677366/
n01614925/ n01644900/ n01685808/
n01616318/ n01664065/ n01687978/
n01629819/ n01665541/ n01688243/
n01630670/ n01667114/ n01689811/
n01631663/ n01667778/
n01632458/ n01669191/
当下文件夹每个约有一千个数kb的文件。再次启动tensorboard。
当下文件数目比左图要高,内存占用增长速度明显比之前快一点。
我们将所有文件夹打包成tar,那么就造成总容量不变但是总文件数变小了。
root@web-tb-v1-679948455-x96hd:/tmp/data/test# ls
events.out.tfevents.1592482650.test-tb-v1-6bb74f84db-gphg2.591.0 test10.tar test12.tar test14.tar test16.tar test18.tar test2.tar test21.tar test4.tar test6.tar test8.tar
test1.tar test11.tar test13.tar test15.tar test17.tar test19.tar test20.tar test3.tar test5.tar test7.tar test9.tar
显然这次初始占用的内存要比之前,零散的大,但是内存增长速度降低了。我们获得结论一,内存增长率跟logdir下数目大小成正比,初始占用内存率与单个文件大小成正比。
2.提出最后一个假设
是否等存在之前零散文件夹环境下,等待内存上升也能实现700mb内存的终点然后稳定。
将所有的压缩包解压,任tensorboard运行。
实际上,任其运行当下的内存占用已经超过之前稳定时候需要占用的内存。也就得到 结论二:尽管数目小的大文件在初始时候会占用比较大的内存,但是之后内存占用会相对稳定,若是离散文件居多,则会引发内存快速增长。
OOM了
3.总结
根据结论:
- 内存增长率跟logdir下数目大小成正比,初始占用内存率与单个文件大小成正比。
- 尽管数目小的大文件在初始时候会占用比较大的内存,但是之后内存占用会相对稳定,若是离散文件居多,则会引发内存快速增长。
4. 原因分析与建议
经过查看代码,我怀疑是以下代码段引发的:
# tensorboard/backend/event_processing/directory_watcher.py
def _GetNextPath(self):"""Gets the next path to load from.This function also does the checking for out-of-order writes as it iteratesthrough the paths.Returns:The next path to load events from, or None if there are no more paths."""paths = sorted(pathfor path in io_wrapper.ListDirectoryAbsolute(self._directory)if self._path_filter(path))......next_paths = list(path for path in paths if self._path is None or path > self._path)if next_paths:return min(next_paths)else:return None
尽管拥有_path_filter筛选evnet格式文件(通过命名格式),但是打开文件时还是存在泄露,这个开源社区也有相关issues。建议尽量在干净且文件总数较小的目录启动tensorboard。
有任何问题可以直接留言
Tensorboard启动时面对大量文件存在内存升高问题相关推荐
- oracle查询数据库启动时的参数文件,【Oracle】数据库启动阶段参数文件、控制文件的问题处理...
Oracle启动分三个阶段: nomount: 首先查找参数文件(pfile/spfile),根据文件创建实例.Nomount的过程是启动数据库实例的过程. 没有参数文件无法nomount mount ...
- qt先生成json文件后程序启动时读取json文件在一组数据模拟下正常,换一组数据就出现乱码
提要 程序编号后自己模拟的数据程序在生成和解析json时都正常,但是换了一组数据,生成的json文件中部分中文乱码,且出现json文件的格式被混乱的现象. 效果 上述出现的不正确的json文件,如下: ...
- vue 修改文件怎么启动_Jupyter Notebook如何修改启动时的默认文件路径(Windows系统)...
打开Anaconda Prompt 输入命令jupyter notebook --generate-config,此命令会在C:Users你的用户名.jupyter文件夹下生成一个jupyter_no ...
- Linux环境中ElasticSearch启动时常见错误、解决
● ES启动常见报错及解决措施 说明 文章基于ElasicSearch版本:7.3.2,Linux版本:CentOS-7.7.供其他版本参考. 启动报错 报错1-- [xpack.ml.ena ...
- RocketMQ源码(4)—Broker启动加载消息文件以及恢复数据源码【一万字】
详细介绍了Broker启动加载消息文件以及恢复数据源码. 此前我们学习了Broker的启动源码:RocketMQ源码(3)-Broker启动流程源码解析[一万字],Broker的启动过程中,在Defa ...
- img文件制作linux启动u盘,如何在Linux系统中制作可启动img/iso镜像文件
img/iso文件是镜像文件,在Linux系统操作中有时需要制作镜像文件,那么制作镜像文件的方法有哪些呢?下面小编就给大家介绍下如何下Linux下制作可启动img/iso文件. 制作镜像文件有三种方法 ...
- linux系统做成iso镜像文件,如何在Linux系统中制作可启动img/iso镜像文件
img/iso文件是镜像文件,在Linux系统操作中有时需要制作镜像文件,那么制作镜像文件的方法有哪些呢?下面小编就给大家介绍下如何下Linux下制作可启动img/iso文件. 制作镜像文件有三种方法 ...
- mac在启动时出现问号如何解决
Mac在启动时出现问号文件夹如何解决 1.Mac关机 2.按住command+R键开机,看到地球时松开按键 3.选择互联网,输入密码连接 4.进度条结束后,进入 macOS 恢复功能 如果出现带有闪烁 ...
- Qt关闭程序的时候创建json文件,再次启动时重新加载到界面上
提要 当程序关闭后再次打开程序需要加载上一次的按钮名称设置. 思路 关闭程序的时候保存此刻界面按钮的文本,正常情况下只需在程序退出时调用的析构函数的内部实现,将界面所有的按钮文本生成一个文件,在程序下 ...
- web项目的启动时文件加载顺序
web项目的启动时文件加载顺序 转自:http://www.cnblogs.com/yw-ah/p/5751509.html 一. 1.启动一个WEB项目,WEB容器会先去读取它的配置文件web.xm ...
最新文章
- ALD对照CVD淀积技术的优势
- python爬虫库的功能_Python学习爬虫掌握的库资料大全和框架的选择的分析
- graduation wishes from professor Youmin Xi
- c语言选择排序_冒泡、插入、选择排序(C语言)
- 电商项目整体介绍-尚硅谷大数据培训
- 机器学习:最小二乘支持向量机(Least Squares Support Vector Machine)
- 【栈】实现逆波兰计算器
- 电脑维修常用检修软件技术
- ionic 项目文件下载总结
- 二十四小时不插电生活方案
- 一万年太久,只争朝夕,男儿有泪不轻弹,只是未到伤心处!!!!!!
- 平面上点和直线的齐次表示
- Spring Cache缓存技术,Cacheable、CachePut、CacheEvict、Caching、CacheConfig注解的使用
- 一文讲解灰光模块和彩光模块
- python生成等值线_在python中生成X,Y数据的等值线图
- Java(13)- 抽象类
- 华为OD面试——机试算法
- R语言 trim=0.1 tirm=0.2 什么意思呢?
- 10以内加减法口诀表
- 查找MySQL文件的所在的真实地址(一行sql语句就欧克~)
热门文章
- 基于有道API的命令行词典(golang版)
- Your local changes to the following files would be overwritten by merge
- 2020抖音最新上热门技巧你知道多少?
- android 多个 前台 挂机,安卓手机如何进行多开挂机?
- 像素越多越好?像元的面积越小越好?为何底大一级压死人?
- 华旭 身份证读卡器测试软件_华旭身份证读卡器阅读软件8.0版本 支持免驱
- 什么是存储过程?用什么来调用?
- 设置共享后其他计算机无法访问,Win7局域网共享设置疑难大全(无法访问,没有访问权限,看不到共享电脑)...
- KEIL C51 程序编译
- word页码上加横线word删除单页页眉