Debian 爱好者社区 为您找到相关结果 419

理解 Linux 的虚拟内存

受限于机器总线的数量,在32位机器上,有32条总线,每条总线有高低两种电位分别代表 bit 的 1 和 0,那么可访问的最大地址就是 2^32bit = 4GB,所以说 32 位机器上插入大于 4G 的内存是无效的,CPU 访问不到多于 4G 的内存。 但 64位机器并没有 64位总线,而且其最大内存还要受限于操作系统,Linux 目前支持最大 256G 内存。 根据虚拟内存的概念,在 32 位系统上运行 64 位软件也并无不可,但由于系统对虚拟内存地址的结构设计,64位的虚拟地址在32位系统内并不能使用。 直接操作物理内存 操作系统使用了虚拟内存,我们想要直接操作内存该怎么办呢? Linux 会将各个设都映射到 /dev/ 目录下的文件,我们可以通过这些设文件直接操作硬件,内存也不例外...阅读全文

博文 2018-11-25 11:03:49 debian.cn

我要彻底放弃 Debian 操作系统!-Michael Stapelberg

Debian中的使用尤为广泛,所以感觉这很讽刺啊。为了掩盖这个问题,我们使用了Gmane,但在过去几年中Gmane可谓是非常不稳定。 我设法提供了一个线程列表的归档,但我们的列表管理员似乎并不关心,而且也不想支持这个项目。 Debian很难机器读取 虽然肯定有办法通过程序的方式处理Debian包,但这种体验一点也不愉快。一切似乎都十分缓慢而且很麻烦。我只选了三个简单的例子来说明我的观点。 Debiman需要piuparts的帮助,才能分析每个包显示联机帮助页等内容的替代机制。这是因为维护者的脚本通过调用shell脚本来修改用数据库。如果没有实际安装包,你就无法得知它对选的数据库做了哪些更改。 pk4需要维护自己的缓存,才能根据包的名称查找包的元数据。其他工具在每次调用时都需要从头开始解析apt数据...阅读全文

博文 2019-03-22 17:01:23 Michael Stapelberg

Cortex: 高可用和水平扩展Prometheus监控系统

Cassandra作为索引和块存储在前两个示例中,我们使用dynamodb-local作为索引存储,并使用fakes3作为块存储。在此示例中,我们将使用Apache Cassandra进行索引存储和块存储。以下命令将启用helm incubator repo,使用helm安装Cassandra,并等待3个副本准就绪。helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com/ helm install --wait --name=cassie incubator/cassandra 准好Cassandra后,继续安装所有其他服务。kubectl apply -f k8s-cassandra...阅读全文

博文 2021-10-09 17:00:22 知乎

译:Kubernetes 最佳实践

如,一组开发人员可能只能访问名为 dev 的命名空间,并且无法访问 production 命名空间。 将不同团队限制在不同命名空间的能力对于避免重复工作或资源冲突可能很有价值。还可以针对命名空间配置 LimitRange 对象,以定义部署在命名空间中的容器的标准大小。ResourceQuotas 还可用于限制命名空间内所有容器的总资源消耗。可以对命名空间使用网络策略来限制 pod 之间的流量。使用就绪和存活探针Readiness(就绪)和 Liveness(存活)探针本质上都是健康检查的类型。这些是在 K8s 中使用的另一个非常重要的概念。就绪探针确保仅当 pod 准好为请求提供服务时,才会将对 pod 的请求定向到它。如果它还没有准好,那么请求将被定向到其他地方。为每个容器定义就绪探针...阅读全文

博文 2022-09-13 19:32:21 atbug.com

DPDK Graph Pipeline 框架简介与实现原理

DPDK 全称为 Data Plane Development Kit ,是近年来在高速网络通信行业中炙手可热的一种网络报文处理加速框架。DPDK 从十年前诞生直至发展到今天已经可以支持业界主流的高端网卡以及各类加速硬件设,同时也支持主流的各个CPU 体系结构(可以运行于 X86, Arm, Power 等平台)。同时也可以运行于 Linux/FreeBsd/Windows 等主流操作系统之上。DPDK因为其优异的性能指标被广泛的应用于网关/负载均衡/SDN/虚拟交换的各个场景。 本文主要介绍 DPDK 中的 libgraph 设计思想以及实现,libgraph 的设计思想源自于开源项目 Vector Packet Processor(VPP)。VPP 中的向量包处理优化方案是...阅读全文

