Mongodb 定时释放内存
对于主要是写入的数据库,mongodb内存占满之后写入效率会变得不稳定
这个时候,你需要释放内存(可试用db.runCommand({closeAllDatabases:1}) )实现
下面的c#代码可以用来定时释放内存,使用的时候注意把路径换成你服务器的路径,另外就是修改下释放频率
Technorati 标签: mongodb
class Program { static void Main(string[] args) { while (true) { new Thread(delegate() { Console.WriteLine("开始释放"); Cmd(@"echo 正在启动MongoDB d: cd D:\mongodb\bin mongo use admin db.runCommand({closeAllDatabases:1}) ", "bye"); Console.WriteLine("释放完成"); }).Start(); // 三小时 Thread.Sleep(3 * 3600 * 1000); } } ////// 执行命令 /// /// ///static void Cmd(string cmd, string end) { Process process = new Process { StartInfo = { FileName = "cmd.exe", UseShellExecute = false, RedirectStandardInput = true, RedirectStandardOutput = true, RedirectStandardError = true, CreateNoWindow = true } }; process.Start(); process.StandardInput.AutoFlush = true; process.StandardInput.WriteLine(cmd); process.StandardInput.WriteLine("exit"); var outPut = ""; while (!(outPut = process.StandardOutput.ReadLine()).Contains(end)) { Console.WriteLine(outPut); } Console.WriteLine(outPut); if (process.HasExited == false) //Process is still running. //Test to see if the process is hung up. if (process.Responding) //Process was responding; close the main window. process.CloseMainWindow(); else //Process was not responding; force the process to close. process.Kill(); process.Close(); } }