InfraPub 为您找到相关结果 219

Linux下多线程程序为什么消耗大量虚拟内存

,使用了很多叫做arena的memory pool,缺省配置在64bit下面是每一个arena为64M,一个进程可以最多有 cores * 8个arena。假设你的机器是4核的,那么最多可以有4 * 8 = 32个arena,也就是使用32 * 64 = 2048M内存。 当然你也可以通过设置环境变量来改变arena的数量.例如 export MALLOC_ARENA_MAX=1 hadoop推荐把这个值设置为4。当然了,既然是多核的机器,而arena的引进是为了解决多线程内存分配竞争的问题,那么设置为cpu核的数量估计也是一个不错的选择。设置这个值以后最好能对你的程序做一下压力测试,用以看看改变arena的数量是否会对程序的性能有响。 mallopt(M_ARENA_MAX, xxx)如果...阅读全文

博文 2015-01-28 10:35:39 debian.cn

树莓派 9 周年:你不知道的树莓派冷知识

属于与 Arduino 相同的类别,适合用于嵌入式设备或物联网设备的开发,例如控制电动机、灯光和传感器,并在打开电源后立即运行程序,而无需启动,也无需担心在不安全关闭的情况下拔下插头会丢失数据。4. 最受欢迎的树莓派Raspberry Pi 3 B 是有史以来最畅销的树莓派机型,目前已累计售出 1320 万台。 而在目前流行的各种 Raspberry Pi 4 B RAM 版本中,4 GB 型号的销量最高,大约是 8 GB 和 2 GB 出货量的两倍。 值得一提的是,Raspberry Pi Pico 虽然仅上市了几周,但已经售出了 250,000 台,此外还有750,000 台处于待售状态。受疫情等因素响,2020 年是树莓派产品销量最高的一年,总共售出 710 万台不同型号的树莓派设备...阅读全文

博文 2021-03-11 17:03:55 diablo4

基于thanos搭建分布式prometheus

querier会根据label自动去重,确保返回给grafana的数据不会重复,这个特性很关键。 有了thanos querier组件,我们可以很简单的解决单点故障问题: 部署N个prometheus同时抓取数据,然后thanos querier代理它们,这样prometheus挂了一台也不响服务,数据在其他prometheus上还有。 方案1:thanos sidecar + thanos querier 实际上,querier不能直接反向代理prometheus,而是需要在prometheus的POD内部署一个thanos sidecar组件,querier反向代理至sidecar,再由sidecar查询POD内的prometheus。 querier和sidecar之间走GRPC协议,POD内的...阅读全文

博文 2021-03-01 13:02:46 鱼儿的博客

运维的未来:云服务兴起,运维人员会“下岗”吗?

我合作的或者是我了解的众多 dev 组织似乎不用 QA 也做得挺好。 同样的状况很快也会发生在运维人员身上。我之前在 Workiva 的基础设施和可靠性小组里工作时,我们将运行和基础建设工程团队并入一个单独的团队,该团队是由网站可靠工程师组成的,负责构建和维护基础设施服务,配置管理,日志管理,集合管理,监控等。 我非常支持通过愿景实现对团队的领导。发展愿景令人信服,可以使团队之间达成共识,减少功能孤岛和组织孤岛的响,并能够从内部激励员工。它能使团队高度一致又能松散耦合,能够更好地做出决定。我对运维未来作为组织能力的想法本质上是将合成工程看作是合理结论。跟 QA 一样,运维能力也应该被嵌入发展团队中。事实是,没有运维技能,你不可能在现代组织中成为一名合格的软件工程师。现如今的运维团队,应该重...阅读全文

博文 2021-01-28 17:50:31 debian.cn

下一代时间同步服务 Chrony 详解

,也可以在一台不同的远程计算机上工作。 Chrony 和 NTPD 精度对比测试 我们可以从 Chrony 的官方网站上可以看到与 NTPD 各维度详细对比: 从其测试结果上看似乎是各维度性能都可以吊打 NTPD。因此 Chrony 的整体评价还是比较高的。 Chrony 相较于 NTPD 服务的优势 更快的同步只需要数分钟而非数小时时间,从而最大程度的减少时间和频率误差,这对于并非全天运行的台式计算机或系统而言非常有用。能够更好的响应时间频率的快速变化,这对于具备不稳定时钟的虚拟机或导致时钟频率反复变化的节能技术而言非常有用。在初始同步后,它并不会停止时钟,以防对需要系统时间保持单调的程序造成响。在应对临时非对称延迟时,(例如:大规模下载造成连接饱和时)提供了更好的稳定性。无需对服务器进行...阅读全文

