在服务器上运行程序,有时会出现某些进程会占着内存不释放,久而久之会出现内存不够用的情况,为此我们需要一个后台程序,在不断的监控着内存,而且我们可以设置当内存达到一定的值时,就将那些占着内存不释放进程强制杀死。
其实实现该功能的方法有很多,在此我采用无所不能的javascript来解决这个问题。
模拟的情境:
在当内存不足10M时,将iexplore.exe进程全部杀死。
代码如下:
monitorMemory.js
function monitorMemory() { var oWMI = GetObject("Winmgmts:"); var oRefresher = new ActiveXObject("WbemScripting.SWbemRefresher"); var oMemory = oRefresher.AddEnum(oWMI,"Win32_OperatingSystem").ObjectSet; do { oRefresher.Refresh(); var colMemory = new Enumerator(oMemory); // 可用内存 var memory = parseInt(colMemory.item().FreePhysicalMemory); // 当内存不足10m,调用杀死进程方法 if (memory < 10240) { killProcess(); } WScript.Sleep(300); } while(true); } monitorMemory(); function killProcess() { var cmd = new ActiveXObject("WScript.Shell"); cmd.Run("wmic process where name='iexplore.exe' call terminate"); }
启动程序命令:
在cmd命令下,切换该js文件所在目录,然后输入:
wscript monitorMemory.js
这样就可以完成监控了。。。