...
- 在缺省情况下,使用时间越长,访问次数越多内存分配的越大
- mongodb通过操作系统内存映射方式分配内存,自己并不管理内存,导致缺省情况下,物理内存占用总是趋向于100%。
- mongodb的存储引擎缺省分配物理内存策略:
- 最大物理内存大小算法如下:(电脑总物理内存-1G)/
- 2。如服务器物理内存64G,pkhisdb最大内存可以占用(64-1)/2=31.5G物理内存
- 如果通过下面方法修改存储引擎大小,如wiredTigerCacheSizeGB=4。但在2012上实测内存还是占用到95%。
- 可以通过下面方法修改
- 在windows 2008下可以通过安装操作系统自带工具WSRM(系统资源管理器)来限制内存
- 在windows2012下没有WSRM,需要通过Hyper-V
- Linux可以通过cgroups工具限制物理内存
- 服务器内存很大时,虽然看起来使用的内存很多,不会影响mongodb使用,但影响该服务器上其他程序的使用。服务器内存很大时,虽然看起来使用的内存很多,但并不会影响电脑的使用。
- 如1500点的历史数据,运行1天后,内存达到20G左右(服务器内存总64G),使用processexplore工具(查看方法:进程探测器,查看程序内存和虚拟内存、启动时间等信息)看到pkhisdb内存为19G,这样其实不会出现问题:
...