💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
**问题描述**:服务器可用内存越来越少,导致部分服务(例如mysql服务)自动停止,商城打不开。 **原因:**MongoDB使用的是内存映射存储引擎,它会把磁盘IO操作转换成内存操作,如果是读操作,内存中的数据起到缓存的作用,如果是写操作,内存还可以把随机的写操作转换成顺序的写操作,总之可以大幅度提升性能。但坏处是没有方法很方便的控制MongoDB占多大内存,事实上MongoDB会占用所有能用的内存,所以最好不要把别的服务和MongoDB放一起。而且根据官方文档可知,一个mongod实例几乎要占用服务器一半以上的内存,mongodb缺内存就会跟OS要,多了也不会还。 **解决办法:** **方法一(不推荐):** 重启mongod,或者调用 db.runCommand({closeAllDatabases:1})来清除内存; **方法二(推荐):** 使用Linux命令清除缓存中的数据:echo 3 > /proc/sys/vm/drop\_caches 将以上命令加入计划任务中,每三个小时执行一次。 (1)在宝塔面板添加计划任务方法: ![](http://eweishop-yun-new.oss-cn-beijing.aliyuncs.com/global/image/2019/07/d2b18e071f09c071dccb18058590b4cb.png) (2)直接在服务器添加计划任务方法: 执行命令:crontab   -e 添加内容:\* \*/3 \* \* \* echo 3 > /proc/sys/vm/drop\_caches  > /dev/null ![](http://eweishop-yun-new.oss-cn-beijing.aliyuncs.com/global/image/2019/07/911ffcca800f9aefa46c41a223cbb8aa.png) **方法三(推荐):**使用云Mongodb(迁移本地Mongodb到云Mongodb) (1)修改本地Mongodb启动绑定的地址,允许外网访问。 ![](http://eweishop-yun-new.oss-cn-beijing.aliyuncs.com/global/image/2019/07/a20acda14c0c4c1dc5172b3cb66125b8.png) 设置完成后重启Mongodb服务。 (2)服务器安全组和防火墙开放Mongodb服务端口。 ![](http://eweishop-yun-new.oss-cn-beijing.aliyuncs.com/global/image/2019/07/60a2d9324605574bc759b8a93ca0f59e.png) (3)在云Mongodb设置ip白名单,登录云Mongodb创建数据库、用户、密码 (4)使用navicat登录服务器的Mongodb导出数据库; (5)使用navicat登录云Mongodb导入备份; (6)修改vshop/common/config/main-local.php中mongodb链接信息; (7)修改vshop\_client/eweishop\_client.ini中mongodb链接信息; (8)重启eweishop\_client,执行pkill -9 eweishop