mognodb速度优化

1. 固态磁盘,更大的内存
2. 盘阵 : RAID磁盘阵列 RAID0 RAID10
3. 操作系统用64位,linux最好centos、Redhat、Ubuntu
4. 分配交换空间
5. 文件系统 Linux用 : ext4、xfs windows用 : NTFS、FAT
6. 对于虚拟化技术下使用mongodb的优化 :
1> 禁止内存过度分配 : echo 2 > /proc/sys/vm/overcommit_memory // 无需重启mongodb
2> mongodb网络共享磁盘会出现争夺IO的现象,即使单独使用,虚拟磁盘和实际磁盘比起来速度还是很慢,建议将mongodb托管在自己的服务器上
3> 加临时驱动器 速度快 但易丢失数据 可以当缓存用
7. 禁用NUMA : 
1> mongo启动时增加 : numactl -interleave=all
例 : numactl -interleave=all mongod -f mongod.conf --fork
2> 禁用zone_reclaim_mode :
echo 0 > /proc/sys/vm/zone_reclaim_mode // 无需重启mongodb
8. 缩小预读取内存 :
查看 : blockdev --report // RA为预读取内存
修改 : blockdev --setra 16 /dev/sdb // RA可根据实际情况设置在16-256之间
9. 禁用大内存页面
10. 选择一种磁盘调度算法
11. 不要记录访问时间 : vi /etc/fstab 将atime改为noatime 重新挂载生效 会影响其他程序使用分区
    windows下 : C:/ fsutil behavior set disablelastaccess 1
12. 修改连接限制 : 
最大连接数 : vi mongod.conf : maxConns=20000
最大文件数 : vi /etc/security/limits.conf : 最后面添加 : 
* soft nofile 20000
* hard nofile 20000 // *代表针对所有用户
执行 : sysctl -p 使操作生效
设置好后打开一个新的连接 : ulimit -n 查看是否设置成功

前面两个都设置好以后,在新的连接中重启mongodb通过 : db.serverStatus().connections 中的 avilable 查看可用连接数
13. 代码原因 : 查看访问时是否会有耗时的代码 如实时的http请求

14. 服务器原因 : 

        tomcat :

1> 服务器连接数设置 server.xml
2> vi /bin/catalina.sh
调整 :JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这是谁的博客?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值