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

阿里巴巴版 JDK 首发 GA 版 生产环境可用

态。这时,虽然 Java 能够对外提供服务,但服务质量较差,如果该阶段的用户并发较高,那么就会造成服务质量降乃至服务崩溃。 为了优化这一过程,通常的工业实践会在 Java 启动后引入 " 预热 "(warmup) 步骤,通过人为导入数据来让应用提前加热。在预热完成之前,用户请求通过网络控制不让它发送到 Java 进程,在预热完成之后才打开流量限制让 Java 真正提供服务。这个做法可以部分缓解上述问题,但是该方案在很多场景下会有一些局限性,在很多情况下,获取一份高质量的预热数据是很困难的。而预热数据的正确性直接影响预热效果,与实际情况相符的数据可以提高编译质量,如果不一致,有时反而会造成反面效果,比如一种常见的情况是预热时漏掉重要方法调用。更糟糕的情况是由于和实际情况不一致,导致 JVM...阅读全文

博文 2019-07-11 10:24:52 debian.cn

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

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

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

Gitlab CI 配置文件 .gitlab

: rspec: script: test cache: untracked: true 缓存binaries下没有被git跟踪的文件: rspec: script: test cache: untracked: true paths: - binaries/ job中优先高于全局的。下面这个rspecjob中将只会缓存binaries/下的文件: cache: paths: - my/files rspec: script: test cache: key: rspec paths: - binaries/ 注意,缓存是在jobs之前进行共享的。如果你不同的jobs缓存不同的文件路径,必须设置不同的cache:key,否则缓存内容将被重写。 缓存只是尽力而为之,所以别期望缓存会一直存在。查看更多详细...阅读全文

博文 2018-12-12 21:01:19 ci.yaml 详解(上)

三个技巧 大幅减少 Docker 镜像体积

因为如果攻击者利用你的应用程序获得对容器的访问权限将无法像访问 shell 那样造成太多破坏。换句话说,更少的二进制文件意味着更小的体积和更高的安全性,不过这是以痛苦的调试为代价的。 或许你不应在生产环境中 attach 和调试容器,而应该使用日志和监控。 但如果你确实需要调试,又想保持小体积该怎么办? 3. 小体积的 Alpine 基础镜像 你可以使用 Alpine 基础镜像替换 distroless 基础镜像。 Alpine Linux 是: 一个基于 musl libc 和 busybox 的面向安全的 Linux 发行版。 换句话说,它是一个体积更小也更安全的 Linux 发行版。不过你不应该理所当然地认为他们声称的就一定是事实,让我们来看看它的镜像是否更小。 先修改...阅读全文

博文 2018-09-06 10:50:29 debian.cn

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

都要用G1垃圾收集器,因为年代内存比较大,用G1可以设置GC最大停顿时间,不至于一次minor gc就花费太长时间,当然,因为像kafka,rocketmq,es这些中间件,写数据到磁盘会用到操作系统的page cache,所以JVM内存不宜分配过大,需要给操作系统的缓存留出几个G。 2.1 线上问题及优化 2.1.1 消息丢失情况 消息发送端: (1)acks=0: 表示producer不需要等待任何broker确认收到消息的回复,就可以继续发送下一条消息。性能最高,但是最容易丢消息。大数据统计报表场景,对性能要求很高,对数据丢失不敏感的情况可以用这种。 (2)acks=1: 至少要等待leader已经成功将数据写入本地log,但是不需要等待所有follower是否成功写入。就可以继续发...阅读全文

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

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

libgraph 的参照对象。因为 VPP 项目整体是一个非常全面的解决方案,从中剥离核心的设计框架为其它项目所用就变得很有意义。这也是 Libgraph 的产生背景。虽然它目前还是DPDK 中相对比较新的 lib,但是其优秀的设计思想还是值得学习参考。 下面将首先介绍 libgraph 架构的核心概念:标量和向量包处理(scalar vs vector packet processing)以及它们之间的区别。然后再介绍 libgraph 中的核心组件,以及它们之间的联系和交互方式。最后,我们将介绍 libgraph 的具体用例以及优缺点。 背景 DPDK libgraph 是一个向量包处理的框架。与传统的标量包处理模型(一系列函数负责处理一个数据包,重复直到所有数据包处理完毕)相比,向量数据包处理...阅读全文

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

2017 Linux 内核开发报告 Linux统治着计算机世界

现在是 2017 年,Linux 在统治着计算机世界。不相信?Linux 基金会报告说,Linux 运行着 90% 的公共云工作量,世界上 82% 的智能手机,62% 的嵌入式市场,以及几乎占领了 99% 的超计算机市场。所有的这些都基于 Linux 内核。在 Linux 基金会 2017 的 Linux Kernel 开发报告中 ,Linux 内核开发者和 LWN.net 的编辑 Jonathan Corbet 以及稳定的 Linux 内核维护者 Greg Kroah-Hartman 报告了 Linux 最新的发展。 报告显示,自 2005 年以来,Linux Kernel 采用 Git 版本控制系统,来自 1,400 多家公司的 15,637 名开发者为 Linux 内核做出了贡献...阅读全文

博文 2017-10-26 10:57:34 debian.cn

25万次P/E循环 超级长寿的SLC SSD诞生

