我的应用程序使用MongoDB作为数据库.我们期待与mongodb集群同时连接20K +.如果我想在20台服务器上运行mongodb并以20种方式对集群进行分片,我该如何配置服务器?
以下是我到目前为止所做的:在我的20台服务器中,我有一台mongos(路由器)在30000端口上运行,在3台服务器上我在端口20000上运行mongo配置服务器.然后在每台服务器上运行3 mongod的例子.其中一个是主要的.换句话说,我有20个mongos,3个mongo-config,60个mongod服务器(20个主要服务器和40个副本服务器).
然后在我的应用程序中(也在每个服务器上运行并连接到localhost:30000 mongos),我设置了mongoOptions,使得connectionsPerHost = 1000.
所有服务开始后10-15分钟,其中一些已不再是ssh-able.这些服务器仍然可以ping通.我怀疑连接太多,导致服务器死机.
我自己的分析如下:每个连接池1K连接意味着每个分片的主要,它将有1K*20(分片)= 20K同时连接打开.一些服务器可能会运行多个主服务器,这将使连接数增加一倍或三倍,达到60K.不知怎的,mongod无法处理这么多连接,虽然我改变了系统设置以允许每个进程打开更多文件.
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 20
file size (blocks, -f) unlimited
pending signals (-i) 16382
max locked memory (kbytes, -l) 64000000
max memory size (kbytes, -m) unlimited
open files (-n) 320000
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited …Run Code Online (Sandbox Code Playgroud) 我想这个标题非常客观,但只是为了澄清:
创建Aurora数据库实例时,会要求它为数据库实例,数据库群集和数据库命名(数据库的名称是可选的,如果未指定数据库,则不会创建数据库...) .当您创建另一个实例时,您必须再次为它们命名,并且它们都不能与第一个实例相同.
那么,Aurora数据库实例和Aurora数据库群集之间有什么区别?
此外,您可以(以及何时)连接到它们中的每一个?
谢谢!!
cluster-computing amazon-web-services amazon-rds amazon-aurora
我在SLURM集群中工作,并且同时(在多个输入文件上)使用相同的bash脚本运行多个进程。
在工作结束时,该过程被终止,这是我获得的错误。
slurmstepd: error: Detected 1 oom-kill event(s) in step 1090990.batch cgroup.
Run Code Online (Sandbox Code Playgroud)
我的猜测是内存有问题。但是我怎么能知道更多呢?我没有提供足够的内存吗?还是作为用户我要求的权限超出了我的权限?
有什么建议吗?
我需要在C++中编写一个科学应用程序,进行大量计算并使用大量内存.我有部分工作,但由于资源方面的高要求,我正在考虑开始转向OpenMPI.
在此之前我有一个简单的好奇心:如果我正确理解OpenMPI的原理,那么开发人员的任务就是根据当时可用的节点调用SEND和RECEIVE的不同节点上的作业.
你知道它是否存在某些库或操作系统或具有此功能的任何东西让我的代码现在重新存在吗?基本上连接所有计算机并让它们作为一个内存和CPU共享的东西?
我有点困惑,因为有关该主题的大量材料.我应该看看云计算吗?或分布式共享内存?
我正在开发一个基于Web的应用程序来提供一些服务.这是一个科学的应用程序,它对用户上传的数据执行一些处理.对应于此处理操作的方法是用Java编写的,它们是完全独立的.显然,不同用户的数据也是独立的.
我正在寻找一种技术来扩展像C中的MPI这样的集群上的计算.我正在Java中搜索相同的工具.
谢谢.
我需要设置一个可以存储PB级文件的数据存储(文件大多是小json,图像和csv文件,但其中一些可以是~100MB二进制文件).
我正在研究分布式数据存储,它是无主的,没有单点故障.
我找到了Riak和GlusterFS.
我想问你们之前有没有人用过这两个人?
我知道那里的接口(DB/Map)非常不同.但在我看来,他们都使用哈希和类似的分布式技术.他们会有类似的性能,一致性和可用性吗?
我有一个大问题的一个星期.我尝试转换我的node.JS项目实际上在单核上运行到多核与集群.
使用websockets,此时,我对事件没有任何问题,但是,对于xhr-polling或jsonp-polling,我在集群模式下遇到socket.io的大问题.
这是我的服务器配置:
00 generic.js
'use strict';
var http = require('http'),
os = require('os'),
cluster = require('cluster');
module.exports = function(done) {
var app = this.express,
port = process.env.PORT || 3000,
address = '0.0.0.0';
if(this.env == 'test'){
port = 3030;
}
var self = this;
var size = os.cpus().length;
if (cluster.isMaster) {
console.info('Creating HTTP server cluster with %d workers', size);
for (var i = 0; i < size; ++i) {
console.log('spawning worker process %d', (i + 1));
cluster.fork();
}
cluster.on('fork', function(worker) …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用批处理脚本启动大量作业步骤.不同的步骤可以是完全不同的程序,并且每个步骤只需要一个CPU.首先,我尝试使用--multi-prog参数来执行此操作srun.不幸的是,当以这种方式使用分配给我的作业的所有CPU时,性能会大幅降低.运行时间几乎增加到序列化值.通过订阅我可以改善这一点.我在网上找不到关于这个问题的任何内容,所以我认为它是我正在使用的集群的配置问题.
所以我试着走另一条路.我实现了以下脚本(通过启动sbatch my_script.slurm):
#!/bin/bash
#SBATCH -o $HOME/slurm/slurm_out/%j.%N.out
#SBATCH --error=$HOME/slurm/slurm_out/%j.%N.err_out
#SBATCH --get-user-env
#SBATCH -J test
#SBATCH -D $HOME/slurm
#SBATCH --export=NONE
#SBATCH --ntasks=48
NR_PROCS=$(($SLURM_NTASKS))
for PROC in $(seq 0 $(($NR_PROCS-1)));
do
#My call looks like this:
#srun --exclusive -n1 bash $PROJECT/call_shells/call_"$PROC".sh &
srun --exclusive -n1 hostname &
pids[${PROC}]=$! #Save PID of this background process
done
for pid in ${pids[*]};
do
wait ${pid} #Wait on all PIDs, this returns 0 if ANY process fails
done
Run Code Online (Sandbox Code Playgroud)
我知道,--exclusive …
我已经下载了MSOpenTech Redis 3.x版,其中包括期待已久的集群功能.我的redis数据库全部正常工作,我可以在所需的最少3个节点上启动我的集群(在集群模式下).有谁知道如何配置集群(似乎没有人知道)?不幸的是,安装Linux并运行本机Linux版本对我来说不是一个选择.任何帮助将不胜感激.
我有点困惑.
一个简单的rdd.count()在多次运行时给出不同的结果.
这是我运行的代码:
val inputRdd = sc.newAPIHadoopRDD(inputConfig,
classOf[com.mongodb.hadoop.MongoInputFormat],
classOf[Long],
classOf[org.bson.BSONObject])
println(inputRdd.count())
Run Code Online (Sandbox Code Playgroud)
它打开与MondoDb服务器的连接,并简单地计算对象.似乎很直接给我
根据MongoDb,有3,349,495个条目
这是我的火花输出,都运行相同的jar:
spark1 : 3.257.048
spark2 : 3.303.272
spark3 : 3.303.272
spark4 : 3.303.272
spark5 : 3.303.271
spark6 : 3.303.271
spark7 : 3.303.272
spark8 : 3.303.272
spark9 : 3.306.300
spark10: 3.303.272
spark11: 3.303.271
Run Code Online (Sandbox Code Playgroud)
Spark和MongoDb在同一个集群上运行.
我们正在运行:
Spark version 1.5.0-cdh5.6.1
Scala version 2.10.4
MongoDb version 2.6.12
Run Code Online (Sandbox Code Playgroud)
不幸的是我们无法更新这些
Spark不确定吗?
有没有人可以开导我?
提前致谢
编辑/更多信息
我刚刚注意到我们的mongod.log中有错误.这个错误会导致不一致的行为吗?
[rsBackgroundSync] replSet not trying to sync from hadoop04:27017, it is vetoed for 333 more seconds
[rsBackgroundSync] replSet syncing …Run Code Online (Sandbox Code Playgroud) mongodb ×2
slurm ×2
amazon-rds ×1
apache-spark ×1
c++ ×1
connection ×1
express ×1
filesystems ×1
hadoop ×1
hpc ×1
java ×1
memory ×1
node.js ×1
redis ×1
riak ×1
scala ×1
socket.io ×1
windows ×1