博文 2021-01-04 08:41:14 debian.cn

聊聊很重要的内核技术eBPF

Viljoen在其中介绍了Netronome SmartNIC上每个FPC每秒达到300万个数据包,每个SmartNIC有72到120个FPC,可能最大支持eBPF吞吐量4.3 Tbps!(理论上) eBPF 触发了新一代网络、安全性、应用程序配置/跟踪和性能故障排除等领域的工具开发,这些工具不再依赖现有的内核功能,而是在不响执行效率或安全性的情况下主动重新编程运行时行为。 那我们看看有哪些基于 eBPF 的工程,这些工程或许你已经知道,或是已经经常使用。 基于eBPF的项目 1:bcc BCC是用于创建基于eBPF的高效内核跟踪和操作程序的工具包,其中包括一些有用的命令行工具和示例。 BCC简化了用C进行内核检测的eBPF程序的编写,包括LLVM的包装器以及Python和Lua的前端。它还提供了用于...阅读全文

博文 2020-08-16 11:08:44 debian.cn

Redis 命令、特性介绍与性能调优

: save [seconds] [changes] 意为在[seconds]秒内如果发生了[changes]次数据修改,则进行一次RDB快照保存,例如 save 60 100 会让Redis每60秒检查一次数据变更情况,如果发生了100次或以上的数据变更,则进行RDB快照保存。 可以配置多条save指令,让Redis执行多级的快照保存策略。 Redis默认开启RDB快照,默认的RDB策略如下: save 900 1 save 300 10 save 60 10000 也可以通过BGSAVE命令手工触发RDB快照保存。 RDB的优点: 对性能响最小。如前文所述,Redis在保存RDB快照时会fork出子进程进行,几乎不响Redis处理客户端请求的效率。 每次快照会生成一个完整的数据快照文件,所以可...阅读全文

博文 2018-10-27 10:37:55 debian.cn

Kafka 3.0新特性全面曝光,真香!

发送消息的客户端。 consumer:消息消费者,就是从broker拉取数据的客户端。consumer group:消费者组,由多个消费者consumer组成。消费者组内每个消费者负责消费不同的分区,一个分区只能由同一个消费者组内的一个消费者消费;消费者组之间相互独立,互不响。所有的消费者都属于某个消费者组,即消费者组是一个逻辑上的订阅者。broker:一台服务器就是一个broker,一个集群由多个broker组成,一个broker可以有多个topic。topic:可以理解为一个队列,所有的生产者和消费者都是面向topic的。partition:分区,kafka中的topic为了提高拓展性和实现高可用而将它分布到不同的broker中,一个topic可以分为多个partition,每个...阅读全文

博文 2022-04-28 16:02:11 mp.weixin.qq.com

RabbitMQ 高可用实现镜像队列

列中某个节点宕掉的后果: 当slave宕掉了,除了与slave相连的客户端连接全部断开之外,没有其他响。 当master宕掉时,会有以下连锁反应: 与master相连的客户端连接全部断开;选举最老的slave节点为master。若此时所有slave处于未同步状态,则未同步部分消息丢失;新的master节点requeue所有unack消息,在此我向大家推荐一个架构学习交流圈:830478757 帮助突破瓶颈 提升思维能力,因为这个新节点无法区分这些unack消息是否已经到达客户端,亦或是ack消息丢失在老的master的链路上,亦或者是丢在master组播ack消息到所有slave的链路上。所以处于消息可靠性的考虑,requeue所有unack的消息。此时客户端可能有重复消息;如果客户端连着...阅读全文

博文 2018-12-30 19:21:59 debian.cn

粘合万种芯片的“万能胶” 是摩尔定律的续命丹吗? - 硬件