SLC、MLC、TLC、QLC……NAND闪存类型的进化一直是个争议话题,可靠性和寿命越来越差,或者说P/E编程擦写循环次数越来越低,东芝甚至已经开始探讨PLC,不知道会渣成什么样。对于最初的SLC(每单元只保存1比特数据),很多人都十分怀念,但如今已经几乎绝迹,只在极少数特殊场合才能看到。 东芝正在打造可视为SLC加强版的XL-Flash,而高端固态存储厂商Greenliant最新打造的NANDrive EX系列SSD产品,更是应用了超长寿的SLC闪存。 Greenliant NANDrive EX并非消费产品,而是面向高性能计算、工业、交通运输、视频和网络等特殊行业应用,特别是那些需要超长寿命、高可靠性的应用,能长久保持数据完整。 它采用了Greenliant自家专门设计的...阅读全文

博文 2019-08-07 23:13:00 debian.cn

MongoDB 4.2 正式发布 引入分布式事务

findAndModify 命令可以引用现有字段,并加入聚合管道,以获得更强的表现力可还原读写,降低了编写处理临时集群故障的代码的复杂性 客户端字段加密 (FLE,Client-side Field Level Encryption) 现已是 MongoDB 4.2 的一部分,可以在 beta 版中使用。使用 FLE,可以选择性地保护文档中的敏感字段,每个字段都使用自己的密钥加密,并在客户端上无缝解密。 MongoDB 是现代应用程序的通用数据库,它汇集了文档模型、智能分布式系统以及在任何地方运行它的能力,从笔记本电脑到大型机,在公共和私有云中运行。如果以 MongoDB 4.2 为例,最快和最简单的方法是在 MongoDB Atlas 上启动一个集群,在 AWS、Azure 和 GCP 上的 60 多个区域都可...阅读全文

博文 2019-08-16 07:54:08 debian.cn

Proxmox VE 6.2发布 开源虚拟机平台

Proxmox VE 6.2 现已发布,该版本基于新发布的 Debian 10.4,同时引入了 Linux 5.4 LTS 内核、QEMU 5.0、LXC 4.0 和其他更新的软件组件,包括 OpenZFS 0.8.3。Proxmox VE(Proxmox Virtual Environment)是一个非常棒的集成 OPENVZ 支持 KVM 应用的环境。 Proxmox VE 6.2 的一些亮点内容如下 基于 Web 的管理界面的高选项: 除了已经存在的基于 HTTP 的验证模式之外,Proxmox VE 还通过基于 DNS 的质询机制为 Let’s Encrypt TLS 证书实现了域的内置验证。完全支持多达八个 corosync 网络链接。使用的链接越多,集群可用性就越高。在存储内...阅读全文

博文 2020-05-18 19:18:30 debian.cn

Linux基金会确认开源技术不受美国出口管制

去年GitHub突然宣布开源代码也要受美国出口管制EAR让全球程序员都担心了,不过Linux基金会现在可以确认开源技术不受美国管制了。 软件开发方面,开源技术已经成为全球共识,很多项目都是全球各地的程序员合作开发的,不仅有美国及欧洲程序员,中国不少公司及开发者也是全球开源社区的重要组成,任何一方如果强硬限制,那么整个开源社区就存在断链的风险。 本周,Linux基金会在官网上发表了一份白皮书《了解开源科技和美国出口管制》,中英文双版介绍了美国出口管制的限制,最重要的是这个指南明确了“公开发布给全世界享用的开源技术是不受制于美国出口管制EAR,开源至今仍然是一个最为便利的全球协作的模式。” EAR第734.7条款指出,当可被公众获取且无进一步传播限制时,未被归类为密事项的『技术』或『软件』属...阅读全文

博文 2020-07-12 17:19:51 debian.cn

WebRTC 成为 W3C 和 IETF 正式标准 - OSCHINA

理音视频材料,包括通过机器学习 物联网(例如 IoT 传感器维持长期连接并寻求最小功耗) WebRTC 工作组正对现有及新的用例进行迭代,重点理解全部需求及其优先。W3C 近期开始的 WebTransport 和 Web Codecs 工作预计将低延迟流媒体的优势引入更广大的媒体和娱乐生态系统。 WebRTC 成为 W3C 为应用程序开发定义开放 Web 平台的众多标准之一,具有前所未有的潜力。其让开发人员能够构建丰富的交互体验,由巨大的数据存储提供动力,可用于任何设备以及环境。 WebRTC 标准文档:https://www.w3.org/TR/webrtc/...阅读全文

博文 2021-02-03 22:22:47 开源技术交流社区

谷歌在美国和欧洲之间的新海底电缆已经上线运行

当时预计该项目将在2020年就会投入使用,但除了要处理跨越各大洲之间的长电缆的复杂问题外,项目负责人当时可能没有为COVID-19全球大流行做好准备。这条近4000英里的电缆总容量为每秒250Tb--或者说足以传输 "整个数字化的美国国会图书馆每秒三次"。与一些老旧的电缆不同,Dunant使用了12对光纤,再加上围绕最大化其带宽的一些技术创新,才实现了这些数字。"谷歌致力于满足对云服务和在线内容的爆炸性需求,这种需求有增无减,"谷歌云基础设施高总监Mark Sokol说。"凭借创纪录的容量和传输速度,Dunant将帮助用户在任何地方访问内容,并补充互联网上最繁忙的路线之一,以支持谷歌云的发展。Dunant是一项了不起的成就,如果没有SubCom和谷歌员工、合作伙伴和供应商的奉献,他们在今...阅读全文

