首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

为什么服务器内存硬件的黑色颗粒这么多?

之前有位读者问我为什么服务器内存上有这么多的颗粒,今天我专门就这个话题成文一篇作为回复。 各位从事服务器端开发的同学天天都在开发代码,代码都需要内存。确实了解一下服务器内存硬件是挺有有必要的。...所以我特地找来了一个服务器内存条来。下图是一个 32 GB 服务器内存条的正面和反面图。 可见服务器内存上有很多的黑色颗粒,相比下面的台式机内存颗粒要多很多。...从它的名称中我们可以看出,ECC 不但能发现内存中的错误,而且还可以进行纠正。 在实现,ECC 内存会板上额外再添加内存颗粒来专门负责检查错误并纠正错误。...Rank数量是2,所以总共需要 18 * 2 = 36 个内存颗粒来存储用户数据以及校验位 原因2:RDIMM 地址信号缓存 一小节我们对开篇内存计算其包含 ECC 功能后总共需要 36 个内存颗粒,...简单总结一下,服务器内存硬件颗粒数量更多的原因有3个 需要 ECC 功能,需要比普通内存多 1/8 的颗粒数来支持 ECC 需要 RCD 模块降低地址等控制信号干扰影响,将单条容量做到更大 需要 DB

10110

rpc服务器可用 dcom 无法使用任何配置的协议与计算机,如何修复Windows的“RPC服务器可用”错误?…

问题:如何修复Windows的“RPC服务器可用”错误? 有几次我的计算机上出现“RPC服务器可用”弹出窗口。我不确定它是什么?我该怎么办这个错误?...方法/步骤 1“RPC服务器可用”是在任何版本的操作系统可能出现的Windows错误。它出现在屏幕的原因有很多,但在大多数情况下,问题与系统通信问题有关。...该机制支持客户端与网络和本地计算机上的服务器之间的通信。如果在此过程中出现某些问题,则“RPC服务器可用”错误会显示在屏幕。...要在Windows修复“RPC服务器可用”错误,请尝试下面介绍的方法。 在Windows修复“RPC服务器可用”的方法 导致RPC错误的原因有很多。因此,每个问题也都有解决方案。...关闭Windows注册表并检查它是否有助于修复“RPC服务器可用”错误。 如何在Windows修复0x8024401c错误? 问题:如何在Windows修复0x8024401c错误?

8.9K30

如何在Ubuntu 14.04使用Keepalived和浮动IP设置高可用性HAProxy服务器

介绍 高可用性是系统设计的一个功能,允许应用程序在发生故障时自动重启或重新路由工作到另一个有能力的系统。在服务器方面,建立高可用性系统需要一些不同的技术。...这些将分别位于我们的Web服务器前面,并在两个后端服务器之间拆分请求。这些负载平衡器完全是冗余的。任何时候只有一个人会收到流量。 HAProxy配置会将请求传递给两个Web服务器。...但是,我们的基础架构尚未高度可用,因为如果我们的主动负载均衡器遇到问题,我们无法重定向流量。为了纠正这个问题,我们将在我们的负载均衡器服务器安装keepalived守护进程。...由于我们的负载均衡器使用循环轮换均匀地分配流量,因此每个后端Web服务器应该看到大约一半的请求。 幸运的是,客户端地址是访问日志中的第一个字段。我们可以使用简单的awk命令提取值。...结论 在本指南中,我们介绍了设置高可用性负载平衡基础架构的完整过程。此配置运行良好,因为活动HAProxy服务器可以将负载分配到后端上的Web服务器池。随着需求的增长或缩减,您可以轻松扩展此池。

2.9K30

在C中,如何知道动态分配是否成功

执行“malloc(x)”与占用 x 字节的物理内存不同。因此,依靠 malloc 确定分配是否成功是一个困难的问题。只有在写入和读取新分配的内存时才能发现。...---- 程序可以分配比服务器物理可用内存更多的内存吗 一个面试问题是“程序可以分配比服务器物理可用内存更多的内存吗?”这是希望通过它了解面试者对操作系统和虚拟内存的了解程度。...“程序可以~~分配malloc~~使用比服务器物理可用更多的内存(假设没有交换)?” 因为, malloc 从虚拟内存中分配,而不是从物理内存中分配。...否则,fork/exec 将停止在任何使用超过一半系统内存的进程中工作。 这就是 Linux 所做的。当复制COW 页面确实发生并且现在系统内存不足时,返回 ENOMEM 呢。内存写入不返回错误代码。...对于使用它们的每个进程,共享库可能会同时计入实内存和虚拟内存中,即使它们占用相同页面的只读或写时复制内存,并且内存映射文件可能会被全部计入在虚拟内存中,即使只有一小部分文件被读取,并且在 Linux

