历史存储服务pkhisdb占用内存
- 在缺省情况下,使用时间越长,访问次数越多内存分配的越大
- 最大物理内存大小算法如下:(电脑总物理内存-1G)/2。
- 如服务器物理内存64G,pkhisdb最大内存可以占用(64-1)/2=31.5G物理内存
- 服务器内存很大时,虽然看起来使用的内存很多,但并不会影响电脑的使用。
- 如1500点的历史数据,运行1天后,内存达到20G左右(服务器内存总64G),使用processexplore工具(查看方法:进程探测器,查看程序内存和虚拟内存、启动时间等信息)看到pkhisdb内存为19G,这样其实不会出现问题:
修改方法
- 如希望修改pkhisdb占用内存大小,最大为4G,可以通过修改配置文件config/pkhisdb.conf文件,该文件缺省为:
dbpath=d:/hisdb logpath=../log/hisdb.log port=30002
- 在文件最后增加一项,如要限制最大物理内存为4G:wiredTigerCacheSizeGB=4
- 重新启动pkhisdb,或者启动整个eview服务端
- 此时查看log/hisdb.log,可以看到大约第11行的log中,有:wiredTiger: { engineConfig: { cacheSizeGB: 4.0 } } },说明设置生效
CONTROL [initandlisten] options: { config: "..\config\pkhisdb.conf", net: { port: 30002 }, storage: { dbPath: "d:/hisdb", engine: "mmapv1", journal: { enabled: true }, mmapv1: { smallFiles: true }, wiredTiger: { engineConfig: { cacheSizeGB: 4.0 } } }, systemLog: { destination: "file", path: "../log/hisdb.log" } }