什么是线程安全,以及并发需要知道的几个概念

。比如它的线程优先太低,而高优先的线程不断抢占它所需的资源,导致低优先资源无法工作。 3、活锁的情况是线程一种非常有趣的情况,在生活中我们可能会碰到这样的情况,那就是出门的时候可能会遇到有人要进门,你打算让他先进门,他又打算让你先出门,结果,两个人都互相退后了,然后你打算先出门时对方也向前一步,来来回回就一直卡在门口。当然,这种事情正常人很快就能解决,但如果是线程碰到就没那么幸运了。 如果两个线程占用着公共的资源,并且秉承着 “谦让” 的原则,主动把资源让给他人使用,你让我也让,这样就造成资源在两个线程间不断跳动但线程之间都拿不到资源的情况,这样的情况就是活锁了。 线程安全 线程安全指的是多线程的安全。如果一段程序可以保证被多线程访问后仍能保持正确性,那么程序就是线程安全的。一般来说,线...阅读全文

博文 2018-12-31 20:44:06 debian.cn

Web前端知识体系精简

,但Javascript在函数Function对象中建立了原型对象prototype,并以Function对象为主线,从上至下,在内部构建了一条原型链。 简单来说就是建立了变量查找机制,当访问一个对象的属性时,先查找对象本身是否存在,如果不存在就去该对象所在的原型连上去找,直到Object对象为止,如果都没有找到该属性才会返回undefined。 因此我们经常会利用函数的原型机制来实现JS继承。关于函数原型链可参考博客:JS原型对象和原型链 2、函数作用域 函数作用域就是变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的。在JS中没有会块作用域,只有函数作用域,因此JS中还存在着另外一种怪异现象,那就是变量提。关于作用域的介绍请参考博客:函数的作用域和作用域链 3、函数指针...阅读全文

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

项目总结报告应该怎么写

意以上统下,中心句可以概括表达下方层的内容。在结论中如果涉及层关系时,要注意逻辑递进,便于理解。比如说老板、经理、职员这三个职位排列时要按照职位的重要程度进行从上到下排列。结论:1)结论的排列顺序遵循先扬后抑,结论内容是正向的放在前面,结论内容是负向时放在后面;2)结论中必须有观点,且观点有数据支撑,表达方式为结论→理由→支撑理由的事实和依据;3)结论中的内容是正向的文字颜色可以标为绿色,内容是负向的文字颜色可以标为红色。6.方案落地执行这部分内容其实是报告发布之后,对报告中的解决方案进行跟踪落实,让我们做的事情有始有终,形成一个闭环。写在最后好的项目总结都是相似的:结构清晰、重点突出、观点明确且有数据支撑,便于快速获取关键信息。愿大家都可以写出一份可以解决实际问题好的项目总结。...阅读全文

全民HTTPS时代:盘点免费SSL证书那些事儿

根据 Let’s Encrypt CA 的统计,截至 2017 年 11 月,Firefox 加载的网页中启用 HTTPS 的比例占 67%,比去年底的 45% 有巨大提。浏览器开发商如 Mozilla, Google 准备采取下一步措施:将所有 HTTP 网站标记为不安全。 随着 HTTPS 的普及,给网站加个 SSL 证书已经是大势所趋而且很有必要了。目前已经存在不少免费好用的 SSL 证书,因此,本文就来盘点一下关于免费 SSL 证书的那些事儿。 一、Let’s Encrypt 官方网站:https://letsencrypt.org/ 点评:毫无疑问,Let’s Encrypt 是目前使用范围最为广泛的免费 SSL 证书,而且官方博客宣布,自 2018 年开始提供通配符 SSL...阅读全文

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

本教程使用的是 Kubernetes 1.14版,这是本文发布时的官方支持版本。 有关最新版本的最新信息,请参阅官方Kubernetes文档中的当前发行说明 。 Kubeadm自动安装和配置Kubernetes组件,例如API服务器,Controller Manager和Kube DNS。 但是,它不会创建用户或处理操作系统依赖关系及其配置的安装。 对于这些初步任务,可以使用Ansible或SaltStack等配置管理工具。使用这些工具可以更加简单地创建其他集群或重新创建现有集群,并且不易出错。 在本指南中,您将使用Ansible和Kubeadm从头开始设置Kubernetes集群,然后将容器化的Nginx应用程序部署到它。 目标 您的群集将包含以下物理资源: 一个主节点 主节点...阅读全文

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

译:零信任对 Kubernetes 意味着什么

源。相反,我们需要另一种形式的身份:以某种内在方式与工作负载、用户或系统相关联。而且这种身份需要以某种方式进行验证,而这种方式本身并不需要信任网络。这是一个具有丰富含义的大要求。提供网络安全但依赖于 IP 地址等网络标识符(如 IPSec 或 Wireguard)的系统不足以实现零信任。策略有了新的身份模型,我们现在需要一种方法来捕获每个身份的访问类型。在上面的边界方案中,通常授予一系列 IP 地址对敏感资源的完全访问权限。例如,我们可能会设置 IP 地址过滤,以确保仅允许防火墙内的 IP 地址访问敏感服务。在零信任的情况下,我们反而需要执行必要的最低访问别。基于身份以及任何其他相关因素,应尽可能限制对资源的访问。虽然我们的应用程序代码可以自己做出这些授权决策,但我们通常会使用在应用程序之...阅读全文

