検索

ホームページ  >  に質問  >  本文

数据库 - mongodb如何 清除占用的内存

最近在学习使用mongodb,发现它内存占用厉害,网上搜索了一下发现很多都利用use admin;db.runCommand({closeAllDatabases:1})来清除内存,我在3.0中发现没有该命令,

是3.0中取消了该命令还是我的打开的方法不对,查看了一下手册也没有发现类似的替代命令,请问最新版本中还有该命令么?如果有的话,应该怎么使用呢?

世界只因有你世界只因有你2763日前949

全員に返信(2)返信します

  • PHP中文网

    PHP中文网2017-04-26 09:03:54

    私も最近 mongodb を学習しています。http://www.hubwiz.com/course/54bdfcb188dba012b4b95c9c/

    mongodb 学習教材をお勧めします。

    返事
    0
  • 怪我咯

    怪我咯2017-04-26 09:03:54

    多くの人は、データベースが大量のメモリを消費していることに問題があると考えていますが、実際には、これはまったく問題ではなく、解決する必要はありません。
    まず、データベースの主なタスクはデータを管理することです。データ クエリをいかに高速に提供するかは、すべてのデータベースが解決する必要がある問題です。 SQLServer、MySQL、MongoDB のいずれであっても、各社のソリューションはほぼ同じであり、効率性のためにスペースを犠牲にしています。平たく言えば、実行速度を向上させるために、できるだけ多くのメモリを使用し、すべての有用なもの (インデックス、データなど) をできるだけメモリにロードすることです。したがって、これは間違いなくバグではなく、予期された動作です。逆に考えると、メモリを節約するためにデータベースの動作が遅い場合、これはデータベースの基本的な目的に反します。
    これを理解したら、質問を見てみましょう。

    1. 実稼働環境にいる場合、メモリを再利用する必要はまったくありません。これは、瞬間的な効率が非常に悪くなるだけだからです。また、後でデータベースがディスクからデータを再ロードするため、ディスク IO が増加し、書き込み速度に影響を与えるため、これは機能しません。したがって、最終的には一時的に空きメモリが得られるだけで、クエリ速度と書き込み速度は大きな影響を受けます。お得かどうかは自分で判断できます。
    2. これが開発環境であり、これらの問題を心配する必要がない場合は、mongod を再起動すると問題を簡単に解決できます。さらに、キャッシュ内のデータをさらにクリアしたい場合は、Linux コマンド echo 3 > /proc/sys/vm/drop_caches を使用できます。
    参考:

    MongoDB には大量の RAM が必要ですか?
    Linux システムでバッファとキャッシュを空にするにはどうすればよいですか?

    返事
    0
  • キャンセル返事