2.7K20

JVM调优1个月,性能提升400倍!怎样做到的?

UseCMSInitiatingOccupancyOnly -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xmx1800M:设置JVM最大可用内存为...就这样将配置部署到线上两台服务器(prod,prod2另外两台不变方便对比)后,运行了5天后,观察GC结果,YoungGC减少了一半以上的次数,时间减少了400s,但是FullGC的平均次数增加了41...会查询表中所有未处理的指定数据,但是由于查询的时候where条件中少加了模块这个条件,导致查询出的数量达40多万条,而且通过log查看当时的请求和数据,可以判断这个逻辑确实是已经执行了的,dump出的内存只有...而且这也能非常好的解释了为什么服务器会自动重启的原因。 解决了这个问题后,线上服务器运行完全正常了,使用未调优前的参数,运行了3天左右FullGC只有5次。...通过GC的次数和GC的时间,本次优化宣告成功,且prod1的配置更优,极大提升了服务器的吞吐量和降低了GC一半以上的时间。

67920

JVM调优1个月,性能提升400倍!怎样做到的?

UseCMSInitiatingOccupancyOnly -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xmx1800M:设置JVM最大可用内存为...就这样将配置部署到线上两台服务器(prod,prod2另外两台不变方便对比)后,运行了5天后,观察GC结果,YoungGC减少了一半以上的次数,时间减少了400s,但是FullGC的平均次数增加了41...会查询表中所有未处理的指定数据,但是由于查询的时候where条件中少加了模块这个条件,导致查询出的数量达40多万条,而且通过log查看当时的请求和数据,可以判断这个逻辑确实是已经执行了的,dump出的内存只有...而且这也能非常好的解释了为什么服务器会自动重启的原因。 解决了这个问题后,线上服务器运行完全正常了,使用未调优前的参数,运行了3天左右FullGC只有5次。...通过GC的次数和GC的时间,本次优化宣告成功,且prod1的配置更优,极大提升了服务器的吞吐量和降低了GC一半以上的时间。

84640

JVM 调优一个月,性能提升了 400 倍!

UseCMSInitiatingOccupancyOnly -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xmx1800M:设置JVM最大可用内存为...就这样将配置部署到线上两台服务器(prod,prod2另外两台不变方便对比)后,运行了5天后,观察GC结果,YoungGC减少了一半以上的次数,时间减少了400s,但是FullGC的平均次数增加了41...会查询表中所有未处理的指定数据,但是由于查询的时候where条件中少加了模块这个条件,导致查询出的数量达40多万条,而且通过log查看当时的请求和数据,可以判断这个逻辑确实是已经执行了的,dump出的内存只有...解决了这个问题后,线上服务器运行完全正常了,使用未调优前的参数,运行了3天左右FullGC只有5次 第二次调优 内存泄漏的问题已经解决了,剩下的就可以继续调优了,经过查看GC log,发现前三次GullGC...通过GC的次数和GC的时间,本次优化宣告成功,且prod1的配置更优,极大提升了服务器的吞吐量和降低了GC一半以上的时间。

53231

跨园区容灾,升级不停服:高可用负载均衡集群实践

Tencent 所有业务的负载均衡都是基于内部 Tencent GateWay 实现的,运行在标准x86服务器,优点包括:自主研发、代码可控。...Cloud load balance,是多机 active 部署的,通过 BGP 发布VIP、local adress 路由、同步 DNS 信息等,实现集群负载通过路由 OSPF 将流量分发到不同的服务器...一个集群同时只有一半服务器在工作,另外一半的机器处于冷备状态,主节点不可用之后的切换速度相对较慢; 2、横向平行扩展能力差。...目前CLB已能做到客户无感知的,完成服务器升级。升级时会选取集群一半负载均衡器,停掉OSPF协议,实行“温暖关机”。将其权重设置为0,从而保证数据包不会在经过这几台LB。...另一半LB集群会接管预备关机LB的流量,集群内连接同步,负责接管的LB具有全量的连接信息,连接不会中断。升级完成后的LB将重新启动ospf,加入集群,正常服务。 三、高可扩展性 a.

4.5K23

一个多月的努力,FGC发生频率优化了400倍