开源社区的运作模式:Debian Vs. Ubuntu

有一些非官方身份的包维护人员。但他们的名字只出现在Maintainer字段,因此他们不能执行上传操作,所有上传操作都由DD完成并进行校验。如果DD信任这些非正式任维护人员,他们通常希望维护人员去申请正式的DM角色,这样可以将上传的工作移交给他们来执行,以减自己的负担。 要成为一个Debian贡献者,一般的途径是先成为非官方的包维护人员。在其包维护的能力和人品得到DD认可并推荐之后,则可以申请成为DM。DM任期满6个月后,则可以通过Debian New Maintainers进程申请成为一个DD,这个过程也需要其他DD的推荐。 Ubuntu中的开发者角色 Ubuntu从一开始就定义了一个官方的“Ubuntu成员(UM)”角色,它包括所有贡献者,如开发人员,文档编写人员,翻译人员,美工等等。有...阅读全文

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

HTTP状态码详解

服务器成功处理了请求,且没有返回任何内容。但是与204响应不同,返回此状态码的响应要求请求者重置文档视图。该响应主要是被用于接受用户输入后,立即重置表单,以便用户能够地开始另一次输入。 与204响应一样,该响应也被禁止包含任何消息体,且以消息头后的第一个空行结束。 206 服务器已经成功处理了部分 GET 请求。类似于 FlashGet 或者迅雷这类的 HTTP 下载工具都是使用此类响应实现断点续传或者将一个大文档分解为多个下载段同时下载。 该请求必须包含 Range 头信息来指示客户端希望得到的内容范围,并且可能包含 If-Range 来作为请求条件。 响应必须包含如下的头部域: Content-Range 用以指示本次响应中返回的内容的范围;如果是 Content-Type 为...阅读全文

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

Docker更名Moby,也是无奈之举

