作为一些进行中的维护工作的一部分,我们一直在以一分钟的间隔对JVM中所有线程进行定期线程转储。 (例如:
如果继续无限期地保持这种做法,会有哪些性能或其他负面影响?
curl http://localhost:8983/solr/admin/threaddump.jsp
)如果继续无限期地保持这种做法,会有哪些性能或其他负面影响?
通常,JVM线程转储是廉价且对应用程序没有太大影响的。另一方面,Jmap -histos可能会对性能产生非常大的影响。我在维护部门工作,我们经常进行线程转储,从未见过由于线程转储而直接导致崩溃的情况。
每分钟运行一次转储的唯一问题是信息过多。
您是否将转储附加到单独的文件中?根据我的经验,您必须随着时间的推移查看转储以捕获诸如瞬态锁争用之类的事情。