需要细小的引线和线宽,复杂度高,良率受制程响大,成本也会很高。"刘宏钧说到。以英特尔的EMIB为例,从英特尔所发布的公开论文中可以发现,EMIB在工艺实现上面临不少难题,需要进行材料和工艺的开发,其硅桥的设计工作需要由懂材料、懂封装、懂制程和懂信号完整性的资深工程师们来共同实现。另外,晶圆制造材料、设备都需要进行改进,其时间和成本是除苹果、英特尔等头部芯片公司之外无法承受的。不仅如此,即便是有了UCIe这芯片万能胶,"Chiplet在哪里"的问题也难以解决。"UCIe之后,Chiplet面临的是Chiplet供应商和应用商谁先迈出第一步的问题。这也是一个'鸡与蛋'的问题。Chiplet供应商较为关心的是Chiplet一次性工程费用(NRE)该由谁来承担,而应用商则担心是否有足够丰富的...阅读全文

博文 2022-04-08 07:35:46 cnBeta.COM

如何写好技术文档 — 来自十多年的文档经验总结

的语言,你只需要将问题讲清楚即可。 - 有时候工具不好用也会响的文档写作。如果没有一个很好的写作工具将写文档嵌入到开发工作流程中的话,写作确实会增加工作的负担。 - 大多数人将写文档看做是工作的额外负担。 我代码都没时间写,哪有时间写文档!,这其实是错误的观念,文档虽然前期有投入,但能让你代码的后期维护成本大幅降低,磨刀不误砍柴工这个道理相信大家都还是能理解的。 ## 如何产出高质量文档 ## 既然理解了好文档的重要性,我们如何保证在时间的长河中维护好一份文档,这里有些相关的方法论,大家可以参考下。 ## 像管理代码一样管理文档 ## 对于如何写出好代码,整个技术圈已经有好多经验的总结了,比如书籍《重构》《代码简洁之道》…… 针对各种编程语言,也有相关的规范,比如国外的Google C...阅读全文

博文 2021-07-30 16:15:13 joseph

协议介绍之深入了解 gRPC

streams,多个 streams 发送的数据互相不响。 Stream 可以被 client 和 server 单方面或者共享使用。 Stream 可以被任意一段关闭。 Stream 会确定好发送 frame 的顺序,另一端会按照接受到的顺序来处理。 Stream 用一个唯一 ID 来标识。 这里在说一下 Stream ID,如果是 client 创建的 stream,ID 就是奇数,如果是 server 创建的,ID 就是偶数。ID 0x00 和 0x01 都有特定的使用场景。 Stream ID 不可能被重复使用,如果一条连接上面 ID 分配完了,client 会新建一条连接。而 server 则会给 client 发送一个 GOAWAY frame 强制让 client 新建一条连接。 为了更...阅读全文

博文 2017-06-22 11:08:48 debian.cn

kubectl 创建 Pod 背后到底发生了什么?—探寻 Kubectl 创建 Pod 的原理

Pod 启动失败时(例如,由于资源配额),可以减轻 kube-apiserver 被大量不必要的 HTTP 请求吞没的风险。如果创建失败,最好能够优雅地失败,并且对其他的系统组件造成的响最小! Kubernetes 通过 Owner References(在子级资源的某个字段中引用其父级资源的 ID) 来构造严格的资源对象层级结构。这确保了一旦 Controller 管理的资源被删除(级联删除),子资源就会被垃圾收集器删除,同时还为父级资源提供了一种有效的方式来避免他们竞争同一个子级资源(想象两对父母都认为他们拥有同一个孩子的场景)。 Owner References 的另一个好处是:它是有状态的。如果有任何 Controller 重启了,那么由于资源对象的拓扑关系与 Controller 无...阅读全文

博文 2022-04-18 16:18:04 CSDN

最全的 DevOps 工具集合

它身上可以找到 Screw.Unit、JSSpec、JSpec 和 RSpec 等诸多单元测试框架的子。 Cucumber Cucumber 是一种支持行为驱动开发的软件工具。 Cucumber BDD 方法的核心是一种称为 Gherkin 的普通语言解析器。它能用客户可以理解的逻辑语言来指定预期的软件行为。 持续集成和部署(CI/CD) CI 工具的存在是为了快速反馈和减少缺陷、等待。目前业务比较常用的 CI 工具包括 Jenkins、CircleCI、Travis CI、Concourse、AWS CodePipeline 和 Azure Pipelines。 Jenkins Jenkins 是一个免费的开源自动化服务器。Jenkins 可用来自动化软件开发过程中非人类参与的工作,基于...阅读全文

