windows server 2008 jstack -存储空间不足,没法处理此命令

最近一项目出现问题,用户访问时系统一直处于白屏状态没法响应。此问题以前也出现过,是因为以前同事开发的长链接耗尽系统全部线程致使,但当时发现问题已经修改,现在又再次出现此问题,只能导出线程日志进行分析,但分析过程当中发现直接经过命令行方式执行JDK提供工具会给出错误提示,“存储空间不足,没法处理此命令”。java

服务器环境:windows server 2008linux

根据该错误提示进行查询,发现网上不少软件都曾经遇到该提示,但不少给出的解决方案都是添加虚拟内存进行解决,但此种方案明显不适用于我这种问题。shell

在我本地开发环境经过jstack或者jps等工具执行的时候彻底没有任何问题,并且以前在linux环境下经过这些工具执行也没什么问题,为何服务器就不行了呢?windows

在网上发现了这么一段话
服务器

Jstack only allows you to connect to JVM's running in the same user context.  Many people use a service wrapper to start their products: this puts the JVM in the Local System Account user context.  Since this special account has no login shell, you won't be able to force a thread dump normally.

后来仔细一想项目确实是经过服务方式进行注册,并且以前进行问题定位的时候也是直接使用的jvisualvm 进行查看就不存在帐户问题。app


这种状况下经过CMD直接运行JPS命令,也只能等到当前jps的进程ID
工具

这种状况只能继续想办法处理下去,在处理过程当中发现国外网友也出现此问题,建议经过psexec进行处理,经过psexec使用system 用户进行程序执行。this

网上下载该程序后使用命令后,发现JPS命令可以执行了,可是仍是没法执行jstackspa



无奈只能接着尝试,在查看了psexec 的命令后,我想要不试试直接在当前窗口执行命令行



最后终于成功!

相关文章
相关标签/搜索