Powershell远程在Azure A7虚拟机运行Java JVM失败
来源:互联网 发布:外星人源码eenot 编辑:程序博客网 时间:2024/05/20 00:11
最近,使用Powershell脚本在A7 (8核,56G内存)配置的 Azure VM(Virtual Machine,虚拟机)上远程运行Java JVM时 (java.exe -version),总是失败并返回如下的错误信息。同样的Powershell脚本,在其它低于A7配置的VM上远程执行一切正常;此外,如果使用远程桌面登录到VM上,再进行同样的操作,一切执行正常。
Error occurred during initialization of VMUnable to allocate 458752KB bitmaps for parallel garbage collection for the requested 14680064KB heap.Error occurred during initialization of VMCould not reserve enough space for object heap
以上的实验排除了是JVM(1.7)本身的问题, 看来问题很有可能是出在Powershell的远程执行方式上。Powershell Remoting依赖于WinRM (Windows Remote Management)在远程机器上执行操作。默认情况下,WinRM为每个Powershell远程连接分配了最大(MaxMemoryPerShellMB=1024)1G的内存空间(早期的版本只有150M),用于执行远程操作。但远程操作所需的执行内存空间 > 1G时,就会出现了内存不足的问题,不同的操作可能表现会有所不同,如:有的会抛出OutOfMemoryException等。针对这个问题,解决的办法就是增加MaxMemoryPerShellMB,然后重启WinRM服务:
$maxMemoryPerShellVM = 3072Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB $maxMemoryPerShellVMSet-Item WSMan:\localhost\Plugin\Microsoft.PowerShell\Quotas\MaxMemoryPerShellMB $maxMemoryPerShellVMWrite-Output "List MaxMemoryPerShellMB configuration"Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB Get-Item WSMan:\localhost\Plugin\Microsoft.PowerShell\Quotas\MaxMemoryPerShellMB # Restart WinRM service to make the change take effectRestart-Service winrm
具体要增加到多大的内存,需要自己去实验一下。
参考资源
http://blog.patricknielsen.net/2012/01/powershell-remote-system-call-using.html
http://stackoverflow.com/questions/4741676/powershell-problem-running-java-remotely
- Powershell远程在Azure A7虚拟机运行Java JVM失败
- 使用Azure powershell 创建Azure虚拟机
- 如何在远程计算机上运行PowerShell
- Java在虚拟机JVM的运行原理简介
- java虚拟机JVM运行原理
- 微软Azure PowerShell使用指南(2) - 控制虚拟机
- 使用Powershell 管理Azure云端虚拟机!
- [Azure]使用Powershell批量添加虚拟机ACL
- 通过powershell来创建Azure虚拟机
- [Azure]Azure Powershell导出虚拟机及对应磁盘
- [Azure]使用Azure Powershell重新部署ASM虚拟机
- 使用 Azure PowerShell 管理 Azure 虚拟网络和 Windows 虚拟机
- powershell 远程执行命令失败
- PowerShell 2.0在远程主机上运行命令和脚本
- 在Windows Azure上运行Java程序
- 在Windows Azure 上运行 OpenSUSE Linux的虚拟机上安装 Mono 3.0.2, 测试ASP.NET WebAPI 失败(Mono 3.0.4上成功)
- vs2010 远程调试在虚拟机上运行
- JAVA虚拟机(JVM)的运行过程
- FHTDJoWfKpytfWl
- 解决:Linux屏幕锁定后输入密码无法进入桌面
- OCP 1Z0 052 30
- 插件开发
- android显示隐藏控件
- Powershell远程在Azure A7虚拟机运行Java JVM失败
- 发生的HBV
- 语录
- select, iocp, epoll,kqueue及各种I/O复用机制
- Oracle学习路线
- 阿飞发松岛枫
- 深度分析:Android4.3下MMS发送到附件为音频文件(音频为系统内置音频)的彩信给自己,添加音频-发送彩信-接收彩信-下载音频附件-预览-播放(三,接收彩信<2,下载彩信>)
- 产品经理初探(五)myVegas Slots排名上升的秘密
- PHP运算符