宣布推出“Moby项目”,将其旗下的Docker产品(包括DockerCE与Docker EE两款商用产品)从Docker开源项目当中剥离出来。同时,Moby也将成为面向特定基础设施创建定制化容器软件的重要起点。 在接受电话采访时,Docker公司市场营销与社区高副总裁David Messina指出,DockerCon大会与会者已经得到了这一明确通告。 Messina表示,“Moby项目属于Docker项目的全新上游”,用户将可利用该开源代码库克隆出自己需要的系统。 Messina同时承认此次更名在一定程度上可能引发误解。他指出,“无论何时,开源世界中的重大改进总会引发混乱,但我们并不是有意要制造麻烦。” 尽管如此,该公司于两年前决定将其容器软件从基础设施组件(包括runc...阅读全文

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

专访Docker大牛:Docker背后的真正引擎是Containerd

Kaewkasi:我十分认同这种观点,过去,我们启动运行一组Web服务器是非常困难的,而有了Docker,我们几分钟之内就可以完成。 问:Docker与普通虚拟机有什么不同? Chanwit Kaewkasi: Docker基本上使用操作系统别的虚拟化,Linux命名空间和控制组。与虚拟化技术(如虚拟机使用的虚拟机管理程序)相比,Docker开销非常小。 Docker背后的真正引擎是Containerd 问:您如何在日常工作中使用Docker? Chanwit Kaewkasi: 我曾经帮助过东南亚和欧洲的公司设计和实施使用Docker应用架构,并将它们部署在Docker Swarm集群上。 问:使用Docker时您遇到过什么问题?您认为目前存在的挑战是什么? Chanwit Kaewkasi: 多集群...阅读全文

博文 2017-11-22 10:50:11 debian.cn

故意泼脏水?AMD官方回应Zen安全漏洞

司来回应业界和媒体联系,这并非正常安全公司的风格。 AnandTech就这些疑问向CTS-Labs发去邮件查询,尚未得到任何回应。 很多人可能会和此事将近来闹得沸沸扬扬的Meltdown熔断、Spectre幽灵漏洞相比,但后者是Google等权威安全团体早就确认的,而且第一时间和Intel、AMD、ARM、微软、亚马逊等等业内相关企业都做了联系沟通,共同解决,最后媒体踢爆属于意外曝料,而且当时距离解禁期已经很近了。 另外值得注意的是,这次曝光的漏洞,都是涉及AMD Zen处理器内部的安全协处理器(ARM A5架构模块)和芯片组(祥硕给AMD外包做的),和Zen微架构本身并无任何关系,并非核心别问题。 还有媒体报道指出,攻击者如果要利用这些漏洞,都必须提前获取管理员权限,然后才能通过网络安装...阅读全文

Golang 之禅: 如何写优质代码

。 明确处理错误 健壮的程序其实是由处理故障案例的片段组成的,并且需要在故障出现之前处理好。冗余的if err != nil { return err }比出了故障再一个个去处理更有价值。panic 和 recover 也一样。 尽早 return,不要深陷 每次缩进时都会在程序员的堆栈中添加另一个先决条件,这会占用他们短期内存中的 7±2 个片段。避免需要深层缩进的控制流。与其深入嵌套,不如使用守卫子句将成功路径保持在左侧。 并发权留给调用者 让调用者选择是否要异步运行你的库或函数,不要强制他们使用异步。 在启动 goroutine 之前,要知道它什么时候会停止 goroutines 拥有资源、锁、变量与内存等,释放这些资源的可靠方法是停止 goroutine。 避免包别的状态 要完成明确和...阅读全文

博文 2020-02-25 20:48:33 debian.cn

2021勒索软件报告:平均支付赎金增长171% 黑客最高要价3000万美元

状态下安全保存。而且必须与关键持份者一起实施并演习恢复流程,当发生勒索软件攻击时可以尽量缩短企业的停机时间并降低损失。在安全监控方面,最有效防范勒索软件的形式是端点安全、URL 过滤或 Web 保安、高威胁防御(未知威胁/沙箱)以及部署到所有企业环境和设备的反钓鱼解决方案。这些方法能降低网上勒索的风险,并带来权宜之计。...阅读全文

取代TCP:工程师宣布QUIC协议已完成RFC 9000发布

访问:天猫6·18 “开门红”超红包活动主会场 | 手机版京东6·18“京享红包”25日12点开始领取 最大面额高达18618元 (图 via Orozco 2018)据悉,工程团队中有三位核心成员,且他们对 QUIC 的承诺深信不疑。其中包括 IETF QUIC 工作组只需 Mark Nottingham,协议主要贡献者兼 quicly 创作者 Kazuho Oku,以及核心文档集编辑、杰出工程师 Jana Iyengar 。最新消息是,互联网工程任务组(IETF)已经发布了 RFC 9000,且得到了 RFC 9001 / 9002 / 8999 支持,意味着 QUIC 已从草稿阶段转向了 1.0 正式版。与此同时,基于 QUIC 的 HTTP/3 也有望紧随其后很快发表。对于...阅读全文

Netty+Nacos+Disruptor自研企业级API网关

Netty+Nacos+Disruptor自研企业API网关 download:https://www.51xuebc.com/thread-566-1-1.html React18+TS+NestJS+GraphQL全栈开发示例 全栈开发是指一位开发人员可以熟练掌握前端、后端和数据库等多个领域的技术,能够完整地开发一个应用程序。在本文中,我们将介绍如何使用React18+TS+NestJS+GraphQL这个技术组合来进行全栈开发。 技术选型 在开始开发之前,我们需要选择合适的技术栈。以下是我们所采用的技术: React 18:React18是React框架最新版本,它具有更好的性能、更好的可访问性、更好的代码拆分等特点,可以提高开发效率和应用性能...阅读全文

博文 2023-05-27 12:49:20 bianchengyuan123

提问的智慧(精简版)

骤,以及机器和软件的反应,直到问题发生。在命令行处理的情况下,提供一段操作记录(例如运行脚本工具所生成的),并引用相关的若干行(如 20 行)记录会非常有帮助。如果程序有诊断选项(如 -v --verbose --debug LOG_LEVEL=DEBUG 的详情指令),试着选择这些能在记录中增加调试信息的选项。记住,多不等于好。试着选取适当的调试别以便提供有用的信息而不是让读者淹没在垃圾中。如果你的说明很长,在开头简述问题,接下来再按时间顺序详述会有所帮助。描述目标而不是过程如果你想弄清楚如何做某事(而不是报告一个 Bug),在开头就描述你的目标,然后才陈述重现你所卡住的特定步骤。😒 BAD | 我怎样才能从某绘图程序的颜色选择器中取得十六进制的 RGB 值?😊 GOOD| 我正试着...阅读全文

博文 2023-10-07 15:02:42 infras

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

CST 2019 storageID=DS-47bcc6d5-c9b7-4c88-9cc8-6154b8a2bf39 clusterID=CID-dac2e9fa-65d2-4963-a7b5-bb4d0280d3f4 cTime=0 datanodeUuid=c44514a0-9ed6-4642-b3a8-5af79f03d7a4 storageType=DATA_NODE layoutVersion=-56 具体解释: storageID:存储id号。 clusterID集群id,全局唯一。 cTime属性标记了datanode存储系统的创建时间,对于刚刚格式化的存储系统,这个属性为0;但是在文件系统之后,该值会更新到新的时间戳。 datanodeUuid:datanode的唯一识别码...阅读全文

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

? Linux 系统当时的分割方式基本就是磁盘分割。所以如果你下载了所有的磁盘的话,某种意义上你也就下载了一套 Linux 系统。我们认为这个方法不够好,我们要用更适合分工开发的法子来。 我们决定 Debian 的系统开发由资源包来。也就是说,系统的每一个内容、每一个板块都会以资源包的形式存在,这些资源包能够自动整合成一个完整的系统。你下载了这个资源包的时候,它就知道如何移除自己或是自己。 分工也一样按照资源包来,哪个资源包出错了就能非常明确地知道是谁的责任。我们会在开发时设定标准和规定,保证任何来源的资源包都能在我们的系统上照常运行。所以你只要下载全资源包,你就有了一整个系统。这感觉就像手工布艺一样,把很多布片拼成一整个作品,只不过实际上原理要比这复杂不少。 当然 Debian 项目的资源包分割法...阅读全文

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

互联网协议正在发生变化

TLS 1.3 的相关章节。 最终,HTTP/2 允许多个主机的请求被 合并到一个连接上,通过减少页面加载所使用的连接(从而减少拥塞控制的场景)数量来提性能。 例如,你可以对 www.example.com 建立一个连接,也可以将这个连接用于对 images.example.com 的请求。而未来的协议扩展也允许将其它的主机添加到连接上,即便它们没有被列在最初用于它们的 TLS 证书中。因此,假设连接上的通讯被限制于它初始化时的目的并不适用。 值得注意的是,尽管存在这些变化,HTTP/2 并没有出现明显的互操作性问题或者来自网络的冲突。 TLS 1.3 TLS 1.3 刚刚通过了标准化的最后流程,并且已经被一些实现所支持。 不要被它只增加了版本号的名字所欺骗;它实际上是一个新的 TLS 版本...阅读全文

理解 Linux 的虚拟内存

有些矛盾。于是翻一下资料重新整理一下这些知识,希望下次在用到它们时能更顺畅。转载随意,请注明来源,文章持续修订。 由来 虚拟内存 毋庸置疑,虚拟内存绝对是操作系统中最重要的概念之一。我想主要是由于内存的重要”战略地位”。CPU太快,但容量小且功能单一,其他 I/O 硬件支持各种花式功能,可是相对于 CPU,它们又太慢。于是它们之间就需要一种润滑剂来作为缓冲,这就是内存大显身手的地方。 而在现代操作系统中,多任务已是标配。多任务并行,大大提了 CPU 利用率,但却引出了多个进程对内存操作的冲突问题,虚拟内存概念的提出就是为了解决这个问题。 虚拟内存简单直观的解释 操作系统有一块物理内存(中间的部分),有两个进程(实际会更多)P1 和 P2,操作系统偷偷地分别告诉 P1 和 P2,我的整个内存...阅读全文

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

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

API 中的一种特殊的 ephemeralcontainers 处理器进行创建的,而不是直接添加到 pod.spec 段,因此无法使用 kubectl edit 来添加一个临时容器。 与常规容器一样,将临时容器添加到 Pod 后,将不能更改或删除临时容器。 为什么我们需要Ephemeral 容器? 我们知道容器的优点是它们通过使用不变方法提供所有必需的依赖项来运行隔离的进程。通过仅将所需的依赖项添加到镜像中,容器可以降低攻击面并提供更快的启动和部署。使用“distroless”方法构建容器镜像(基于scratch),通过仅包含已编译的应用程序二进制文件,将容器镜像提到了一个新的水平。与普通的容器镜像不同,它们不基于任何种类的Linux发行版,因此不包含任何其他可通过kubectl exec执行...阅读全文

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

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

"} prometheus_tsdb_head_samples_appended_total{cluster="one"} Cleanupkubectl delete -f k8s/ helm delete --purge prom-one helm delete --purge grafana ingester pods将卡在终止阶段。这是设计使然的,因为ingester是半状态的,并且将在终止之前尝试将其数据刷新到其他ingester。这使得和回滚成为可能,同时避免了数据丢失。在这种情况下,我们只是尝试一下,而不关心数据,因此我们可以使用以下命令强制将其删除:kubectl delete pod -l name=ingester --grace-period=0 --force 具有数据去重功能的HA Prometheus设置此设置与上一个非常相似。主要区别在于我们正在部...阅读全文

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

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

HTML 5.1 — 14 项新增特性及使用案例

HTML5 属于万维网联盟 (W3C), 这个组织为整个网络界提供了标准,如此形成的协议可在全世界通行。在 2016 年 11 月, W3C 对长期行使的 HTML 5 标准进行了更新,它是2年内的第一次小更新。许多最开始提出的 HTML 5.1 功能特性都因为设计上的缺陷和缺乏浏览器厂商的支持而去掉了。 尽管有一些元素和功能提被带进了 HTML 5.1 里面, 但它仍然是一个小的更新。其中的一些新的元素包含了组合标签, 现在这样的元素包括有

,
, 以及, 这样就为开发者提供了更多表达创意和内容的空间。 W3C 以及开始着手发展 HTML 5.2 草案,有望于 2017 年底发布。而我们在这里所要呈现的是在版本...阅读全文

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

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

地页的问题就是随着时间的推移,页面可能会变的越来越乱,而且有些内容会失效,不过这些问题都好解决,做好定期的维护和整理就行。 落地页的技术难度不高,但要求内容的有效性、完整性和分类清晰。 ## 文档Review ## 在一个组织内,光靠个人去维护文档是不行的,必须得借助群体的智慧。在一个组织内部,文档的变更也应该像代码的变更一样,需要被其他人Review,以提前发现其中的问题并提文档的质量。 如何Review文档: - **专业的视角来保证准确性**: 一般由团队里比较资深的人负责,他们关注的核心点是文档写的对不对,专不专业。如果Code Review做的好的话,文档的Review也属于Code Review的一部分。 - **读者视角保证简洁性**: 一般由不熟悉这个领域的人来Review...阅读全文

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

Linux 中使用 Fio 测评硬盘性能

Fio(Flexible I/O Tester) 是一款由 Jens Axboe 开发的用于测评和压力/硬件验证的自由开源的软件。它支持 19 种不同类型的 I/O 引擎 (sync、mmap、libaio、posixaio、SG v3、splice、null、network、 syslet、guasi、solarisaio,以及更多), I/O 优先(针对较新的 Linux 内核),I/O 速度,fork 的任务或线程任务等等。它能够在块设备和文件上工作。 Fio 接受一种非常简单易于理解的文本格式的任务描述。软件默认包含了几个示例任务文件。 Fio 展示了所有类型的 I/O 性能信息,包括完整的 IO 延迟和百分比。 它被广泛的应用在非常多的地方,包括测评、QA,以及验证用途。它支持...阅读全文

博文 2018-08-15 19:18:24 debian.cn

一位资深Java架构师的晋级心得

Spring Cloud:Eureka注册中心,Ribbon集成REST实现负载均衡,OpenFeign声明式服务调用,Hystrix实现服务限流熔断降和数据监控,Zuul实现微服网关,Config分布式统一配置中心,分布式链路跟踪,集成Spring Cloud实现统一整合方案虚拟化容器Docker:Docker环境搭建和使用,搭建Docker私有仓库,Docker分布式集群部署,Kubernetes简介 4. 分布式 Java并发编程和网络编程:Java线程状态,线程池,线程通信,线程安全,Netty高性能原理分布式开发框架:分布式系统口调用技术:RPC,Apache分布式系统Zookeeper原理与应用,阿里Dubbo设计思想与应用分布式中间件:分布式服务器治理,分布式消息通信,分布式数据缓存...阅读全文

博文 2019-01-13 22:49:22 debian.cn

Harbor 1.9 发布:新增多项企业级功能

Policy) 目前,Harbor 会对某些镜像的运行加以限制,即那些被安全策略进行了漏洞(CVE) 扫描,且结果符合限制条件的镜像。又是为了对的某些 CVE 的情况进行例外处理,例如,忽略低严重性 CVE 或当前无解决方案的 CVE,1.9 为管理员引入了一项功能,使其可以创建一个 CVE 白名单,从而允许这些镜像在有限的时间段内运行,而不管是否具有特定 CVE 安全漏洞 。系统管理员可以创建一个对所有项目都有效的全局 CVE 白名单,而项目管理员则可以在单个项目别进一步细化此白名单。 内容复制的改进 1.8 版推出了在 Harbor 与其他 Registry(例如 Docker Hub 和 Huawei Cloud)之间进行跨 Registry 内容复制的功能,而 1.9 版对这些功能进行了扩展...阅读全文

