问题描述:服务器可用内存越来越少,导致部分服务(例如mysql服务)自动停止,商城打不开。
原因:MongoDB使用的是内存映射存储引擎,它会把磁盘IO操作转换成内存操作,如果是读操作,内存中的数据起到缓存的作用,如果是写操作,内存还可以把随机的写操作转换成顺序的写操作,总之可以大幅度提升性能。但坏处是没有方法很方便的控制MongoDB占多大内存,事实上MongoDB会占用所有能用的内存,所以最好不要把别的服务和MongoDB放一起。而且根据官方文档可知,一个mongod实例几乎要占用服务器一半以上的内存,mongodb缺内存就会跟OS要,多了也不会还。
解决办法:
方法一(不推荐):
重启mongod,或者调用 db.runCommand({closeAllDatabases:1})来清除内存;
方法二(推荐):
使用Linux命令清除缓存中的数据:echo 3 > /proc/sys/vm/drop_caches
将以上命令加入计划任务中,每三个小时执行一次。
(1)在宝塔面板添加计划任务方法:
(2)直接在服务器添加计划任务方法:
执行命令:crontab -e
添加内容:* */3 * * * echo 3 > /proc/sys/vm/drop_caches > /dev/null
方法三(推荐):使用云Mongodb(迁移本地Mongodb到云Mongodb)
(1)修改本地Mongodb启动绑定的地址,允许外网访问。
设置完成后重启Mongodb服务。
(2)服务器安全组和防火墙开放Mongodb服务端口。
(3)在云Mongodb设置ip白名单,登录云Mongodb创建数据库、用户、密码
(4)使用navicat登录服务器的Mongodb导出数据库;
(5)使用navicat登录云Mongodb导入备份;
(6)修改eweishop/common/config/main-local.php中mongodb链接信息;
(7)修改eweishop_client/eweishop_client.ini中mongodb链接信息;
(8)重启eweishop_client,执行pkill -9 eweishop
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
三优资源网 » 关于Mongodb占用内存处理办法
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 三优资源网