博文 2021-05-26 14:35:21 博客园

六大算法之三:动态规划【转载】

->A4};……; {A1,A2,...,Ai}->Ai+1. 这种方式就是第二数学归纳法。对于Ai+1需要前面的所有前序状态才能完成推理过程。我们将这一模型称为高阶马尔科夫模型。对应的推理过程叫做“动态规划法”。 上述两种状态转移图如下图所示: 能用动规解决的问题的特点 能采用动态规划求解的问题的一般要具有3个性质: (1) 最优化原理:如果问题的最优解所包含的子问题的解也是最优的,就称该问题具有最优子结构,即满足最优化原理。 (2) 无后效性:即某阶段状态一旦确定,就不受这个状态以后决策的响。也就是说,某状态以后的过程不会响以前的状态,只与当前状态有关。 (3)有重叠子问题:即子问题之间是不独立的,一个子问题在下一阶段决策中可能被多次使用到。(该性质并不是动态规划适用的必要条件,但是如果没...阅读全文

博文 2021-07-31 07:18:53 CSDN博客

7大维度看国外企业为啥选择gRPC打造高性能微服务

解释,否则错误很容易产生,事情很容易被拖延。 以下是在选择框架时的一些设计考虑因素: 强类型 - 消息是否是强类型的?如果通过服务边界发送的消息清晰可见,那么可以消除由于类型而造成的设计和运行时错误。 打开解释 - 能够直接从服务API规范生成客户端库,减少了误解的问题。错误条件 - 有一套明确定义的错误代码可以更容易一致地交流问题。 文档 - 服务API应该是易读易懂的。定义服务API的格式应该尽可能清楚,准确地描述端点。 版本控制 - 更改是不可避免的,这是一个很好的选择,在某些时候,服务API将需要修改。所使用的消息传递格式和服务定义可以响修改API并将其部署到生产的容易程度。是否有明确的路径来增加版本及其相应的库,并推出更改? 微服务最佳实践,为什么可扩展性是重要的 除了上面列出的...阅读全文

博文 2018-03-19 17:51:32 debian.cn

HAProxy用法详解 最详细中文文档

。即使用户空间的占用率提高一倍,其CPU占用率也仅为10%,这也解释了为何7层处理对性能响有限这一现象。由此,在高端系统上HAProxy的7层性能可轻易超过硬件负载均衡设备。 在生产环境中,在7层处理上使用HAProxy作为昂贵的高端硬件负载均衡设备故障故障时的紧急解决方案也时长可见。硬件负载均衡设备在“报文”级别处理请求,这在支持跨报文请求(request across multiple packets)有着较高的难度,并且它们不缓冲任何数据,因此有着较长的响应时间。对应地,软件负载均衡设备使用TCP缓冲,可建立极长的请求,且有着较大的响应时间。 二,安装配置HAProxy 以下实验环境均为 Debian i686平台。 1,安装haproxy [root@LB ~]# apt-get...阅读全文

博文 2014-05-10 17:14:46 debian.cn

提问的智慧 – 全文

自大,烦请检查你的假设,我们并未要求你崇拜我们,事实上,假如你做了力所能及的努力,我们大多将非常乐意平等地与你交流,并欢迎你接纳我们的文化。我们认为试图去帮助那些不愿自助的人是一件没有效率和效果的事情。所以,我们宁愿被称作傲慢,也不去做愚蠢的事[7]。 所以,你无须拥有很高超技术也可以吸引我们的注意,前提是你必须表现出解决此问题的积极态度:热切关注、深入分析、试图努力查找过解决此问题的方法,并且乐意主动参与到解决问题的组织,分享你的想法。如果你做不到使你与众不同,我们建议你付费寻求他人帮助,而不是要求黑客提供无偿的帮助。 如果你决定向我们求助,不想成为一名loser,或者不想被看成一个lose,我们有一个立竿见的方法:(1)有技术含量地提问,(2)像是一个有智慧有自信和会思考的人那样去提问...阅读全文

博文 2009-10-01 13:18:00 debian.cn