InfraPub 为您找到相关结果 46

如何更改 Linux 的 I/O 调度器

Linux 的 I/O 器是一个以块式 I/O 访问存储卷的进程,有时也叫磁盘器。Linux I/O 器的工作机制是控制块设备的请求队列:确定队列中哪些 I/O 的优先级更高以及何时下发 I/O 到块设备,以此来减少磁盘寻道时间,从而提高系统的吞吐量。 目前 Linux 上有如下几种 I/O 算法: noop - 通常用于内存存储的设备。 cfq - 完全公平器。进程平均使用IO带宽。 Deadline - 针对延迟的器,每一个 I/O,都有一个最晚执行时间。 Anticipatory - 启发式,类似 Deadline 算法,但是引入预测机制提高性能。 查看设备当前的 I/O 器: # cat /sys/block//queue/scheduler 假设磁...阅读全文

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

分布式任务调度平台 XXL

XXL-JOB是一个轻量级分布式任务平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 v2.0.0 Release Notes 1、中心迁移到 springboot ; 2、底层通讯组件迁移至 xxl-rpc ; 3、容器化:提供官方 docker 镜像,并实时更新推送 dockerhub(docker pull xuxueli/xxl-job-admin),进一步实现产品开箱即用; 4、新增无框架执行器 Sample 示例项目 “xxl-job-executor-sample-frameless”。不依赖第三方框架,只需 main 方法即可启动运行执行器; 5、命令行任务:原生提供通用命令行任务 Handler(Bean...阅读全文

博文 2018-11-05 21:47:15 JOB 2.0.0 发布

Scrapy 架构及数据流图简介

Scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘、信息处理或存储历史数据等一系列的程序中。本文着重介绍 Scrapy 架构及其组件之间的交互。 Scrapy 组件介绍 Scrapy Engine 引擎负责控制数据流在系统中所有组件中流动,并在相应动作发生时触发事件。 详细内容查看下面的数据流(Data Flow)部分。 器(Scheduler) 器从引擎接受request并将他们入队,以便之后引擎请求他们时提供给引擎。 下载器(Downloader) 下载器负责获取页面数据并提供给引擎,而后提供给spider。 Spiders Spider 是 Scrapy用户编写用于分析response并提取item(即获取到的item)或额外跟进的...阅读全文

博文 2017-07-23 22:56:26 debian.cn

如何为 k8s 节点增加污点,或者移除污点?

设置taint ``` kubectl taint node [node] key=value[effect] 其中[effect] 可取值: [ NoSchedule | PreferNoSchedule | NoExecute ] NoSchedule: 一定不能被 PreferNoSchedule: 尽量不要 NoExecute: 不仅不会, 还会驱逐Node上已有的Pod ``` 示例: ``` kubectl taint node node1 key1=value1:NoSchedule kubectl taint node node1 key1=value1:NoExecute...阅读全文

Linux kernel 5.6 正式版发布

Linus Torvalds 在内核邮件列表上宣布释出 Linux 5.6。Torvalds 称,他没有看到内核开发受到新冠疫情影响的迹象,大部分人可能早就习惯了在家远程工作。 他估计 Linux 5.7 的发布不太会有变动,但有人错过合并窗口还是可能的,毕竟合并窗口没有你或你周围的人的健康更重要。 Linux 5.6 的特性包括: Arm EOPD 支持,时间命名空间,BPF 器和批映射操作,openat2() 系统调用,WireGuard VPN 实现,流队列 PIE 包器,2038 年问题接近解决,pidfd_getfd()系统调用,ZoneFS 文件系统,BPF TCP 拥堵控制算法实现,移除 /dev/random blocking pool 等等。 具体可阅读...阅读全文

博文 2020-03-30 23:40:37 debian.cn

Kubernetes常用命令大全(持续更新)

kubernetes,简称K8s,是知名的开源容器编排与平台,它的目标是让容器化部署、资源分配简单且高效。K8s是绝对主流且流行的容器管理平台,据说在合肥运维同学不会k8s是找不到工作的。本文我们将列举常用的kubernetes命令,后续会完善内容并提升易读性。 想起十几年前,我曾在Linux伊甸园的论坛,整理过一份rpm常用命令的列表,不知有多少朋友看过? 查看所有namespace的pods运行情况 kubectl get pods --all-namespaces 查看具体pods,记得后边跟namespace名字哦 kubectl get pods kubernetes-dashboard-76479d66bb-nj8wr --namespace=kube-system 查看...阅读全文

博文 2020-03-13 12:35:13 debian.cn

Kubernetes调度算法浅析

在真正的生产环境中,如何合理的分配服务器资源、提高利用率、让整个集群运行的更加稳定使得 k8s-scheduler 这个角色在集群中的地位愈发重要。 kube-scheduler的预选(过滤)和精选(打分) api-server会将创建pod的请求发送给kube-scheduler,并且将pod信息记录在etcd数据库中。之后kube-scheduler会根据预选(过滤)规则,首先过滤掉一部分node节点中的pod,没有被过滤掉的pod可以看做是可以被的pod,之后再通过更加严格的规则给剩下的pod打分,这一步也叫作优选。打分最高的pod可以看做被优先分配到pod任务。 流程简介 创建pod的命令被api-server的api接口接收到。api-server将pod信息存储在...阅读全文

博文 2020-12-20 11:01:10 debian.cn

Golang 面试题搜集

) - [简单聊聊内存逃逸?](https://github.com/lifei6671/interview-go/blob/master/question/q019.md) - [字符串转成byte数组,会发生内存拷贝吗?](https://github.com/lifei6671/interview-go/blob/master/question/q020.md) - [http包的内存泄漏](https://github.com/lifei6671/interview-go/blob/master/question/q021.md) ## Golang 理论 - [Go语言的GPM器是什么?](https://github.com/lifei6671/interview-go...阅读全文

K8S中Pod的四个阶段及状态分析

Kubernetes 中, pod 从创建到成功运行会分别处于不同的阶段,每个阶段又分为不同的状态,本文将简单介绍这个环节。 在 K8S 源码中,使用了 PodPhase 这个变量定义这几个阶段信息,如下图所示: 运行中(PodRunning):该 Pod 已经绑定到了一个节点上,Pod 中所有的容器都已被创建。至少有一个容器正在运行,或者正处于启动或重启状态。等待中(PodPending): 创建 Pod 的请求已被 Kubernetes 系统接受,但有一个或者多个容器镜像尚未创建。可能的原因有,写数据到etcd,,pull镜像,启动容器这四个阶段中的任何一个阶段,pending 伴随的事件通常会有:ADDED, Modified这两个事件的产生。等待时间包括 Pod 的时间和下...阅读全文

博文 2020-07-15 13:11:45 debian.cn

TimescaleDB 1.0 正式版发布!基于PostgreSQL的时序数据库

TimescaleDB 1.0 正式发布了,开发团队表示,自 9 月分宣布第一个候选版本以来,Timescale 的工程师团队合并了 50 多个 PR,以加强数据库,提高稳定性和易用性。 今天,TimescaleDB 1.0 宣布正式推出,官方表示该版本已可用于生产环境,是首个支持完整 SQL 和扩展的企业级时序数据库。TimescaleDB 是基于 PostgreSQL 数据库开发的一款时序数据库,以插件化的形式打包提供,随着 PostgreSQL 的版本升级而升级,不会因为另立分支带来麻烦。 TimescaleDB 架构 数据自动按时间和空间分片 (chunk) 更新亮点: 更广泛的可用性改进 后台作业自动化和的基础 增强了数据库强化和测试 构建开源监控堆栈:对 Grafana 和...阅读全文

博文 2018-11-03 23:23:44 debian.cn

Apache Flink 1.14 新特性预览 - OSCHINA

们可以把它看成一个有限的数据流去做处理,也可以把它看成批的执行模式。批的执行模式虽然也有 eventTime,但是对于 watermark 来说只支持正无穷。对数据和 state 排序后,它在任务的和 shuffle 上会有更多的选择。 流批的执行模式是有区别的,最主要的就是批的执行模式会有落盘的中间过程,只有当前面任务执行完成,下游的任务才会触发,这个容错机制是通过 shuffle 进行容错的。 这 2 者也各有各的执行优势: 对于流的执行模式来说,它没有落盘的压力,同时容错是基于数据的分段,通过不断对数据进行打点 Checkpoint 去保证断点恢复; 然而在批处理上,因为要经过 shuffle 落盘,所以对磁盘会有压力。但是因为数据是经过排序的,所以对于批来说,后续的计算效率可能会...阅读全文

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

最全的 DevOps 工具集合

市场的最简单途径。 容器程序 容器程序的主要任务是在最合适的主机上启动容器,并将它们连接起来。它必须具备自动故障转移能力,并且在数据太多,单个实例无法处理 / 计算时扩展容器。 三种最受欢迎的容器程序分别是 Docker Swarm、Apache Mesos 和 Kubernetes。 Docker Swarm DockerSwarm 是 Docker 开发的容器程序。由 Docker 开发的这个集群解决方案提供了很多优势,比如说它使用了标准的 Docker API。Swarm 的架构由两大元素组成: Docker Swarm 架构,©Alexandre Beslic(DockerInc.) Apache Mesos 和 Mesosphere Marathon Mesos 的...阅读全文

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

Linux 5.2.1 发布 最新的稳定版内核

BFQ I / O程序的性能改进。 Linux Kernel 5.2还为cgroups v2添加了一个冷冻控制器以释放资源,部署了新设备隐射“dust”目标来模拟读取失败或者扇区失败的设备,为 clone(2)添加了CLONE_PIDFD这个Flag从而在创建进程时候获取PID,能够通过pidfd_send_signal(2)使用,并在Android系统中提供了更高的资源监控。 在安全方面,Linux Kernel 5.2附带了一个全新的CPU BUG框架,用于保护设备免受英特尔MDS(微架构数据采样)硬件漏洞的影响,同时还有一个名为“mitigations=”独立于架构的启动选项,以便更容易启用或禁用缓解CPU缺陷。 Linux内核5.2还包括许多更新的和新的驱动程序,以获得更好的硬件支持...阅读全文

博文 2019-07-15 10:24:57 debian.cn

Linux Kernel 5.0 正式面向公众

Linus Torvalds 今日宣布:期待已久的 Linux 5.0 内核系列,终于在今天迎来了面向公众发布的版本更新。Linux 5.0 内核系列的开发工作,属于两个月前。期间,维护团队一共发布了七个候选发布(RC)版本,完成了一系列的 bugfix 测试工作。 需要指出的是,Linux Kernel 5.0 只是一个引入适度改进的大版本,意味着并没有太多激动人心的地方。当然,Linux Kernel 5.0 还是带来了一些有趣的内容: 比如更新了 AMD GPU 的开源图形驱动程序、支持 FreeSync 自适应刷新率 —— 使用 AMD Radeon GPU 的朋友可以开心匹配 FreeSync 显示器了。此外 5.0 版内核引入了新的感知功能,以改善采用 ARM...阅读全文

博文 2019-03-04 19:06:03 debian.cn

Ryzen发布两周:AMD 称表现达到预期 四月发布更新

在被英特尔碾压多年之后,AMD 终于“平地一声惊雷”般地推出了可之平起平坐的首批 Ryzen 系列高端处理器。尽管不少人对 Ryzen 的超线程(SMT)、互联、Windows 、以及较小的动态频率等方面的表现存有疑虑,但 AMD 证实 Ryzen 已经达到了预期。在发布两周之后,AMD 表示 Ryzen 在大多数情况下的表现良好,且无需 Windows 等方面进行太大的调整以充分发挥其性能。 显然,AMD 留意到了有些人在对比测试 Ryzen 在 Windows 7 / 10 系统中的表现。该公司表示其已意识到这件事,所以会与开发者携手给软件带来“针对性的优化”,以更好地发挥新处理器的潜力。 此外,在许多情况下,可以通过微小改动来提升 Ryzen 在特定应用程序中的性能。调查发现,只...阅读全文

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

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

回给客户端。 原来 apiserver 做了这么多的工作,以前竟然没有发现呢!到目前为止,我们创建的 Deployment 资源已经保存到了 etcd 中,但 apiserver 仍然看不到它。 4. 初始化 在一个资源对象被持久化到数据存储之后,apiserver 还无法完全看到或它,在此之前还要执行一系列Initializers。Initializers是一种与资源类型相关联的控制器,它会在资源对外可用之前执行某些逻辑。如果某个资源类型没有Initializers,就会跳过此初始化步骤立即使资源对外可见。 正如大佬的博客指出的那样,Initializers是一个强大的功能,因为它允许我们执行通用引导操作。例如: 将代理边车容器注入到暴露 80 端口的 Pod 中,或者加上特定的...阅读全文

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

Wine 3.0发布:支持Android图形驱动、Direct3D 11、AES加密

2018 年伊始,Wine(Wine Is Not an Emulator) 项目发布了年度更新,释出了最新的 3.0 稳定版本。 Wine 是一个在 Linux 和 Unix 类操作系统上运行 Windows 应用及游戏的开源兼容层。 经过近一年的开发,Wine 3.0 发布了许多神奇的功能,如 Android 图形驱动可以使用户在基于 Android 的机器上运行 Windows 应用和游戏,对 AMD Radeon 和 Intel GPU 默认启用 Direct3D 11 支持,在 macOS 上支持 AES 加密支持,程序管理器的 DDE 支持以及任务器。 此外,Wine 3.0 通过 reg.exe 引入了输出注册表项的功能,对中继调试和 OLE 数据缓存增加了各种增强,以及...阅读全文

博文 2018-01-23 11:22:34 debian.cn

Google 开源漏洞扫描系统 Tsunami

系统时执行两步过程: 第一步是侦查,在此期间,Tsunami 会扫描公司网络中的开放端口。此后,它会测试每个端口并尝试识别在它们上运行的协议和服务,以防止因错误标记端口和测试设备的漏洞所造成的假漏洞。 第二步是漏洞验证,在这里 Tsunami 使用通过侦察收集的信息来确认是否存在漏洞。为此,漏洞扫描程序会尝试完整地良性执行这个漏洞。漏洞验证模块还允许通过插件来扩展Tsunami。 在初始版本中,Tsunami 随附了用于以下安全问题的检测器: Exposed sensitive UIs:Jenkins,Jupyter和Hadoop Yarn之类的应用程序附带了UI,这些UI允许用户工作负载或执行系统命令。如果这些系统未经身份验证就暴露在Internet上,则攻击者可以利用应用程序的功能来...阅读全文

博文 2020-07-16 10:25:50 debian.cn

Golang后端面试题目

技术一面 基础面试 一面是通过电话直接沟通。 go的go struct能不能比较go defer(for defer)select可以用于什么context包的用途client如何实现长连接主协程如何等其余协程完再操作slice,len,cap,共享,扩容map如何顺序读取实现set实现消息队列(多生产者,多消费者)大文件排序基本排序,哪些是稳定的http get跟headhttp 401,403http keep-alivehttp能不能一次连接多次请求,不等后端返回tcp与udp区别,udp优点,适用场景time-wait的作用数据库如何建索引孤儿进程,僵尸进程死锁条件,如何避免linux命令,查看端口占用,cpu负载,内存占用,如何发送信号给一个进程git文件版本,使用顺序...阅读全文

博文 2020-04-13 13:13:00 2020腾讯社招

Linux 5.11稳定版今日将发布 多项重大变化

硬件支持,包括对风靡一时的 OUYA 游戏机带来支持。 - Btrfs 性能改进 - 通用 IWLWIFI 驱动程序中的 WiFi 6E 技术支持英特尔 WiFi 6GHz 频段,与此同时 Linux 5.11 最终降低了 Intel WiMAX 的支持。 - USB4和Thunderbolt支持改进,包括支持 Intel Maple Ridge 作为该公司的第一个独立 Thunderbolt 4控制器。 - 对英特尔 Alder Lake 以及其他 Alder Lake 设备的声音支持,以及今年晚些时候将会亮相的英特尔平台的附加功能。 - 系统调用用户,对于使用 Steam Play(Proton / Wine)在 Linux 上玩 Wine / Windows 游戏而言非常重要。...阅读全文

分布式 NewSQL 数据库 TiDB

TiDB 3.1.0 GA 版本现已发布,该版本的更新集中在 Bug 修复。具体的更新有如下内容: 兼容性变化 TiDB支持 TiDB 在启动服务时,在开启 report-status 配置项情况下,如果发现 HTTP 监听端口不可用,则直接退出启动 #16291ToolsBackup & Restore (BR)BR 不支持在 3.1 GA 版本之前的 TiKV 集群上进行恢复 #233 新功能 TiDB支持在 explain format = "dot" 中展示 coprocessor 任务的信息 #16125通过 disable-error-stack 配置项减少日志的冗余 stack 信息 #16182Placement Driver (PD)优化热点 Region ...阅读全文

博文 2020-04-18 22:05:02 3.1.0 发布

10年来最重要创新 ARM发布AMRv9指令集:IPC性能大涨30%

,ARM会增加更多高级功能,比如VRS可变帧率渲染、RT光线追踪及其他高级渲染技术等。在ARMv9中,最重要的一项挑战其实是数据安全,这一次ARM推出了全新的CCA机密计算体系架构,基于之前的TrustZone安全技术,但引入了动态域技术,它对操作系统及管理程序来说是完全不透明的,不会被系统或者软件提权攻击,而且依然可以接受管理及。总之,ARM今天公布的ARMv9指令集极具创新,是未来10年3000多亿ARM芯片的基础,不过现在具体的细节还很少,只是一个初步的路线图,今年夏天还会公布更多详细内容。至于ARMv9处理器的商业化,预计会在2022年早些时候进入市场。...阅读全文

ChaosMesh 的基本功能有哪些

混沌实验场景,以及方便地将已有的混沌实验场景复用到其他应用混沌实验中,大大降低了混沌实验的成本。目前混沌实验场景提供的功能有:编排串行混沌实验编排并行混沌实验支持状态检查步骤支持中途暂停混沌实验支持使用 YAML 文件定义和管理混沌实验场景支持通过 Web UI 定义和管理混沌实验场景具体的实验场景配置,参考具体创建 Chaos Mesh Workflow。可视化操作​Chaos Mesh 为用户提供了单独的 Chaos Dashboard 组件,即可视化支持。Chaos Dashboard 极大地简化了混沌实验,用户可以直接通过可视化界面来管理和监控混沌实验,仅需点一点鼠标就能够定义混沌实验的范围、指定混沌注入的类型、定义规则,以及在界面上获取到混沌实验的结果等。​安全保障​Chaos...阅读全文

2022年云原生服务网格展露的五大趋势

性能问题。四是 无 Sidecar 模式的服务网格可供选择。Istio 推出了 Ambient 部署模式,这是一种新的 Istio 数据平面模式,旨在简化操作、扩大应用兼容性并降低基础设施成本。用户可以选择将 Ambient Mesh 集成到其基础设施的网格数据平面,放弃 sidecar 代理,同时保持 Istio 的零信任安全、遥测和流量管理等核心功能。五是 WebAssembly 崛起。WebAssembly 正在发展成为云原生环境中跨平台、多语言的沙箱环境,甚至可以替代容器运行时,在 Kubernetes 中编排。 WasmEdge、KubeEdge、Istio 等项目可以从控制平面无缝编排 Wasm 工作负载。...阅读全文

译:Kubernetes 最佳实践

览我之前翻译的Kubernetes 的自动伸缩你用对了吗?;HPA 除了可以基于 CPU 指标伸缩,还可以基于内存,或者自定义指标,可以浏览Kubernetes HPA 基于 Prometheus 自定义指标的可控弹性伸缩。使用资源请求和约束应设置资源请求和约束(可在容器中使用的最小和最大资源量)以避免容器在未分配所需资源的情况下启动,或集群用尽可用资源。在没有限制的情况下,Pod 可以使用比所需更多的资源,从而导致可用资源总量减少,这可能会导致集群上的其他应用程序出现问题。节点可能会崩溃,并且程序可能无法正确新的 pod。如果没有请求,无法为应用程序分配足够的资源,它可能会在尝试启动或执行异常时失败。资源请求和限制以毫核和兆字节为单位定义可用的 CPU 和内存。请注意,如果进程超出...阅读全文

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

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

一、当 Kubernetes 成为云原生事实标准,可观测性挑战随之而来当前,云原生技术以容器技术为基础,通过标准可扩展的、网络、存储、容器运行时接口来提供基础设施。同时,通过标准可扩展的声明式资源和控制器来提供运维能力,两层标准化推动了开发与运维关注点分离,各领域进一步提升规模化和专业化,达到成本、效率、稳定性的全面优化。在这样的大技术背景下,越来越多的公司引入了云原生技术来开发、运维业务应用。正因为云原生技术带来了越发纷繁复杂的可能性,业务应用出现了微服务众多、多语言开发、多通信协议的鲜明特征。同时,云原生技术本身将复杂度下移,给可观测性带来了更多挑战:​1、混沌的微服务架构,多语言和多网络协议混杂业务架构因为分工问题,容易出现服务数量多,调用协议和关系非常复杂的现象,导致的常见问题...阅读全文

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

Kubernetes v1.21 新特性预览

IPv4 和 IPv6 两个地址。注意,如果使用了 CNI 插件和云服务商扩展(Cloud Provider),CNI 插件和云服务商扩展也需要支持 IPv4/IPv6 双栈。CSIVolumeHealth Alpha 和 CSIStorageCapacity Beta从 v1.21 开始,Kubernetes 支持 CSI 存储插件的 Volume 健康检查(Alpha 版),CSI 插件需要实现外部健康监控控制器。当 Volume 或者 Node 出现异常时,该控制器会向 Volume 所属的 PVC 以及使用该 PVC 的 Pod 发送一个异常事件。CSIStorageCapacity 用于跟踪 CSI 存储容量并确保 Pod 到足够存储容量的节点上。该特性从 v1.21 开始进入...阅读全文

博文 2021-03-30 20:24:36 mp.weixin.qq.com

改善 Debian Linux 软件包管理的七款工具

了十个速度最快的镜像,然后把它们写入到你的软件包源列表。apt-spy执行类似的功能。 3. apt-transport-tor 你可能也知道了,Tor是一款匿名浏览工具。然而,即便你注重安全,下载软件包有可能让别人跟踪你的活动,进而一路跟踪你的系统。 apt-transport-tor让你可以堵住这个安全漏洞,它通过Tor来传输软件包管理指令。 2. cron-apt 如果你注重安全,或者只想要最新软件包,cron-apt可以帮助你确保版本最新。顾名思义,cron-apt可以为你的系统定期下载,并通知可用更新版。用户往往每天更新一次。 然而要注意:cron-apt下载但不安装更新的软件包。这个限制是有意设置的,因为在无人照看的情况下安装一切会导致系统问题。检查什么更新版可用后,你可以手...阅读全文

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

Debian 9 使用kubeadm创建 k8s 集群(下)

在前一篇文章中,我们介绍了 Debian Stretch 环境下,Kubernetes 集群安装的准备工作。本文我们将继续介绍 k8s集群 的安装配置工作。 第4步 - 设置主节点 在本节中,您将设置主节点。 但是,在创建任何Playbooks之前,值得介绍一些概念,例如Pod和Pod网络插件 ,因为您的群集将同时包含这两个概念。 pod是运行一个或多个容器的原子单元。 这些容器共享资源,例如文件卷和网络接口。 Pod是Kubernetes中的基本单元:pod中的所有容器都保证在pod的同一节点上运行。 每个pod都有自己的IP地址,一个节点上的pod应该能够使用pod的IP访问另一个节点上的pod。 单个节点上的容器可以通过本地接口轻松进行通信。 然而,pod之间的通信更复杂,并...阅读全文

博文 2019-05-13 22:57:41 debian.cn

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

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

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

Kubernetes源码探疑:Pod IP泄露排查及解决方法

和流程。 kubelet是kubernetes集群中Node节点的工作进程。当一个Pod被kube-sheduler成功到Node节点上后, kubelet负责将这个Pod创建出来,并把它所定义的各个容器启动起来。kubelet也是按照控制器模式工作的,它的工作核心是一个控制循环,源码中称之为syncLoop,这个循环关注并处理以下事件: Pod更新事件,源自API Server;Pod生命周期(PLEG)变化, 源自Pod本身容器状态变化, 例如容器的创建,开始运行,和结束运行;kubelet本身设置的周期同步(Sync)任务;Pod存活探测(LivenessProbe)失败事件;定时的清理事件(HouseKeeping)。 在上文描述的CronJob任务中, 每次运行Job任务都会创...阅读全文

Debian 9 使用kubeadm创建 k8s 集群(上)

(Kubernetes中的节点指服务器)负责管理集群的状态。 它运行Etcd ,它在将工作负载到工作节点的组件之间存储集群数据。 两个工人节点 工作节点是运行工作负载 (即容器化应用程序和服务)的服务器。 一旦工作人员分配了工作负载,工作人员将继续运行您的工作负载,即使主计划在完成后停止工作也是如此。 通过添加工作人员可以增加群集的容量。 完成本指南后,如果群集中的服务器具有足够的CPU和RAM资源供应用程序使用,您将拥有一个可以运行容器化应用程序的集群。 几乎任何传统的Unix应用程序(包括Web应用程序,数据库,守护程序和命令行工具)都可以进行容器化,并在集群上运行。 群集本身将在每个节点上消耗大约300-500MB的内存和10%的CPU。 设置群集后,您将向其部署Web服务器Nginx ,以确保它...阅读全文

博文 2019-05-13 22:47:39 debian.cn

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

表驱动节点(便于支持QoS)而不是 hardcode pipeline Graph 工作流程 现在来说一下整体上 graph 框架的工作流程。如上图所述的一样,一个 graph 是由不同的节点 (node) 所组成的。与传统的标量模型相比,两个框架其实都包含一样的逻辑。最大的不同是 graph 框架中 node 节点在运行时与其他 node节点的交互方式,或者具体地来说,是报文在node节点中的传递方式。 一个 node 中的 报文 传送到不同的 node,home run 情况 (优化案例) 以及正常 enqueue情况;动态增加 node 的 objects 队列 大小 Node 的 Object 队列大小 默认情况下,每个 node 都有一个...阅读全文

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

influxdb内存消耗分析及性能优化【探索篇】

1636706889 11155879367 #other_node较高 #numactl --show 用于查看当前numa策略 > numactl --show policy: default #使用默认策略(localalloc) preferred node: current physcpubind: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 cpubind: 0 1 nodebind: 0 1 membind: 0 1通过查询,发现当前的numa策略会出现大量的miss。由于influxdb基于go语言开发,go语言社区中有关于 numa 感知的设计文档,但是本身的实...阅读全文

博文 2021-10-27 16:06:30 知乎

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

一、HAProxy简介 (1)HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。 HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在时下的硬件上,完全可以支持数以万计的 并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。 (2)HAProxy 实现了一种事件驱动、单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户端(User...阅读全文

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

Docker 17.06 社区版发布

配置信息: $ echo "This is a config" | docker config create test_config - $ docker service create --name=my-srv —config=test_config … $ docker exec -it 37d7cfdff6d5 cat test_config This is a config 证书轮换的优化 Swarm mode中内置的公钥基础设施(PKI)系统使得可以安全地部署一个容器系统。Swarmz中的节点使用双边TLS来认证、授权和加密他们之间,以及和Swarm其他节点的通讯。因为这些都依赖于证书,所以经常轮换很重要。自从Swarm mode伴随Docker 1.12发布以来,已经能以一小...阅读全文

博文 2017-06-30 23:08:57 debian.cn

聊聊很重要的内核技术eBPF

eBPF 的程序。编写C代码,将LLVM编译成驻留在ELF文件中的eBPF字节码。将程序加载到内核中,并创建必要的 eBPF-maps。eBPF 具有用作 socket filter,kprobe 处理器,流量控制,流量控制操作,tracepoint 处理,eXpress Data Path(XDP),性能监测,cgroup 限制,轻量级tunnel的程序类型。将加载的程序attach到系统中。根据不同的程序类型attach到不同的内核系统中。程序运行的时候,启动状态并且开始过滤,分析或者捕获信息。 2016年10月的NetDev 1.2大会上,Netronome的Jakub Kicinski和Nic Viljoen发表了标题为“eBPF / XDP硬件卸载到SmartNIC”。 Nic...阅读全文

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

Linux系统诊断-内存基础

inactive list,内核线程kswapd会定期将active list中的页面移至 inactive list中。如果系统的inactive的内存过大,可以通过如下操作对其做回收。sync; echo 3 > /proc/sys/vm/drop_caches虚拟内存========现代x86系统,计算机能够使用的内存会大于其物理内存的上限,依靠的就是虚拟内存机制。Linux支持虚拟内存机制和实模式机制。实模式下,计算机会直接申请物理内存, 虚拟内存机制下,系统会把磁盘当成内存的扩展,已增加可使用的内存大小。并通过映射map的机制,来保存和物理内存的真实对应关系。在磁盘和内存之间传送Page的活动叫做swapping或者页面(paging),被用作虚拟内存的磁盘分区称为swap。可以通过在线添加...阅读全文

博文 2021-02-11 14:22:42 SegmentFault 思否

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

。 Netpoll Netpoll 是字节跳动内部的 Golang 高性能、I/O 非阻塞的网络库,专注于 RPC 场景。 RPC 通常有较重的处理逻辑(业务逻辑、编解码),耗时长,不能像 Redis 一样采用串行处理(必须异步)。而 Go 的标准库 net 设计了 BIO(Blocking I/O) 模式的 API,为了保证异步处理,RPC 框架设计上需要为每个连接都分配一个 goroutine,这在空闲连接较多时,产生大量的空闲 goroutine,增加开销。此外,net.Conn 没有提供检查连接活性的 API,很难设计出高效的连接池,池中的失效连接无法及时清理,复用低效。开源社区目前缺少专注于 RPC 方案的 Go 网络库。类似的项目如:evio、gnet 等,均面向 Redis、Haproxy...阅读全文

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

深入理解Golang之context

Server、Connection、Request,不仅将上游的信息共享给下游任务,同时实现了上游可发送取消信号取消所有下游任务,而下游任务自行取消不会影响上游任务。总结context主要用于父子任务之间的同步取消信号,本质上是一种协程的方式。另外在使用context时有两点值得注意:上游任务仅仅使用context通知下游任务不再需要,但不会直接干涉和中断下游任务的执行,由下游任务自行决定后续的处理操作,也就是说context的取消操作是无侵入的;context是线程安全的,因为context本身是不可变的(immutable),因此可以放心地在多个协程中传递使用。参考资料1、Package context2、Go Concurrency Patterns: Context3...阅读全文

博文 2021-01-27 09:05:27 知乎

Docker 核心原理

子系统(即资源控制器) 1 2 3 4 5 6 7 8 root@lxkaka-server:~# lssubsys cpuset # 分配单独的 cpu 节点或者内存节点 cpu,cpuacct # 限制进程的 cpu 使用率;cpu 使用统计 blkio # 限制进程的块设备 io memory # 限制进程的 memory 使用量 devices # 控制进程能够访问某些设备 freezer # 挂起或者恢复 cgroups 中的进程。 net_cls,net_prio # 可以标记 cgroups 中进程的网络数据包,对数据包进行控制 hierarch 层级关系 由一系列控制组以一个树状结构排列而成,hierarch 通过绑定对应的子系统进行资源。hierarch 中的...阅读全文

博文 2021-02-25 09:14:23 lxkaka

Kafka生产问题总结以及性能优化

--num-records 1000000 --record-size 1024 --throughput -1 --producer-props bootstrap.servers=192.168.65.60:9092 acks=1 网络上很多资料都说分区数越多吞吐量越高 , 但从压测结果来看,分区数到达某个值吞吐量反而开始下降,实际上很多事情都会有一个临界值,当超过这个临界值之后,很多原本符合既定逻辑的走向又会变得不同。一般情况分区数跟集群机器数量相当就差不多了。 当然吞吐量的数值和走势还会和磁盘、文件系统、 I/O策略等因素相关。 注意:如果分区数设置过大,比如设置10000,可能会设置不成功,后台会报错"java.io.IOException : Too many open files...阅读全文

博文 2023-01-05 23:16:48 CSDN博客

Hadoop 核心 - HDFS 分布式文件系统详解

> 6.1 抽象为block块的好处 1) 一个文件有可能大于集群中任意一个磁盘 10T*3/128 = xxx块 2T,2T,2T 文件方式存—–>多个block块,这些block块属于一个文件 2) 使用块抽象而不是文件可以简化存储子系统 3) 块非常适合用于数据备份进而提供数据容错能力和可用性 6.2 块缓存 通常 DataNode 从磁盘中读取块,但对于访问频繁的文件,其对应的块可能被显示的缓存在 DataNode 的内存中,以堆外块缓存的形式存在。默认情况下,一个块仅缓存在一个DataNode的内存中,当然可以针对每个文件配置DataNode的数量。作业器通过在缓存块的DataNode上运行任务,可以利用块缓存的优势提高读操作的性能。 例如: 连接(join)操作中使用的一个小的查询表...阅读全文

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

己或者投给别人。候选人所知道的日志信息,一定不能比自己的更少,即能被选举成为leader节点,一定包含了所有已经提交的日志。先到先得的原则数据一致性保证(日志复制机制)前面通过选举机制之后,选举出来了leader节点,然后leader节点对外提供服务,所有的客户端的请求都会发送到leader节点,由leader节点来这些并发请求的处理顺序,保证所有节点的状态一致,leader会把请求作为日志条目(Log entries)加入到他的日志当中,然后并行的向其他服务器发起AppendEntries RPC复制日志条目。当这条请求日志被成功复制到大多数服务器上面之后,Leader将这条日志应用到它的状态机并向客户端返回执行结果。客户端的每个请求都包含被复制状态机执行的指令leader将客户端请求...阅读全文

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