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

容器原理之cgroup - abin在路上

memory.pressure cgroup.controllers:当前 cgroup 开启的 controller 列表。 cgroup.events:存在于非 root cgroup 中,包括两个字段:populated 和 frozen。 ❯ cat cgroup.events populated 0 frozen 0 populated:如果当前 cgroup 和子层级中没有存活的进程,populated 值为 0,否则为 1。值改变时会触发 poll 和 notify 事件。考虑以下 cgroup 层级(括中的数字代表 cgroup 中的进程数量): A(4) - B(0) - C(1) \ D(0) A,B 和 C 的 populated 值都为 1,D 的 populated 值为 0,如果 C 中对...阅读全文

博文 2025-03-17 20:45:47 博客园

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

荷。 Protobuf消息使用关联的IDL进行描述,它提供了一个紧凑的,强类型的,向后兼容的格式来定义消息和RPC服务。我们使用最新的proto3规范,并在此处显示protobuf消息的实际示例。 所有字段proto3都是可选的。如果未设置字段,将始终使用默认值。这与字段编相结合提供了一个API,可以非常抵抗打破变化。通过遵循一些简单的规则,向前和向后兼容性可以成为大多数API更改的默认值。 protobuf格式还允许定义RPC服务本身。服务端点与消息结构共存,在单个protobuf文件中提供RPC服务的自包含定义。对于我们的跨洲际的工程团队来说,这非常有用,他们可以从一个文件中了解服务如何工作,生成客户端并开始使用它。以下是我们的服务之一: 该框架能够生成代码来使用protobuf文件与...阅读全文

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

深入了解Docker背后的namespace技术

,OS里指进程识别)namespace是划分那些一个进程可以查看并与之交互的PID的方式。当我们创建一个新的 PID namespace时,第一个进程的PID会被赋值为1。进程退出时,内核会杀死这个namespace内的其他进程。让我们来通过制作 skeleton.c副本开始我们的改变。 > cp skeleton.c pid.c 创建一个新的 PID namespace,我们需要设置clone_flags为 CLONE_NEWPID. 该变量应该看起来像int clone_flags = CLONE_NEWPID | SIGCHLD;,我们在shell中运行 ps aux,然后以相同的参数编译和运行我们的pid.c二进制文件。 > ps aux USER PID %CPU %MEM VSZ...阅读全文

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

Apache Flink 1.14 新特性预览 - OSCHINA

依靠 Checkpoint 机制,进行二阶段提交,从而保证数据的 Exactly-once 一致性。 具体可以这样说:在 Checkpoint 过程中,每个算子只会进行准备提交的操作。比如数据会提交到外部的临时存储目录下,所有任务都完成这次 Checkpoint 后会收到一个信,之后才会执行正式的 commit,把所有分布式的临时文件一次性以事务的方式提交到外部系统。 这种算法在当前有限流的情况下,作业结束后并不能保证有 Checkpoint,那么最后一部分数据如何提交? 在 1.14 中,这个问题得到了解决。Task 处理完所有数据之后,必须等待 Checkpoint 完成后才可以正式的退出,这是流批一体方面针对有限流任务结束的一些改进。 三、checkpoint 机制 1. 现有...阅读全文

博文 2021-09-05 07:26:58 中文开源技术交流社区

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

于intent模型。数据pipeline和批处理job就是这样的例子。比如,可以构造一个代表批处理job的intent——asset可以表示“这个job必须在过去24小时运行至少一次”——当约束条件不再有效时,插件负责启动job。但是,这种设置有点尴尬,我们尚未探索通过Prodspec和Annealing对数据pipeline和批处理job的适当支持。 管理turndown时间(从生产环境中移除一些基础设施)也很棘手。我们的许多用户都要求“因缺失而关闭”,即让系统将从Prodspec中消失的asset视为必须删除相应基础设施的隐含信。 这种方法在某些有限的情况下是可以的,但我们通常不会支持它,因为它给整个生产环境带来了太大的风险。配置系统里更为常见的故障模式是返回部分内容——比如,如果在分...阅读全文

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

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

记录的更改)。在我们的例子中,控制器通过一个 Informer 注册一个创建事件的特定回调函数(更多信息参加下文)。 当 Deployment 第一次对外可见时,该 Controller 就会将该资源对象添加到内部工作队列,然后开始处理这个资源对象: 通过使用标签选择器查询 kube-apiserver 来检查该 Deployment 是否有与其关联的 ReplicaSet 或 Pod 记录。 有趣的是,这个同步过程是状态不可知的,它核对新记录与核对已经存在的记录采用的是相同的方式。 在意识到没有与其关联的 ReplicaSet 或 Pod 记录后,Deployment Controller 就会开始执行弹性伸缩流程: 创建 ReplicaSet 资源,为其分配一个标签选择器并将其版本设置...阅读全文

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

最全的 DevOps 工具集合

Subversion 是一个软件版本和修订控制系统,其根据 Apache 许可开源。软件开发人员可使用 Subversion 来维护源代码、网页和文档等文件的当前和历史版本。 构建工具 构建阶段主要是为了保持打包的一致性,自动执行容易出错的活动,生成早期质量信。目前业内比较常用的构建工具包括 Maven/Gradle、MSBuild、Rake、JFrog Artifactory、Sonatype Nexus 和 NuGet。 Maven/Gradle Maven 是主要用于 Java 项目的自动化构建工具。Maven 还可以构建和管理以 C#、Ruby、Scala 等语言编写的项目。 Gradle 是一个开源的自动化构建系统,其基于 Apache Ant 和 Apache Maven 的理念,并引入了基于...阅读全文

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