博文 2019-10-09 12:12:04 debian.cn

开源社区纠纷不断:20 年的 Debian 开发者被排挤出项目

近日,据外媒报道,一位在 Debian 项目中服务超过 20 年的开发者 Norbert Preining 在去年 12 月被降为维护者,这一行为导致他决定离开该项目。Preining 称,Debian 客户经理团队认为他“多年来一直在欺负项目成员”、“不能与社区团队沟通”。在接受采访时,Preining 表示他现在已经加入了 Arch Linux 项目,将在以后的博文中进行更多的解释。Debian 是一款为数极少的纯社区驱动的 Linux 发行版,而不是由商业公司或者政府机构所掌控。虽然 Debian 采用了 Linux Kernel (操作系统的核心),但是大部分基础的操作系统工具都来自于 GNU 工程, 因此又称为 Debian GNU/Linux。DAM 认为 Preining...阅读全文

AWS EKS 添加IAM用户角色 - SRE运维博客

IAM 用户或角色的 Amazon 资源名称 (ARN)。例如: { "UserId": "XXXXXXXXXXXXXXXXXXXXX", "Account": "XXXXXXXXXXXX", "Arn": "arn:aws:iam::XXXXXXXXXXXX:user/testuser" } 确认 ARN 与具有主要集群配置访问权限的集群创建者或管理员相匹配。如果 ARN 与集群创建者或管理员不匹配,请联系集群创建者 aws-auth ConfigMap。 添加对 EKS 集群具有只读访问权限的 IAM 用户 {{< notice info "注意:" >}} 要允许超用户访问权限以对任何资源执行任何操作,请添加 system:masters 而非 system:bootstrappers...阅读全文

