通常 RDBMS 只有一个主服务器用于写入,那么虚拟化有什么意义呢?
它不能做多DB,多一层封装并不意味着速度会变慢。
但是我知道存在是有原因的,哪些场景特别适合数据库虚拟化?
通常 RDBMS 只有一个主服务器用于写入,那么虚拟化有什么意义呢?
它不能做多DB,多一层封装并不意味着速度会变慢。
但是我知道存在是有原因的,哪些场景特别适合数据库虚拟化?
我正在和我的老板谈论负载平衡一个 2 节点的 Galera 集群,我们不确定是否有任何理由。
对于写入,他的论点是,即使我们平衡写入,它也必须写入每个服务器以进行复制。
对于读取,我们可以平衡服务器之间的读取,但是如果现在所有内容都通过另一台服务器上的单个 VM,这真的能节省时间吗?
我们有两个专用的 SQL Server,它们处于 Active-Active Galera 设置中。
我能想到的做 HA-Proxy 的唯一方法是在另一台服务器上安装第三个虚拟机,这真的值得通过这个虚拟机来获得性能提升吗?这个虚拟机将在一个服务器上与其他流量拥塞?
将 HA-Proxy 放在 SQL Server 上并负载平衡读取是否可能/是否有意义,但它仍然会通过带 HA-Proxy 的主服务器到达服务器 B。
只是为这个简单的设置寻找一些一般的想法和建议。
关于 SQL Server 虚拟化,一直在尝试查找信息是否对将数据设备与日志设备分离到不同的准虚拟 SCSI (PVSCSI) 适配器有积极的性能影响,类似于此处所做的。
在客户端上存在这样一种情况,即添加了一个额外的 PVSCSI,并将日志设备分离到新的 PVSCSI,从而显示出可观的性能提升。然而,仍然存在疑问,是由于这种分离还是仅仅由于现在存在额外的 PVSCSI。
众所周知,日志磁盘通常是按顺序写入的,而数据磁盘的读/写则遵循更随机的模式,将这两种不同类型的文件放在不同的磁盘上会带来性能优势。
但是控制器呢?将这些不同的模式保存在单独的 PVSCSI 控制器中是否也有好处?
有人对此有任何见解吗?
提前致谢
我的理解是,使用 VM 的一大好处是您可以在主机上的虚拟机之间共享资源。因此,您可以拥有一台具有 120 个 CPU 的主机,并在其上放置 5 个虚拟机,每个虚拟机具有 32 个 CPU。额外的 CPU 在 VM 之间“共享”,主机根据需要动态分配 CPU。内存也一样。
我也明白这对于容纳 SQL Server 的 VM 来说是一个很大的禁忌,但我的 VM 管理员不同意。有没有人有任何证据或文件?
我不知道这是否重要,但我们正在使用 VMWare。
我正在与这家公司合作,目前在虚拟化的 Windows Server 2003 中运行他们的 SQL Express 数据库。
对于将其替换为虚拟化精简版 Windows 7 或 8.1,您的专家有何看法?
我知道这并不理想,但他们不愿意为新的服务器许可证付费。(请理解,根据您所在的位置,此费用可能是一个更高的问题)。
这是一个只有 8 个本地用户和一些 RDP 用户(2 个普通用户,2 个非常随意的用户)的小型网络。
如果我理解正确,Windows 7 已将 TPC 连接限制提高到 20,但我不确定此限制或其他限制将如何影响其上的 SQL 实例。
数据库在年初被清除,然后它的大小是 ~1.5 GB,到年底它增长 (*) 到 ~10 GB。
( ) 它会不必要地增长,因为其中绝对没有那么多有价值的数据,它是大多数日志...*
你有什么建议?谢谢你。
我想知道是否有人可以帮助解决我们似乎遇到的 MongoDB/页面文件问题,因为我们的数据库大小随着时间的推移而增加。MongoDB 时不时会在我们的副本集中的特定节点上崩溃,并且它不会再次启动,直到我们显着增加(双倍是安全的)我们的页面文件大小。当前,页面文件为 42GB。我们将 MongoDB 作为 3 节点副本集运行,每个节点都在 Azure 中的 Windows Server 2012 R2 虚拟机上运行。每个服务器有 3.5 GB 的内存。MongoDB 是 2.6.5 版。
我看过下面相关的帖子,我知道 MongoDB 使用内存映射文件,当我们没有足够的 RAM 时,虚拟内存可能会帮助解决这个问题。我不明白的是:
为什么 MongoDB 在启动时需要如此多的内存(对于 131GB 的数据库 >32GB 的页面文件)并且工作集相对较小(~100MB)?大概它可以根据需要换出文件,尤其是对于这么大的页面文件,那么为什么 MongoDB 会崩溃呢?
以下是我到目前为止找到的帖子:
和这个
SERVER-10044这解释了为什么 Mongo 崩溃并暗示 VM 更糟
在此先感谢您的帮助。
为了提供更多上下文,我们使用 MongoDB 来记录数据,因此大多数集合都被写入但很少从中读取,除了一些小集合(总共 100MB),它们经常读写。数据存储在单个 Mongo DB 数据库中,其统计信息如下所示(修改了数据库和集合名称):
"db" : "MyDatabase",
"collections" : 854,
"objects" : 243025868,
"avgObjSize" : 541.2304596809423,
"dataSize" : 131533002252,
"storageSize" : 172592721920,
"numExtents" : 7268,
"indexes" : 1934,
"indexSize" : 27824138048,
"fileSize" : 210284576768,
"nsSizeMB" : 16,
"dataFileVersion" : {
"major" : 4,
"minor" : 5
},
"extentFreeList" : {
"num" : 3,
"totalSize" : 110592
},
"ok" : 1
工作集似乎在 100 MB 左右,如下图所示:
"workingSet" : {
"note" : "thisIsAnEstimate",
"pagesInMemory" : 20874,
"computationTimeMicros" : 26236,
"overSeconds" : 876
},
最近发生故障的辅助设备上的日志文件输出如下(虽然第一次发生故障是在正常操作期间,但它发生在启动期间):
2014-11-25T09:25:17.833+0000 [rsBackgroundSync] replSet 同步到:10.1.6.71:27017 2014-11-25T09:25:17.833+0000 [rsBackgroundSync] replset 设置 syncSourceFeedback 到 10.1.6.71:27017 1-2014 25T09:25:17.849+0000 [rsSync] replSet 仍在同步,尚未达到 minValid optime 54744561:c 2014-11-25T09:25:18.286+0000 [rsSync] replSet SECONDARY 2014-11-25T09:26:01.590+0000 [ conn21] serverStatus 非常慢:{ 在 basic 之后:0,在 asserts 之后:0,在 backgroundFlushing 之后:0,在连接之后:0,在游标之后:0,在 dur:0 之后,在 extra_info:0 之后,在 globalLock:0 之后,在 indexCounters 之后:0,在锁之后:0,在网络之后:0,在opcounters之后:0,在opcountersRepl之后:0,在oplog之后:10451,在recordStats之后:10451,在repl之后:10451,在结束时:10451} 2014-11-25T09:26 :01.590+0000 [conn21] 命令 admin.$cmd 命令:serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:65 reslen:4028 16764ms 2014-11-25T09:26:31.155+0000 [DataFileSync] 刷新 mmaps 花费 15022ms 处理 115 个文件 2014- 11-25T09:26:47.501+0000 [conn5] serverStatus 非常慢:{ 在 basic 之后:0,在断言之后:0,在 backgroundFlushing 之后:0,在连接之后:0,在游标之后:0,在 dur:0 之后,在 extra_info 之后:0,在 globalLock 之后:0,在 indexCounters 之后:0,在锁之后:0,在网络之后:0,在 opcounters 之后:0,在 opcountersRepl 之后:0,在 oplog 之后:4791,在 recordStats 之后:4791,在 repl 之后:4791,在结束: 4791 } 2014-11-25T09:26:47.501+0000 [conn5] 命令 admin.$cmd 命令:serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer worker 6]1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:65 reslen:4028 16764ms 2014-11-25T09:26:31.155+0000 [DataFileSync] 刷新 mmaps 为 115 个文件花费了 15022ms 2014-11-25T09: 26:47.501+0000 [conn5] serverStatus 非常慢:{ 在 basic 之后:0,在断言之后:0,在 backgroundFlushing 之后:0,在连接之后:0,在游标之后:0,在 dur:0 之后,在 extra_info 之后:0,之后globalLock:0,indexCounters 之后:0,锁之后:0,网络之后:0,opcounters 之后:0,opcountersRepl 之后:0,oplog 之后:4791,recordStats 之后:4791,repl 之后:4791,结束时:4791 } 2014 -11-25T09:26:47.501+0000 [conn5] 命令 admin.$cmd 命令:serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11 -25T09:27:06.350+0000 [repl writer worker 6]1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:65 reslen:4028 16764ms 2014-11-25T09:26:31.155+0000 [DataFileSync] 刷新 mmaps 为 115 个文件花费了 15022ms 2014-11-25T09: 26:47.501+0000 [conn5] serverStatus 非常慢:{ 在 basic 之后:0,在断言之后:0,在 backgroundFlushing 之后:0,在连接之后:0,在游标之后:0,在 dur:0 之后,在 extra_info 之后:0,之后globalLock:0,indexCounters 之后:0,锁之后:0,网络之后:0,opcounters 之后:0,opcountersRepl 之后:0,oplog 之后:4791,recordStats 之后:4791,repl 之后:4791,结束时:4791 } 2014 -11-25T09:26:47.501+0000 [conn5] 命令 admin.$cmd 命令:serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11 -25T09:27:06.350+0000 [repl writer worker 6]0 锁(微) r:65 reslen:4028 16764ms 2014-11-25T09:26:31.155+0000 [DataFileSync] 刷新 mmaps 为 115 个文件花费了 15022ms 2014-11-25T09:26:47.501+0000 [conn5] serverStatus 非常slow: { 在 basic: 0 之后,在 asserts: 0 之后,在 backgroundFlushing: 0 之后,在连接之后:0,在游标之后:0,在 dur: 0 之后,在 extra_info: 0 之后,在 globalLock: 0 之后,在 indexCounters: 0 之后,在锁之后:0,在网络之后:0,在opcounters之后:0,在opcountersRepl之后:0,在oplog之后:4791,在recordStats之后:4791,在repl之后:4791,在结束:4791}2014-11-25T09:26:47.501 + 0000 [ conn5] 命令 admin.$cmd 命令:serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer工人 6]0 锁(微) r:65 reslen:4028 16764ms 2014-11-25T09:26:31.155+0000 [DataFileSync] 刷新 mmaps 为 115 个文件花费了 15022ms 2014-11-25T09:26:47.501+0000 [conn5] serverStatus 非常slow: { 在 basic: 0 之后,在 asserts: 0 之后,在 backgroundFlushing: 0 之后,在连接之后:0,在游标之后:0,在 dur: 0 之后,在 extra_info: 0 之后,在 globalLock: 0 之后,在 indexCounters: 0 之后,在锁之后:0,在网络之后:0,在opcounters之后:0,在opcountersRepl之后:0,在oplog之后:4791,在recordStats之后:4791,在repl之后:4791,在结束:4791}2014-11-25T09:26:47.501 + 0000 [ conn5] 命令 admin.$cmd 命令:serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer工人 6]155+0000 [DataFileSync] 刷新 mmaps 为 115 个文件花费了 15022ms 2014-11-25T09:26:47.501+0000 [conn5] serverStatus 非常慢:{ 在 basic 之后:0,在断言之后:0,在 backgroundFlushing 之后:0,在连接之后: 0,游标之后:0,dur:0之后,extra_info之后:0,globalLock之后:0,indexCounters之后:0,锁之后:0,网络之后:0,opcounters之后:0,opcountersRepl之后:0,oplog之后:4791,recordStats 之后:4791,repl 之后:4791,结束:4791 } 2014-11-25T09:26:47.501+0000 [conn5] 命令 admin.$cmd 命令:serverStatus { serverStatus: 1, oplog: 1 } keyUpdates :0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer worker 6]155+0000 [DataFileSync] 刷新 mmaps 为 115 个文件花费了 15022ms 2014-11-25T09:26:47.501+0000 [conn5] serverStatus 非常慢:{ 在 basic 之后:0,在断言之后:0,在 backgroundFlushing 之后:0,在连接之后: 0,游标之后:0,dur:0之后,extra_info之后:0,globalLock之后:0,indexCounters之后:0,锁之后:0,网络之后:0,opcounters之后:0,opcountersRepl之后:0,oplog之后:4791,recordStats 之后:4791,repl 之后:4791,结束:4791 } 2014-11-25T09:26:47.501+0000 [conn5] 命令 admin.$cmd 命令:serverStatus { serverStatus: 1, oplog: 1 } keyUpdates :0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer worker 6]在断言之后:0,在 backgroundFlushing:0 之后,在连接之后:0,在游标之后:0,在 dur:0 之后,在 extra_info:0 之后,在 globalLock:0 之后,在 indexCounters:0 之后,在锁之后:0,在网络之后:0, opcounters 之后:0,opcountersRepl 之后:0,oplog 之后:4791,recordStats 之后:4791,repl 之后:4791,最后:4791} 2014-11-25T09:26:47.501+0000 [conn5] 命令 admin.$cmd 命令: serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer worker 6]在断言之后:0,在 backgroundFlushing:0 之后,在连接之后:0,在游标之后:0,在 dur:0 之后,在 extra_info:0 之后,在 globalLock:0 之后,在 indexCounters:0 之后,在锁之后:0,在网络之后:0, opcounters 之后:0,opcountersRepl 之后:0,oplog 之后:4791,recordStats 之后:4791,repl 之后:4791,最后:4791} 2014-11-25T09:26:47.501+0000 [conn5] 命令 admin.$cmd 命令: serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer worker 6]回复后:4791,结束时:4791 } 2014-11-25T09:26:47.501+0000 [conn5] 命令 admin.$cmd 命令:serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros ) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer worker 6]回复后:4791,结束时:4791 } 2014-11-25T09:26:47.501+0000 [conn5] 命令 admin.$cmd 命令:serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros ) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer worker 6]VirtualProtect for m:/mongodb/data/MyDatabase.72 chunk 21220 failed with errno:1455 分页文件太小,无法完成此操作。(块大小为 67108864,地址为 14b90000000)在 mongo::makeChunkWritable 中,终止 2014-11-25T09:27:06.350+0000 [repl writer worker 6] MyDatabase.RC_PUR_11_456754 Fatal Assertion 16362 2014-11-25:25:T69 0000 [repl writer worker 6] 堆栈跟踪失败,SymInitialize 失败,错误 3765269347 2014-11-25T09:27:06.615+0000 [repl writer worker 6] MyDatabase.RC_PUR_11_456754 2014-11-25T09:27:06.615+0000 [repl writer工人 6]
***在 fassert() 失败后中止