博文 2023-02-09 07:13:55 掘金

最全的 DevOps 工具集合

Groovy 的领域特定语言,替代 Apache Maven 使用的 XML 格式来声明项目配置。 MSBuild Microsoft Build Engine(通常称为 MSBuild)是用来托管代码及原生 C++ 代码的免费开源构建工具集,它之前是.NET Framework 的一部分。Visual Studio 依赖 MSBuild(反之则不然)。 Rake Rake 是一个软件任务管理和自动化构建工具。它允许用户指定任务并描述依赖关系。你也可以对命名空间中的组任务执行这些操作。 JFrog Artifactory JFrog Artifactory 这款工具可用来存储构建过程的二进制输出,以分发和部署之用。Artifactory 支持许多软件包格式,如 Maven、Debian、npm...阅读全文

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

Debian 往事: 与已故创始人 Ian Murdock 的昔日访谈

。FSF 是 Debian 的赞助者,所以自然对我有所期望;但同时我在要求别人在闲时帮忙开发 Debian,所以那些人对我自然也有期望。有时候这两边的期望会出现分歧,我无法两边都满足。」 就这样,Debian 和 FSF 的正式合作关系画上了句号。不过 Murdock 始终都非常强调 Stallman 为 Debian 做出的贡献: 倘若没有他,没有他过去 15 年内从未动摇的坚定立场,我们也就不会有如今「免费软件」的理念。 不久之后,1996 年 3 月,Murdock 决定辞退 Debian 项目领导人的身。 我最近结婚了,我想花更多的时间陪伴我的家人。我已经为 Debian 埋头苦干了三年,我想我也是时候开始新的生活了。 在我们 1999 年面谈的时候,Murdock 表示他看到...阅读全文

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

架构师详解 Nginx 架构

,主进程和工作进程需要进程交互。交互依赖于 Socket 实现的管道来实现。 Master-Worker 交互 这条管道与普通的管道不同,它是由主进程指向工作进程的单向管道,包含主进程向工作进程发出的指令,工作进程 ID 等;同时主进程与外界通过信号通信;每个子进程具接收信号,并处理相应的事件的能力。 worker-worker 交互 这种交互是和 Master-Worker 交互是基本一致的,但是会通过主进程。工作进程之间是相互隔离的,所以当工作进程 W1 需要向工作进程 W2 发指令时,首先找到 W2 的进程 ID,然后将正确的指令写入指向 W2 的通道。W2 收到信号采取相应的措施。 五. 总结 通过这篇文章,我们对 Nginx 服务器的整体架构有了一个整体的认识。包括其模块化的设计...阅读全文

博文 2018-05-01 23:10:47 debian.cn

字节跳动开源微服务中间件 CloudWeGo - OSCHINA

CloudWeGo 走向完善: 继续开源其他内部项目。开源更多字节跳动常用 Golang 项目,如 HTTP 框架 Hertz、基于共享内存的 IPC 通信库 ShmIPC 等,为开发者提供更多场景的微服务需求支持。 逐步开源经验证的、稳定的特性。CloudWeGo 的主要项目均为字节内部微服务提供支持,许多新特性仍在内部验证,相对成熟后会逐步开源,如对 ShmIPC 的集成、无序列化、无生成代码的支持等。 结合内外部用户需求,持续迭代。项目开源后会根据开发者需求开展迭代。例如近一个月来,团队收到了来自开发者的大量关于 Protobuf 的诉求,为了提供良好的支持,他们已经在筹开展 Kitex 对 Protobuf 支持的性能优化。...阅读全文

博文 2021-09-09 13:56:42 中文开源技术交流社区

WebAssembly:无需容器的 Docker (上)

同的源语言创建可移植的二进制可执行文件。 这些二进制文件可以在各种环境中运行。 它起源于 Web,并得到各大主流浏览器的支持。Wasm 如何在浏览器中工作?浏览器引擎集成了一个 Wasm 虚拟机,通常称为 Wasm 运行时,可以运行 Wasm 二进制指令。 编译器工具链(如 Emscripten)可以将源代码编译为 Wasm 目标。 这允许将现有的应用程序移植到浏览器,并直接与在客户端 Web 应用程序中运行的 JS 代码通信。这些技术能让传统的桌面应用程序在浏览器中运行。现在它们可以在任何装了浏览器的设上运行。 一些著名的例子包括 Google Earth 和用于计算机视觉的 Open CV 库。Wasm 如何在服务器上运行?除了浏览器,也有可以在浏览器之外运行的 Wasm 运行时,包括...阅读全文