博文 2022-12-19 21:15:27 博客园

Terraform 学习总结 — Terraform 简介

)。Terraform 生成一个执行计划,描述它将做什么来达到所需的状态,然后执行它来构建所描述的基础结构。随着配置的变化,Terraform 能够确定发生了什么变化,并创建可应用的增量执行计划。 Terraform 是用 Go 语言开发的开源项目,你可以在 github 上访问到它的源代码。 Terraform 核心功能 基础架构即代码(Infrastructure as Code)执行计划(Execution Plans)资源图(Resource Graph)自动化变更(Change Automation) 基础架构即代码(Infrastructure as Code) 使用高配置语法来描述基础架构,这样就可以对数据中心的蓝图进行版本控制,就像对待其他代码一样对待它。 执行计划(Execution...阅读全文

深入理解Golang之context

选择执行哪个取消选项。考虑下面这种情况:假如主协程中有多个任务1, 2, …m,主协程对这些任务有超时控制;而其中任务1又有多个子任务1, 2, …n,任务1对这些子任务也有自己的超时控制,那么这些子任务既要感知主协程的取消信号,也需要感知任务1的取消信号。如果还是使用done channel的用法,我们需要定义两个done channel,子任务们需要同时监听这两个done channel。嗯,这样其实好像也还行哈。但是如果层更深,如果这些子任务还有子任务,那么使用done channel的方式将会变得非常繁琐且混乱。我们需要一种优雅的方案来实现这样一种机制:上层任务取消后,所有的下层任务都会被取消;中间某一层的任务取消后,只会将当前任务的下层任务取消,而不会影响上层的任务以及同任务...阅读全文

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

协议介绍之深入了解 gRPC

streams 在上面发送 frame,那么在一些场景下面,我们还是希望 stream 有优先,方便对端为不同的请求分配不同的资源。譬如对于一个 Web 站点来说,优先加载重要的资源,而对于一些不那么重要的图片啥的,则使用低的优先。 我们还可以设置 Stream Dependencies,形成一棵 streams priority tree。假设 Stream A 是 parent,Stream B 和 C 都是它的孩子,B 的 weight 是 4,C 的 weight 是 12,假设现在 A 能分配到所有的资源,那么后面 B 能分配到的资源只有 C 的 1/3。 Flow Control HTTP/2 也支持流控,如果 sender 端发送数据太快,receiver 端可能因为太忙,或者压力太大...阅读全文

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

使用 MongoDB 之前应该知道的 14 件事

MongoDB 是一个多租户系统,它会尽可能地占用内存,因此最好是安装在服务器上,最大限度地提供内存,即使是开发工作。在服务器上使用默认端口安装而不启用身份验证是在自找麻烦,尤其是可以在查询中运行任意 JavaScript 时(例如把$where 作为注入攻击的载体)。 身份验证方法有多种,但是用户 ID/密码凭证最容易安装和管理。当你考虑 基于 LDAP 的身份验证 时,可以采用那个方法。在我们谈论安全时,MongoDB 必须保持最新,而且,在日志里查找未授权访问的迹象总是值得的。我不喜欢使用默认端口。 忘记限制 MongoDB 的攻击面 MongoDB 的 安全检查清单 为降低网络渗透和数据泄露风险提供了很好的建议。我们很容易会认为,开发服务器不需要高等的安全。不是这样的:安全对于所有...阅读全文

王垠:如何掌握所有的程序语言

很多编程初学者至今还在给我写信请教,问我该学习什么程序语言,怎么学习。由于我知道如何掌握“所有”的程序语言,总是感觉这种该学“一种”什么语言的问题比较低,所以一直没来得及回复他们 可是逐渐的,我发现原来不只是小白们有这个问题,就连美国大公司的很多资深工程师,其实也没搞明白。 今天我有动力了,想来统一回答一下这个搁置已久的“初问题”。类似的话题貌似曾经写过,然而现在我想把它重新写一遍。因为在跟很多人交流之后,我对自己头脑中的(未转化为语言的)想法,有了更精准的表达。 如果你存在以下的种种困惑,那么这篇文章也许会对你有所帮助: 你是编程初学者,不知道该选择什么程序语言来入门。 你是资深的程序员或者团队领导,对新出现的种种语言感到困惑,不知道该“投资”哪种语言。 你的团队为使用哪种程序语言争...阅读全文

博文 2017-07-10 10:13:17 debian.cn

大起底:揭开亚马逊云计算丰厚利润的秘密 - 电子商务

”、“简单存储服务”等数据存储业务,再加上保存和提取数据的”关系数据库服务”和数据迁移费,这占到了亚马逊云计算的七成收入。不过在今天,亚马逊更加注重更复杂的高云计算功能,它们不仅利润率高,而且让企业客户切换服务商的成本更高。比如在五月份,塞林普斯基在Twitter上介绍了一个新服务“应用运行器”(App Runner),可以在虚拟容器中部署应用软件,这可以让企业用户把精力集中在业务构建上,而不是管理“容器”或是“基础设施”。美国贝尔斯登研究公司六月份发布的一份报告指出,2015年,亚马逊云计算14%的收入来自于高毛利的“平台即服务”云计算产品,其余来自于低端的“基础设施即服务”产品。但是贝尔斯登认为,在去年上半年,平台即服务的收入占比已经提高到了18%。美国科技业人士乔·金塞拉(Joe...阅读全文

博文 2021-09-07 11:41:54 cnBeta.COM

Kubernetes 使用 PodPreset 注入信息到 Pods_哎_小羊的博客

,例如 Pod Yaml 容器挂载配置跟 PodPreset 容器挂载配置为同一路径时,会报错提示冲突。 最后要提一下注意的问题: 目前 PodPreset 的预设功能这块还在演进中,不过已经能大大简化了相关的管理工作,将这些公用配置从开发者手中分离出来,变成系统管理配置。PodPreset 是 Namespace 别的对象,其作用范围只能是同一个命名空间下容器。目前为 v1alpha1 版本,还不成熟,例如当我们对已创建的 PodPreset 执行非常少量的修改时,重新 apply 或者 replace 时,服务端并没有更新过来(亲测会有问题,只能删除重建),大家可以自己尝试下。 参考资料 PodPreset DocEnable PodPreset...阅读全文

博文 2021-01-27 18:47:00 CSDN博客