UseCMSInitiatingOccupancyOnly -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xmx1800M:设置JVM最大可用内存为...就这样将配置部署到线上两台服务器(prod,prod2另外两台不变方便对比)后,运行了5天后,观察GC结果,YoungGC减少了一半以上的次数,时间减少了400s,但是FullGC的平均次数增加了41...会查询表中所有未处理的指定数据,但是由于查询的时候where条件中少加了模块这个条件,导致查询出的数量达40多万条,而且通过log查看当时的请求和数据,可以判断这个逻辑确实是已经执行了的,dump出的内存只有...而且这也能非常好的解释了为什么服务器会自动重启的原因。 解决了这个问题后,线上服务器运行完全正常了,使用未调优前的参数,运行了3天左右FullGC只有5次 ?...对比来说,1,2两台服务器FullGC远远低于3,4两台,而且1,2两台服务器的YounGC对比3,4也减少了一半左右,而且第一台服务器效率更为明显,除了YoungGC次数减少,而且吞吐量比多运行了一天的

69540

还不懂Redis分片怎么进大厂?

一致性哈希实现常常能够在指定键的首选节点不可用时切换到其它节点。类似的,如果你添加一个新节点,部分数据就会开始被存储到这个新节点。...因为 Redis 只有相当少的内存占用且轻量级(一个空闲的实例只使用 1MB 内存),一个简单的解决办法是一开始就开启很多实例。...即使你一开始只有一台服务器,也可以在第一天就决定生活在分布式世界,使用分片来运行多个 Redis 实例在一台服务器。 你一开始就可以选择很多数量的实例。...当你新添加了第一台服务器,你就需要把一半的 Redis 实例从第一台服务器搬到第二台,以此类推。...使用 Redis 复制,就可以在很小或者根本不需要停机的时间内完成移动数据: 在新服务器启动一个空实例 移动数据,配置新实例为源实例的从服务 停止客户端 更新被移动实例的服务器 IP 地址配置 向新服务器的从节点发送

77210

【大厂求职必备】Redis分区(分片)技巧

因为 Redis 只有相当少的内存占用且轻量级(一个空闲的实例只使用 1MB 内存),一个简单的解决办法是一开始就开启很多实例。...即使你一开始只有一台服务器,也可以在第一天就决定生活在分布式世界,使用分片来运行多个 Redis 实例在一台服务器。 你一开始就可以选择很多数量的实例。...当你新添加了第一台服务器,你就需要把一半的 Redis 实例从第一台服务器搬到第二台,以此类推。...使用 Redis 复制,就可以在很小或者根本不需要停机的时间内完成移动数据: 在新服务器启动一个空实例 移动数据,配置新实例为源实例的从服务 停止客户端 更新被移动实例的服务器 IP 地址配置 向新服务器的从节点发送...SLAVEOF NO ONE 命令 以新的更新配置启动你的客户端 最后关闭掉旧服务器不再使用的实例 7 Redis分片实现 7.1 Redis 集群 Redis 集群是自动分片和高可用的首选方式。

1.2K20

干货 | 吃透Elasticsearch 堆内存

/bin/elasticsearch 4、堆内存的决定因素 堆内存的值取决于服务器可用内存大小。 5、堆内存配置建议 将最小堆大小(Xms)和最大堆大小(Xmx)设置为彼此相等。...Elasticsearch可用的堆越多,可用于缓存的内存就越多。但请注意,太多的堆内存可能会使您长时间垃圾收集暂停。...6、堆内存为什么不能超过物理机内存一半? 堆对于Elasticsearch绝对重要。 它被许多内存数据结构用来提供快速操作。但还有另外一个非常重要的内存使用者:Lucene。...这将阻止主副本分片共享同一台物理机(因为这会消除副本高可用性的好处)。 9、堆内存优化建议 方式一:最好的办法是在系统完全禁用交。...切记:宿主机内存大小的一半和31GB,取最小值。

2.8K40

jvm详解——第二篇Jvm垃圾回收机制详解

