草庐IT

memory_pools

全部标签

Java : Out Of Memory Error when my application runs for longer time

我有一个Java应用程序,我在其中获取非常小的文件(1KB),但在一分钟内获取大量小文件,即我在一分钟内获取20000个文件。我正在获取文件并上传到S3。我在10个并行线程中运行它。我还必须持续运行这个应用程序。当这个应用程序运行几天后,我得到了内存不足的错误。这是我得到的确切错误##ThereisinsufficientmemoryfortheJavaRuntimeEnvironmenttocontinue.#Nativememoryallocation(malloc)failedtoallocate347376bytesforChunk::new#Possiblereasons:#

java - 为 Eclipse 的 .p2 树 ("bundle pool"使用不同的位置)

我目前正在尝试将Eclipse设置为从/opt/eclipse运行。一切顺利;我使用Eclipse安装程序将软件提取到/opt/eclipse;我在我的/usr/bin目录中创建了一个指向它的软链接(softlink),这样我就可以在我的用户终端的任何地方输入“eclipse”来运行它,我以为我已经完成了,直到发生这种情况:$eclipse/root/.p2/pool/plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.400.v20160518-1444:无法打开共享对象文件:权限被拒绝Gtk-Message:GtkDi

Java G1 : Monitoring for memory leaks in production

多年来,我们一直使用+UseParallelOldGC以适度的堆大小运行Java服务。现在,我们开始使用更大的堆和G1收集器推出一项新服务。进展顺利。对于我们使用+UseParallelOldGC的服务,我们通过在收集后查看老年代大小并根据阈值发出警报来监控内存泄漏。这非常有效,实际上两周前就拯救了我们的培根。具体来说,对于+UseParallelOldGC,我们执行以下操作:ManagementFactory.getMemoryPoolMXBeans()搜索名称以"OldGen"结尾的MemoryPoolMXBean结果比较getCollectionUsage().getUsed()

java - ElasticSearch in-memory 用于测试

我想编写一些与ElasticSearch的集成。为了进行测试,我想运行内存中的ES。我在文档中找到了一些信息,但没有示例如何编写此类测试。ElasticsearchReference[1.6]»Testing»JavaTestingFramework»integrationtests«unittests我也找到了下面的文章,但是没有数据了。EasyJUnittestingwithElasticSearch我正在查看如何在内存中启动和运行ES以及如何通过RESTAPI访问它的示例。 最佳答案 基于thesecondlink你提供的,我

python - 如何使用 joblib.Memory 缓存 Python 类的成员函数的输出

我想使用joblib.Memory库缓存一个类的成员函数的输出。这是一个示例代码:importjoblibimportnumpyasnpmem=joblib.Memory(cachedir='/tmp',verbose=1)@mem.cachedefmy_sum(x):returnnp.sum(x)classTestClass(object):def__init__(self):pass@mem.cachedefmy_sum(self,x):returnnp.sum(x)if__name__=='__main__':x=np.array([1,2,3,4])a=TestClass()p

python multiprocessing.Pool kill *特定*长时间运行或挂起的进程

我需要执行一个包含许多并行数据库连接和查询的池。我想使用multiprocessing.Pool或concurrent.futuresProcessPoolExecutor。Python2.7.5在某些情况下,查询请求花费的时间太长或永远不会完成(挂起/僵尸进程)。我想从超时的multiprocessing.Pool或concurrent.futuresProcessPoolExecutor中终止特定进程。这是一个如何终止/重新生成整个进程池的示例,但理想情况下我会尽量减少CPU抖动,因为我只想终止在超时秒后未返回数据的特定长时间运行的进程。由于某些原因,在返回并完成所有结果后,下面的

python - 我应该每次都创建一个新的 Pool 对象还是重复使用一个?

我正在尝试了解Python的multiprocessing.Pool对象的最佳实践。在我的程序中,我经常使用Pool.imap。通常,每次我并行启动任务时,我都会创建一个新的池对象,然后在完成后将其关闭。我最近遇到了提交到池中的任务数少于进程数的挂起。奇怪的是,它只发生在我的测试管道中,它之前运行了很多东西。单独运行测试并没有导致手牌。我认为这与制作多个池有关。我真的很想找到一些资源来帮助我了解使用Python多处理的最佳实践。具体来说,我目前正在尝试了解制作多个池对象与仅使用一个池对象的含义。 最佳答案 当您创建一个工作进程池时,

RuntimeError: CUDA out of memory

今天在训练模型的时候突然报了显存不够的问题,然后分析了一下,找到了解决的办法,这里记录一下,方便以后查阅。注:以下的解决方案是在模型测试而不是模型训练时出现这个报错的!RuntimeError:CUDAoutofmemory完整的报错信息:Traceback(mostrecentcalllast):File"/home/pytorch/LiangXiaohan/MI_Same_limb/Joint_Motion_Decoding/SelfAten_Mixer/main.py",line420,inmodule>main()File"/home/pytorch/LiangXiaohan/MI_S

python - `context` 中的 `multiprocessing.pool.Pool` 参数是什么意思?

context是classmultiprocessing.pool.Pool构造函数中的可选参数。Documentation只说:contextcanbeusedtospecifythecontextusedforstartingtheworkerprocesses.Usuallyapooliscreatedusingthefunctionmultiprocessing.Pool()orthePool()methodofacontextobject.Inbothcasescontextissetappropriately.它没有阐明什么是“上下文对象”,为什么classPool构造函数

python - 如何杀死多进程中的所有 Pool worker?

我想停止一个worker的所有线程。我有一个有10个worker的线程池:defmyfunction(i):print(i)if(i==20):sys.exit()p=multiprocessing.Pool(10,init_worker)foriinrange(100):p.apply_async(myfunction,(i,))我的程序不会停止,其他进程会继续工作,直到完成所有100次迭代。我想从调用sys.exit()的线程内部完全停止池。目前的编写方式只会停止调用sys.exit()的worker。 最佳答案 这没有按您预期