mysql1000并发_1秒1000并发⾼并发需要什么样的服务器?题主的两个问题可以理解成⾼并发下对MongoDB的技术优化需求,可以从两个层⾯出发考虑:
⼀、服务器配置优化
⾸先我们知道⼏个概念:
oracle数据库创建临时表
MongoDB是NoSQL⾯向⽂档型存储数据库,属于重内存的类型,特别是在MongoDB 3.2默认的 WiredTiger引擎下,默认会占⽤⼤量的内存来保证⾃⾝性能。
因此MongoDB所需要的服务器,以题主使⽤的云主机为例,选型思路主要是重存储型云主机,为了保证Mongo集的读写性能,需要以SSD云盘前提下尽可能⼤内存的主机,同时vCPU也不能太低会影响压缩存储效率。
python中的remove如果技术储备不够,在参数调优、版本升级、数据迁移中有问题怕踩坑,可以采⽤⼀些成熟的云服务提供商的基于容器的云原⽣Mongo Operator产品,这样可以少踩许多坑。
参考⽹易轻⾈这类商业化中间件
⼆、软件层优化
简单介绍下我在MongoDB优化中的思路:
MongoDB主要包括mongod和mongo两个进程。
sqlserver索引mongod是处理MongoDB系统的主要进程。它处理数据请求,管理数据存储,和执⾏后台管理操作。当我们运⾏mongod命令意味着正在启动MongoDB进程,并且在后台运⾏。
mongo则是⼀个命令⾏⼯具⽤于连接⼀个特定的mongod实例。当我们没有带参数运⾏mongo命令它将使⽤默认的端⼝号和localhost连接
1、参数调优
操作系统OS层⾯连接数优化
要提供⾼并发的响应能⼒,⾸先要考虑提升MongoDB本⾝的服务能⼒,mongod进程的连接数主要是受到操作系统的默认⽂件描述符和进程/线程数限制。电脑点程序无反应转圈圈
以centos为例,需要通过ulimit -a 查看open files是否够⼤,如果太⼩可以通过以下命令设置⽤户/进程允许打开的⽂件句柄数。
命名管道ulimit -n 1048576
ulimit -u 524288
2、更换MongoDB存储引擎
更新MongoDB版本更换存储引擎: 将 MMAPv1 替换为3.2官⽅推荐的 WiredTrigger,根据官⽅数据,WT引擎在写性能上提⾼7-10倍,经过我的实际使⽤中在内存占⽤以及存储数据占⽤空间上来说都有很⼤的优化。
3、读写分离,合理使⽤Mongo副本集和分⽚
很多⼈线上环境还是⽤单机版,虽然部署快但是很多mongo⾃然提供的功能都没有⽤到像⾃动故障转移、读写分离,这些对后续系统扩容及性能优化太重要了。我想会使⽤mongo的应该是数据量达到⼀定级别,查询性能会⾮常重要,所以强烈建议上线时直接使⽤副本集⾼可⽤。
mysql是什么系统另外增加读写性能MongoDB官⽅推荐的做法是分⽚shard,可以有效的将写⼊分配到多台服务器提⾼写⼊速度,使系统实现⽔平扩容。
四、云原⽣的Mongo PaaS中间件
如果技术储备不够,在参数调优、版本升级、数据迁移中有问题怕踩坑,可以采⽤⼀些成熟的云服务提供商的基于容器的云原⽣Mongo Operator产品,这样可以少踩许多坑。
参考⽹易轻⾈这类商业化产品

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。