博文 2023-01-03 06:35:56 spider

谷歌公开了内部管理Infra层的两个工具的Paper

证:我们通过一系列广泛的验证器运行每个生成的incarnation。大多数验证器会验证incarnation的一致性,而有些验证器则使用外部数据库交叉检查内容。准一系列的验证器是极其重要的——损坏是非常常见的配置问题,验证器可以有效地检测损坏并防止错误配置进入生产环境。在添加新的asset类型或插件时,我们几乎总会同时添加多个验证器。存储:一旦验证了某个incarnation,结果就会存储到Spanner里。虽然特定的incarnation很少使用很长时间,但是在事后保留结果以辅助问题的调试是很有价值的。服务:通过查询服务器访问存储的incarnation。消费者可以请求最新的incarnation,特定的incarnation,或者其他的。它们还可以过滤出想看到的asset,这在处理有上...阅读全文

博文 2023-01-08 11:23:20 CSDN博客

深入了解Docker背后的namespace技术

口,这样你的容器将拥有它自己的桥接ip地址,通常是docker0。接下来,我们不再继续讲述如何在namespace安装接口。相关内容将在另一篇文章中讲述。 MNT Namespace mount namespace可以让看到系统中所有挂载点在某个范围下的目录视图。人们经常把它和在chroot中禁锢进程混淆在一起,或者是认为他们是相似的,还有人说容器使用mount namespac来把进程禁锢在它的根文件系统中,这都是不对的! 让我们再来拷贝一skeleton.c用来做挂载相关的修改。可以快速的构建和运行, 从而看下执行mount命令后我们当前的挂载点的样子。 > cp skeleton.c mount.c > gcc -o mount mount.c > ./mount mount...阅读全文

博文 2015-05-17 10:03:00 debian.cn

最全 MongoDB 基础教程

Select * from ruochen where likes > 100 and likes < 200; 模糊查询 查询title中包含 'py' 的文档 db.ruochen.find({title:/py/}).pretty() 查询title字段以 'p' 开头的文档 db.ruochen.find({title:/^p/}).pretty() 查询title 字段以 'p' 结尾的文档 db.ruochen.find({title:/p$/}).pretty() MongoDB $type 操作符 $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果 类型 数字 注 Double 1 String 2 Object 3 Array 4 Binary data 5...阅读全文

博文 2021-02-22 07:45:45 OSChina

细数k8s支持的4种类型的container - 侃豺小哥

初始化容器,该容器要等到API准好后才能成功退出。只有在初始化容器成功完成其工作之后,应用程序容器才会启动。 初始化容器不能像应用程序容器那样使用运行状况和就绪探针。原因是它们要成功启动和退出,就像Jobs和CronJobs的行为一样。 同一Pod上的所有容器共享相同的卷和网络。您可以利用此功能在应用程序及其初始化容器之间共享数据。 正如我们刚刚讨论的那样,init容器总是比同一个Pod上的其他应用程序容器先启动。结果,调度程序对init容器的资源和限制赋予了更高的优先级。必须仔细考虑这种行为,因为这可能会导致不良后果。例如,如果您有一个初始化容器和一个应用程序容器,并且将初始化容器的资源和限制设置为高于应用程序容器的资源和限制,那么只有在有一个可用节点满足初始化的情况下,才调度整个Pod...阅读全文

博文 2021-08-20 11:45:32 博客园

Debian 向左:或将迎来根本性改革 - OSCHINA

。 其中,实际投票前的讨论期长度是由项目负责人决定的(这一点没有变化),但新的规则是将这个时期的时长限制在两到三周。 对选票的任何实质性修改(例如增加新的选项)将会使得讨论期至少再增加一周,但这个时长仍然不能超过最长期限。如果讨论期能继续延长的时长少于 24 小时了,就不能再进行这类实质性修改了。 项目负责人有权将讨论期缩短或延长一周,但缩短讨论期的情况下也必须要确保能至少还有 48 小时的时间。 如此一来,无论是哪个流程,都为讨论时间设置了一个上限。同时,也准了一些机制来防止被迫投票的情况。 “如果人们在这个过程中不觉得自己被人欺负了,那么他就会更容易接受一个不符合他意愿的决策。” Allbery表示。 03 行动 尽管离开了 Debian,Joey 还是在今年11月的一场访谈中表达了自己对...阅读全文