而实际对于开发者而言,这两个对象已经完全没有用处了。因此,Java 里没有采用这样的方案来判定对象的“存活性”。 2.可达性分析 这种方案是目前主流语言里采用的对象存活性判断方案。...3.复制 这种方法比较粗暴,直接把堆内存分成两部分,一段时间内只允许在其中一块内存上进行分配,当这块内存被分配完后,则执行垃圾回收,把所有存活对象全部复制到另一块内存,当前内存则直接全部清空。...把内存均分成 1:1 两等份 如下图拆分内存。 ? 每次只使用一半内存,当这一半满了后,就进行垃圾回收,把存活的对象直接复制到另一半内存,并清空当前一半内存。...这种分法的缺陷是相当于只有一半可用内存,对于新生代而言,新对象持续不断地被创建,如果只有一半可用内存,那显然要持续不断地进行垃圾回收工作,反而影响到了正常程序的运行,得不偿失。 思路2....把内存按 9:1 分 既然上面的分法导致可用内存只剩一半,那么我做些调整,把 1:1变成9:1, 最开始在 9 的内存区使用,当 9 快要满时,执行复制回收,把 9 内仍然存活的对象复制到 1 区,并清空

50630

TCP窗口调整与数据流控制以及病态窗口症状

假设服务器接收到140字节,此时由于服务器内存紧缺,因此需要从当前缓冲区中拿出120字节作为他用,于是当前接收缓冲区大小变成240,而且其中140字节已经用来接收客户端发来的数据,因此当前服务器最多只能接收...由于这种情况的应对比较麻烦,我们后面实现时还是以方便原则,在牺牲效率的基础保证简单性。...,它第一次发送360字节,如果此时服务器效率不高,它只能把第一次接收到的数据中的120字节传递给上层应用,那么此时它的接收窗口只有120字节。...病态滑动窗口症状其实是TCP协议没有现在数据发送下限导致,解决办法是禁止任何一方不断的缩写接收窗口大小,如果一方缓冲区过小那就直接将接收窗口设置为0,防止对方继续发送数据,通常情况下当可用缓冲区降至原来一半以下时就向对方发送...0接收窗口,告知对方暂时停止发送数据,等到可用缓冲区恢复到原来一半以上时再通知对方发送数据。

90710

利用 K8S 的反亲和性构建高可用应用

K8S 支持多副本部署,但不代表应用的高可用,因为多个副本可能部署到同一个节点。...早上发现应用的某一个功能有一半的请求失败,排查之后发现,原来容器服务中节点未设置反亲和性,导致 Pod 部署到同一个节点中,影响 API 网关请求后端服务。...问题在页面中使用页面功能时,发现有一半的请求失败,API 返回为空。于是想到可能和 API 网关请求后端接口有关,下图为 API 网关对应后端通道的配置,有 2 个节点。...解决问题:设置反亲和性解决问题的思路是让 Pod 不能调度在同一台服务器,需要打散调度到所有节点中。...如果集群中只有一个可用节点,或者其他节点因为资源限制(如 CPU、内存不足)无法调度 Pods,那么这些策略可能不会有效。参考文档应用高可用部署

34410

Jmeter系列之《1.Jmeter简介》

服务器模式启动:jmeter-server.bat。允许在远程节点服务器模式运行jmeter,并通过jmeter gui来控制。...都可以在这里面去配 配堆内存的大小等,启动参数可以在这个文件里手动去配置。一般情况情况下,没有特殊要求,默认就行。 2.根据经验,heap最多设置为物理内存一半,默认设置为512M。...如果heap超过物理内存一半,可能运行Jmeter会慢,甚至出现内存溢出。 heap:堆内存。Jmeter是Java开发的,java有个特点是吃内存占cpu。...添加线程组 setup thread group:可用于执行预测试操作。这些线程的行为完全像一个正常的线程组元件。类似lr中的init。...teardown thread group:可用于执行测试后动作。这些线程的行为完全像一个正常的线程组元件。类似lr中的end。

37820

java中三种常见内存溢出错误的处理方法

(比如1.5G),并且它至少要占用可用内存一半。...每一个32位的进程最多可以使用2G的可用内存,因为另外2G被操作系统保留。这里假设使用1.5G给JVM,那么还余下500M可用内存。...这500M内存中的一部分必须用于系统dll的加载,那么真正剩下的也许只有400M,现在关键的地方出现了:当你使用Java创建一个线程,在JVM的内存里也会创建一个Thread对象,但是同时也会在操作系统里创建一个真正的物理线程...在jdk1.4里头,默认的栈大小是256KB,但是在jdk1.5里头,默认的栈大小为1M每线程,因此,在余下400M的可用内存里边我们最多也只能创建400个可用线程。...,这些线程是否是应该存在的,是否可以通过优化来降低线程数; 另外一方面默认情况下java为每个线程分配的栈内存大小是1M,通常情况下,这1M的栈内存空间是足足够用了,因为在通常在栈存放的只是基础类型的数据或者对象的引用

98920
领券