對於主要是寫入的資料庫,mongodb記憶體佔滿之後寫入效率會變得不穩定
這個時候,你需要釋放記憶體(可試用db.runCommand({closeAllDatabases:1}) )實現
下面的c#代碼可以用來定時釋放記憶體,使用的時候注意把路徑換成你伺服器的路徑,另外就是修改下釋放頻率
Technorati 標籤: mongodb
class Program { static void Main(string[] args) { while (true) { new Thread(delegate() { Console.WriteLine("開始釋放"); Cmd(@"echo 正在啟動MongoDBd:cd D:\mongodb\binmongouse admindb.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(); } }