博文 2021-12-06 13:55:01 中文开源技术交流社区

得物云原生全链路追踪Trace2.0-采集篇 - OSCHINA

的 size 做监控,有助于排查因探针导致的内存泄露问题,且它的增长率一旦达到我们设定的阈值便会告警,提早进行人工干预,执行相关预案,防止线上故障发生。 部分自监控面板 4.4.2 扩展链路透传协 引入RPC ID 为了更好地关联上下游应用,让每个流量都有“身”,我们扩展了TextMapPropagator 接口,让每个流量在链路上都知道请求的来源,这对跨区域,环境调用排障场景起到关键性作用。 此外,对于跨端场景,我们参考了阿里鹰眼调用链RPCID模型,增加了RpcID字段,这个字段在每次发生跨端调用时末尾数值会自增,而对于下游应用,字段本身的层级自增: 该字段拥有以下作用: 支持提供精简化的调用链路视图,查询臃肿链路(如那些涉及缓存,DB调用大于 2000 Span的链路)时只提供...阅读全文

博文 2022-12-10 06:50:41 中文开源技术交流社区

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

有这条性质,动态规划算法同其他算法相比就不具优势) 动规解题的一般思路 动态规划所处理的问题是一个多阶段决策问题,一般由初始状态开始,通过对中间阶段决策的选择,达到结束状态。这些决策形成了一个决策序列,同时确定了完成整个过程的一条活动路线(通常是求最优的活动路线)。如图所示。动态规划的设计都有着一定的模式,一般要经历以下几个步骤。 初始状态→│决策1│→│决策2│→…→│决策n│→结束状态 图1 动态规划决策过程示意图 (1)划分阶段:按照问题的时间或空间特征,把问题分为若干个阶段。在划分阶段时,注意划分后的阶段一定要是有序的或者是可排序的,否则问题就无法求解。 (2)确定状态和状态变量:将问题发展到各个阶段时所处于的各种客观情况用不同的状态表示出来。当然,状态的选择要满足无后效性。 (3...阅读全文

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

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

gRPC是一个高性能、开源、通用的RPC框架,面向移动和HTTP/2设计,是由谷歌发布的首款基于Protocol Buffers的RPC框架。 gRPC基于HTTP/2标准设计,带来诸如双向流、流控、头部压缩、单TCP连接上的多复用请求等特性。这些特性使得其在移动设上表现更好,更省电且节省空间占用。gRPC 1.0版本是2015年面世以后的第一次版本发布,开发者可以把该版本用于生产。API现在也是很稳定的。 Bugsnag(注:一家云端bug监控服务商)每天处理数以亿计的错误信息,为了处理这些数据,考虑优先构建一个可扩展,性能强大的后端系统,并从中学到很多有挑战性的技术。最近,我们推出了新版本的仪表板,这个项目要求扩展系统,来处理服务呼叫的显著增加,这些呼叫是跟踪用户发布和会话所需的...阅读全文

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

深度解密基于 eBPF 的 Kubernetes 问题排查全景图

者调用关系是关联的基础,因为系统调用才产生了联系。通过 eBPF 技术非常方便地以无侵入的方式采集网络调用,进而将调用解析成我们熟知的应用协议,如 HTTP、GRPC、MySQL 等,最后将拓扑关系构建起来,形成一张清晰的服务拓扑后方便快速定位问题,如下图中网关->Java 应用->Python 应用->云服务的完整链路中,任意一环出现延时,在服务拓扑中应能一眼看出问题所在。这是第一个管线点端到端。2、自顶向下全栈关联:以 Pod 为媒介,Kubernetes 层面关联 Workload、Service 等对象,基础设施层面可以关联节点、存储设、网络等,应用层面关联日志、调用链路等。​接下来介绍下 Kubernetes 监测的核心功能。永不过时的黄金指标黄金指标是用来用来监测系统性能和状态...阅读全文

博文 2022-03-21 09:11:51 joseph