Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 复制文件后如何释放docker的内存?_Java_Docker_Volumes_Mounted Volumes - Fatal编程技术网

Java 复制文件后如何释放docker的内存?

Java 复制文件后如何释放docker的内存?,java,docker,volumes,mounted-volumes,Java,Docker,Volumes,Mounted Volumes,我们正在开发性能非常重要的java应用程序。它处理大量文件并创建大量文件作为输出。因此,为了释放内存,我们在一批文件(例如15个文件)之后将数据临时保存到磁盘。如果需要,这些临时保存的文件可以稍后由应用程序加载。 我们也正在将我们的应用程序对接,我们遇到了一个问题。Docker有自己的文件系统。所以,即使我们将文件保存到磁盘上,docker也会在内存中保留一些东西,即将自己文件系统中的文件与磁盘上保存的文件连接起来。我们使用绑定坐骑。 因此,我们的java应用程序能够处理数千个文件,但docke

我们正在开发性能非常重要的java应用程序。它处理大量文件并创建大量文件作为输出。因此,为了释放内存,我们在一批文件(例如15个文件)之后将数据临时保存到磁盘。如果需要,这些临时保存的文件可以稍后由应用程序加载。 我们也正在将我们的应用程序对接,我们遇到了一个问题。Docker有自己的文件系统。所以,即使我们将文件保存到磁盘上,docker也会在内存中保留一些东西,即将自己文件系统中的文件与磁盘上保存的文件连接起来。我们使用绑定坐骑。 因此,我们的java应用程序能够处理数千个文件,但dockerized版本在处理75个文件后会变慢,并且在处理大约150个文件后会抛出内存不足异常。
复制文件后有没有办法释放docker的内存

您是否尝试装入一个卷来保存文件?演示此问题会有所帮助。在本机Linux上没有单独的Docker文件系统(只是一些非常神奇的内核级重新映射);在MacOS上,我基本上尽量避免绑定挂载。如果您的应用程序都是关于大容量本地文件处理的,那么在Docker中运行它可能没有太多好处。我在WIndows环境中开发,最后我们将部署到AWS S3,所以我想是Linux。感谢David Maze,在Linux上运行解决了这个问题。