InfraPub 为您找到相关结果 773

为什么 Django 能持续统治 Python 开发世界

码的困境结束,从而实现更快的开发。 简而言之,Web框架可以简化Web开发。 如果您想深入了解Web框架及其优点,请点击此处。 为什么Django是Python开发者的最佳选择 Django是一个Python编写的,高级的,MVC风格的开源库。 Django也被称为“完美主义者的最终框架”,它最初是为新闻网站设计的,因为它允许开发人员编写数据库驱动的Web应用程序,而无需从头开始编码。 除了更快完成常见的Web开发任务,Django还可以保持设计干净且实用。 Django是Python Web开发新人的最佳选择,因为官方文档和教程是几个(同类)开发框架中最好的。 技术市场充斥着一系列网络框架,但Django在最受欢迎的服务器端Web框架里处于顶峰位置。设计Django背后的座右铭很简单...阅读全文

博文 2017-07-21 14:15:11 debian.cn

即将发布的 JDK 10 有 109 项新特性,你喜欢哪些

展,以允许应用类放置在共享存档中。 JEP 312: 线程局部管控。允许停止单个线程,而不是只能启用或停止所有线程。 JEP 313: 移除 Native-Header Generation Tool (javah) JEP 314: 额外的 Unicode 语言标签扩展。包括:cu (货币类型)、fw (每周第一天为星期几)、rg (区域覆盖)、tz (时区) 等。 JEP 316: 在备用内存设备上分配堆内存。允许 HotSpot 虚拟机在备用内存设备上分配 Java 对象堆。 JEP 317: 基于 Java 的 JIT 编译器(验版本)。 JEP 319: 根证书。开源 Java SE Root CA 程序中的根证书。 JEP 322: 基于时间的版本发布模式。“Feature...阅读全文

博文 2018-03-08 12:56:20 debian.cn

WebAssembly时代 Rust也想成为Web语言

WebAssembly 和 JavaScript 之间的不匹配问题,JavaScript 可以调用 WebAssembly 函数,而反过来, WebAssembly 可以也对 JavaScript 函数执行相同的操作。 基于 ECMAScript 模块,wasm-bindgen 专注于 Rust,但其目的也是最终用于 C 和 C ++ 等语言。但 Mozilla 称 wasm-bindgen 目前还不够稳定,暂时还无法扩展到其它语言。 Rust 社区的一大目标是让 Rust 成为 Web 语言。通过对标 WebAssembly,Rust 可以像 JavaScript 一样成为一种可以在网络上运行的语言。但 Mozilla 指出,它并没有图用 Rust 取代 JavaScript。它不希望 Rust...阅读全文

博文 2018-04-10 12:38:26 debian.cn

Synopsys全球首发PCIe 6.0完整方案:用上5nm工艺

几乎零宕机时间。值得一提的是,PHY物理层还使用了先进的5nm工艺,搭配独特的模拟和DSP技术,可将功耗降低20%。Synopsys PCIe 6.0 IP方案中的验证IP现已可用,控制器、PHY物理层计划在今年第三季度提供早期用。PCIe 6.0标准规范目前还在制定中,计划在今年正式发布,按照传统继续让I/O带宽翻番达到64GT/s,应用到实际中,PCIe 6.0 x1单向实际带宽8GB/s,PCIe 6.0 x16单向带宽128GB/s、双向带宽256GB/s。PCIe 6.0将延续PCIe 3.0时代引入的128b/130b编码方式,但加入全新的脉冲幅度调制PAM4,取代PCIe 5.0 NRZ,可以在单个通道、同样时间内封包更多数据,以及低延迟前向纠错(FEC)和相关机制,以改进带...阅读全文

博文 2021-03-22 18:53:40 cnBeta.COM

VS Code 公布 2018 路线图:生态改进 快乐编码

。 Workbench:改善导航页面和通知界面、支持垂直面板布局、实现多选及常见的操作、状态栏管理等。 Editor:提高性能和可扩展性、支持语义着色、列选改进、原生 model layer 等。 Terminal:支持多终端分离和查看。 Source Control Integration:支持直接在编辑器中查看更改。 Node、 JavaScript 和 TypeScript Development 计划包括: Language Server Protocol:继续完善和改进语言服务器协议。 Debug Adaptor Protocol:继续完善和改进调适配器协议,为 DAP 功能提供更多 UI 。 TypeScript (and JavaScript):功能改进。 Debug:支持非 JS 场景的热部署...阅读全文

博文 2017-11-02 11:50:40 debian.cn

Golang 操作 Kafka 样例

1. Kafka介绍 1.1.1. Kafka是什么 kafka使用scala开发,支持多语言客户端(c++、java、python、go等) Kafka最先由LinkedIn公司开发,之后成为Apache的顶级项目。 Kafka是一个分布式的、分区化、可复制提交的日志服务 LinkedIn使用Kafka实现了公司不同应用程序之间的松耦和,那么作为一个可扩展、高可靠的消息系统 支持高Throughput的应用 scale out:无需停机即可扩展机器 持久化:通过将数据持久化到硬盘以及replication防止数据丢失 支持online和offline的场景 复制代码 1.1.2. Kafka的特点 Kafka是分布式的,其所有的构borker(服务端集群)、producer(消息生产...阅读全文

博文 2023-01-10 13:46:09 掘金

Go 语言的大版本更新:Go 2.0 安排上了

建议。 实现:根据来自社区的反馈意见,提案开始实现。 针对所实现的提案的反馈:在开发周期中,Go 开发团队和社区用新功能并且收集进一步的反馈意见。 启动决策:在三个月的开发周期结束时,根据在发布周期中收集的经验和反馈意见,Go 开发团队会考虑变更的预期收益或产生的额外成本,从而最终决定是否发布每个变更。一旦发布,这些被发布的提案就成为语言和库的一部分。未被发布的提案可能会重新起草,但也有可能会被永久拒绝。 可以看到,通过两轮的反馈过程,可对提案进行有效的筛选,从而防止“功能蔓延(feature creep)”,有助于保持 Go 语言的简洁。 提案选择标准 一项提案至少要满足以下这些条: 解决大部分使用者觉得重要的问题 不会对其他使用者造成太大的影响 提供一个清晰且易于理解的解决方案 条...阅读全文

处理器架构消亡史

。2017年后,Oracle被爆SPARC部门进行裁员,逐渐地,Oracle也逐渐放弃了SPARC的开发。有分析师认为,从内部看,是公司领导人重视硬,忽视的结果;也有人认为其硬搭配方式限制了他后来的发展。SUN作为开源架构的代表它的凋亡令人惋惜,但DEC Alpha的消亡则是因为其生态太过封闭而造成的。据相关资料显示,DEC公司将所有和Alpha处理器相关的配和外设都自己生产,不过为桌面电脑开发的主板却不支持SMP,而当时几乎所有采用Alpha处理器的公司都会使用多处理器系统,因此DEC公司所推出的桌面机型很没竞争力。另外,他们也一直不支持免费开源操作系统,这也成为了他们败走的一个原因。1998年,DEC因为财务原因,将Alpha架构与DEC的大部分内容一起出售给了Compaq。但已经...阅读全文

Linux 容器 vs 虚拟机 — 谁更胜一筹

的,而虚拟机对于像运行 LAMP 堆栈这样的单一应用程序使用情况是更好的。 Linux 容器 vs 虚拟机 – 安全性 与容器相比,虚拟机提供了更多的安全性。这并不是说容器不能被保护,而是说,默认的虚拟机提供了更大的隔离。请记住,容器可以共享系统资源而虚拟机不行。 在运行容器时,可以采取一些措施来降低风险,包括避免超级用户权限,确保从可信来源获取容器,并且保持最新状态。有些容器是数字签名的,这有助于确定您可以从可信来源获取容器。 最后,你需要保持容器的单一功能职责。一旦你开始在一个容器下结合职责,你会发现还是使用虚拟机最好。重申一下,容器是用于单一用途的应用程序,虚拟机用于多用途的应用程序。坚持这种做法,你将在安全性和整体功能方面处于更好的状况。 Linux 容器 vs 虚拟机 – 选择...阅读全文

博文 2017-11-25 10:23:56 debian.cn

不可变基础设施 (immutable infrastructure) - 云原生定义解析

云原生技术的不断发展,2018年,CNCF扩展了云原生技术的定义,以下是云原生技术的新定义:“云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师们能够轻松地对系统作出频繁和可预的重大变更。”其中,像容器,微服务等概念早已深入人心,而很多开发人员都对此次提及的“不可变基础设施”这个概念有不少疑惑,下文将对这个概念进行解析。其实不可变基础设施这个概念由来已久,并在不同的场合被很多技术专家已不同的形式提出并讨论过, 例如:“Trash Your Servers and Burn...阅读全文

个人信息保护新规将出台 消费者被短信轰炸将成为历史

,App开发运营者加强前端和后端安全防护、访问控制、技术加密、安全审计等工作,主动监发现个人信息泄露等违规行为,及时响应处置要求。App开发运营者还要履行国家规定的其他个人信息保护义务。 尽管《规定》尚未正式发布实施,但是主流平台企业已经用实际行动认可了各自的信息保护义务。 7月6日,阿里巴巴开放平台发布《依法加强消费者订单中敏感信息保护的公告》,称将启动订单处理链路的消费者敏感信息保护方案,对涉及消费者个人敏感信息采取加密、去标识化等安全技术措施。 7月9日,京东发布《JD用户订单隐私安全方案》,称为保障京东用户和商家数据信息安全,京东商家开放平台将对订单中手机号和座机号进行脱敏。 7月20日,抖音电商运营团队发布公告,为防止消费者隐私信息泄露,抖店将启动消费者隐私数据...阅读全文

几种常用的方法论、思维方式

,无论你有多大的聪明才智,也无论你如何努力进取,总会有一个你胜任不了的职位在等待着你,并且你一定会达到那个位置。这就是著名的彼得原理。 吉尔伯特法则 吉尔伯特法则是由吉尔伯特提出的一条管理定律,指出“工作危机最确凿的信号,是没有人跟你说该怎样做。” 它告诉我们一个道理:作为下属,当有人教训和指点的时候都是福气,都意味着关心。怕就怕没有人说你什么,也没有人教你怎么做。这等于说你没人管了,游离于纪律、规章的制约之外,看似自由,其实危机四伏。 沃尔森法则 沃尔森法则是美国企业家沃尔森提出的法则。主旨为把信息和情报放在第一位,金钱就会滚滚而来。你能得到多少,往往取决于你能知道多少。 要在变幻莫的市场竞争中立于不败之地,你就必须准确快速地获悉各种情报:市场有什么新动向?竞争对手有什么新举措?……在获得...阅读全文

UCloud 叶理灯 谈:Docker、K8S 和 Serverless

体系下,客户需要将做容器化打包和微服务改造,这个是有成本的。K8S 的特点决定它是运维和研发之间的桥梁,这样就要求公司的研发过程需要跟着改造。我们看到很多公司的运维人员有动力去推动,而研发人员则没有动力,因为它改变了研发的习惯和流程,增加了负担;当然也有的公司是研发希望用 K8S 管理应用,而需要运维跟着变。这样导致迁移到 K8S 的工作较重,但一旦这个阶段过去了,迁移后的效率和成本优势就体现出来了。 因此,这是个新技术落地的问题,涉及到用户教育和习惯的改变,这个需要社区和商业公司一起完成。而且每家公司的技术路线和文化不一样,上 K8S 的路径也不一样,所以没有一个放之四海皆准的最佳实践,但随着容器和微服务逐渐落地,K8S 作为事实标准,会逐步普及。 除了改造业务的成本,另外一方面是...阅读全文

博文 2019-06-14 08:28:49 debian.cn

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

上的延伸。"之前的PCIe解决了电脑系统与周边设备的数据传输问题,UCIe解决的是小芯片和小芯片,封装片上独立模块与模块之间的数据传输问题,如果没有统一的电气信号标准,就不会形成多家企业共同完成系统集成的生态合作,如果没有合作,入局Chiplet的单个企业就很难完成行业发展所需的生态建设。"刘宏钧说到。王宏波也表达了同样的观点,"PC时代,英特尔主导建立的x86体系就有一系列标准,例如:PCIe标准,可以让其他家的产品能够同英特尔的CPU分工协作,x86体系的一系列标准,构建了整个PC时代的硬体系,到了Chiplet时代,其实是将PC时代建立生态体系的逻辑缩小复刻到芯片中,Chiplet作为一个芯片组合,也需要靠UCIe标准将不同公司的芯片设计方便的组合在一个芯片中,通过这种方式建立生态并...阅读全文

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

理解 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

Golang 中的 channel 通道详解

,channel的零值也是nil。两个相同类型的channel可以使用==运算符比较。如果两个channel引用的是相同的对象,那么比较的结果为真。一个channel也可以和nil进行比较。通道的操作发送ch := make(chan int,0) // 创建一个无缓存区的int channel ch <- 998 // 向通道发送一个int类型的值10 接收receiver := <-ch //将通道ch的值取出,赋值给变量receiver <- ch //将通道ch的值取出,忽略结果 关闭close(ch) // 关闭通道 关于关闭通道需要注意的事情是,只有在通知接收方goroutine所有的数据都发送完毕的时候才需要关闭通道。通道是可以被垃圾回收机制回收的,它和关闭文是不一样的,在结束操作之后关闭...阅读全文

MySQL 8 第一个正式版发布:更好的性能

“隐藏”和“显示”。当对索引进行隐藏时,它不会被查询优化器所使用。我们可以使用这个特性用于性能调,例如我们先隐藏一个索引,然后观察其对数据库的影响。如果数据库性能有所下降,说明这个索引是有用的,然后将其“恢复显示”即可;如果数据库性能看不出变化,说明这个索引是多余的,可以考虑删掉。 5. 降序索引:MySQL 8.0 为索引提供按降序方式进行排序的支持,在这种索引中的值也会按降序的方式进行排序。 6. 通用表表达式(Common Table Expressions CTE):在复杂的查询中使用嵌入式表时,使用 CTE 使得查询语句更清晰。 7. UTF-8 编码:从 MySQL 8 开始,使用 utf8mb4 作为 MySQL 的默认字符集。 8. JSON:MySQL 8 大幅改进了对...阅读全文

博文 2018-04-20 10:40:18 debian.cn

Prometheus 常用 PromQL 语句样例

) right_metric其他常用的比较运算符:==、!=、>、<、>=、≤。 直方图分位数过去5分钟内,每个标签维度请求延迟的90%分位数: histogram_quantile(0.9, rate(my_request_durations_seconds_bucket[5m]))只针对 method 和 path 维度的90%分位数: histogram_quantile( 0.9, sum by(le, path, method) ( rate(my_request_durations_seconds_bucket[5m]) ) ) Gauges 的变化过去一小时内的绝对值变化: delta(my_gauge[1h])基于过去4小时的数据来预1小时后的数据: predict_linear(my_gauge...阅读全文

博文 2021-02-09 11:07:15 51CTO博客

开发者体验被重点关注:开发人员是关键资产 - OSCHINA

,以及他们可以在哪些方面利用这些数据来获得优势。"开源和 OpenTelemetry 正在共同推动可观性产业,但在最后,这一切都与开发者的体验有关。为开发者建立任何类型的工具的公司需要记住,开发者是需要关注的关键资产。你需要让他们成功,给他们一个愉快的体验并消除所有的摩擦。这样他们就可以快速行动,专注于他们需要的东西。" Betanews 作出结论称,开发者是开源社区不可或缺的一部分,且他们构建了公司所依赖的应用程序。公司必须记住:构建工具,使系统更有效、更快速、更容易使用,必须以开发人员为中心。“毕竟,他们是关键资产。”...阅读全文

博文 2021-12-28 14:45:52 中文开源技术交流社区

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

众所周知,在Java的知识体系中,并发编程是非常重要的一环,也是面的必问题,一个好的Java程序员是必须对并发编程这块有所了解的。为了追求成为一个好的Java程序员,我决定从今天开始死磕Java的并发编程,尽量弥补自己在这方面的知识缺陷。 并发必须知道的概念 在深入学习并发编程之前,我们需要了解几个基本的概念。 同步和异步同步和异步用请求返回调用的方式来理解相对简单。 同步:可以理解为发出一个请求后,必须等待返回结果才能执行下面的操作。 异步:请求发出后,不需要等待返回结果,可以继续执行后续操作,异步请求更像是在另一个 “空间” 中处理请求的结果,这个过程不会影响请求方的其他操作。 举个生活中的例子,比如我们去实体店买衣服,挑选完款式后下单让售货员去仓库拿货,在售货员拿货的过程你需要在店...阅读全文

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

IBM宣布以340亿美元收购RedHat 组建混合云提供商

发模式,以及促进其广泛的开发人员生态系统。此外,通过专利承诺、GPL 合作承诺、OIN 和 LOT 网络等工作,IBM 和 Red Hat 将继续致力于持续的开源自由。 除了 IBM Cloud 之外,IBM 和 Red Hat 还将继续构建和增强红帽合作伙伴关系,包括主要云提供商,如 AWS、微 Azure、谷歌云与阿里巴巴等。与此同时,红帽将从 IBM 的混合云和企业 IT 规模中受益,帮助他们将开源技术组合扩展到全球业务。 “收购 Red Hat 是一个改变游戏规则的方式。它改变了有关云市场的一切”,IBM 公司董事长、总裁兼首席执行官 Ginni Rometty 表示:“IBM 将成为全球排名第一的混合云提供商,为企业提供唯一的开放云解决方案,为企业提供全面的云价值。” “如今,大...阅读全文

RabbitMQ 高可用实现镜像队列

磁盘文,按场景4处理,如果拷贝过来的是B节点的磁盘文,按场景3处理。最后将新的slave节点加入C即可重新恢复镜像队列。 场景6:A先停,B后停,且A和B均无法恢复,且无法得到A和B的磁盘文 无解。 启动顺序中有一个30s 的概念,这个是 RMQ 的时间间隔,用于检master、slave是否可用,因此30s 非常关键。 对于生产环境RMQ集群的重启操作,需要分析具体的操作顺序,不可无序的重启,会有可能带来无法弥补的伤害(数据丢失、节点无法启动)。 简单总结下:镜像队列是用于节点之间同步消息的机制,避免某个节点宕机而导致的服务不可用或消息丢失,且针对排他性队列设置是无效的。另外很重要的一点,镜像队列机制不是负载均衡。...阅读全文

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

在 Kubernetes 上扩展 TensorFlow 模型

由于人工智能 / 机器学习日益集成到应用和业务流程中,因此生产级机器学习模型需要更多可扩展的基础设施和计算能力,以用于训练和部署。 现代机器学习算法在大量数据上进行训练,并且需要数十亿次迭代才能使成本函数最小化。这类模型的垂直扩展会遇到操作系统级别的瓶颈,包括可提供的 CPU、GPU 和存储的数量,而且对于这种类型的模型,已经证明效率并不高。更为高效的并行处理算法,例如异步训练和 allreduce 式训练,需要一个分布式集群系统,由不同的 worker (工作器)以协调的方式同时学习。 可扩展性对于在生产环境中服务深度学习模型也非常重要。将单个 API 请求处理到模型预端点可能会触发复杂的处理逻辑,这将花费大量时间。由于更多用户访问模型的端点,为了有效地处理客户端请求,需要更多服务实例...阅读全文

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

MongoDB 服务器都很重要。尤其是,除非有非常好的理由要使用mapReduce、group 或 $where,否则你应该 在配置文中设置 javascriptEnabled:false,禁用 JavaScript。因为标准 MongoDB 的数据文是不加密的,另外, 使用专门的用户运行 MongoDB 也是一个明智的做法,对数据文的完全访问仅限于那个用户,这样就可以使用操作系统自带的文访问控制了。 没有设计一个模式 对于模式,MongoDB 没有强制要求。这不是说它不需要模式。如果你真想保存文档而又没有一致的模式,那么你可以非常快速、简单地保存它们,但是 检索会十分麻烦 。 “MongoDB 模式设计的六大经验原则 ”是一篇值得一读的经典文章,而第三方工具(如 Studio 3T)提供的类似...阅读全文

深入理解Golang之context

available (because the // surrounding function has not yet been extended to accept a Context // parameter). Background和TODO只是用于不同场景下: Background通常被用于主函数、初始化以及中,作为一个顶层的context,也就是说一般我们创建的context都是基于Background;而TODO是在不确定使用什么context的时候才会使用。下面将介绍两种不同功能的基础context类型:valueCtx和cancelCtx。valueCtxvalueCtx结构体type valueCtx struct { Context key, val interface...阅读全文

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

高性能日志采集工具 logpipe 简单介绍

在集群化环境里,日志采集是重要基础设施。本文结合最新的 1.0.9 版,对 logpipe 做一个简单的介绍。开源主流解决方案是基于 flume-ng,但在实际使用中发现 flume-ng 存在诸多问题。 比如 flume-ng 的 spoolDir 采集器只能对文名转档后的大小不能变化的最终日志文进行采集,不能满足采集时效性要求,如果要采集正在被不断追加的日志文,只能用 exec 采集器搭配 tail -F 命令,但 tail -F 命令又不能通配目标目录中将来新增的未知文名。其它解决方案如 logstash 由于是 JAVA 开发,内存占用和性能都不能达到最优。 作为一个日志采集的本地代理,内存占用应该小而受控,性能应该高效,耗费 CPU 低对应用影响尽可能小,要能异步实时追踪...阅读全文

案例:Redis命令不当 引起数据库雪崩 造成数百万损失

最近的互联网线上事故发生比较频繁,9月19日网上爆料出顺丰近期发生了一起线上删库事,在这里就不介绍了。 这里分享一下最近发生在我公司的事故,以及如何避免,并且如何处理优化。 该宕机的直接原因是使用 Redis 的 keys * 命令引起的,一共造成了某个服务化项目的两次宕机。 间接原因还有很多,技术跟不上业务的发展,由每日百万量到千万级是一个大的跨进,公司对于系统优化的处理优先级不高,技术开发人手的短缺。 第一次宕机 2018年9月13日的某个点,公司某服务化项目的 RDS 数据库实例连接飙升,CPU 升到 100%,拒绝了其他应用的所有请求服务。 整个过程如下: 监控报警,显示RDS的CPU使用率达到80%以上,DBA介入,准备KILL慢SQL 1分钟内,没有发现明显阻塞的SQL...阅读全文

博文 2018-10-27 10:18:18 debian.cn

开源云存储 Seafile 6.1.4 发布

Seafile 是一款开源的企业云盘,注重可靠性和性能。支持 Windows, Mac, Linux, iOS, Android 平台。支持文同步或者直接挂载到本地访问。Seafile 的最新稳定版 6.1.4 已发布,更新如下: 云文浏览器: 更新文时不使用断点续传的上传功能 通过图标的显示来表示一个文已被缓存 当文更改后且无法上传到服务器时显示警告图标 用户可以重新对上传失败的本地修改文进行上传 添加一个命令打开本地缓存文夹 上传文或文夹时改进错误提示消息 [mac] 修复 doc/xls 文下载后自动上传的 bug 一些 UI 的修复和改进 其他更新: 不显示 127.0.0.1 的连接状态 禁止编辑本地同步路径,用户只能选择路径 一些 UI 的修复和改进 完整更...阅读全文

博文 2017-12-21 09:52:34 debian.cn

Linux Kernel 5.12-RC1标记为dontuse 严重到会毁掉整个根文件系统

当 Torvalds 将某些代码标记为“dontuse”,通常表明这个问题比较大。在 5.12 首个候选版本更新中,破坏了交换文(swapfile)的处理。具体来说,更新后的代码会失去指向 swapfile 开头的正确偏移。用 Torvalds 自己的话来说,“交换还是会发生,但它发生在文系统的错误部分,最终结果显然是灾难性的”。这样 Linux 内核如果想要将内存中的内容分页到磁盘上的时候,数据就会落在相同磁盘和 swapfile 活跃的分区的随机部分上,而且这不是作为文,而是作为垃圾直接写入到磁盘的原始扇区。这意味着不仅要覆盖现有文中的数据,还要覆盖相当大块的元数据,这些元数据的损坏很可能会导致整个文系统无法挂载和使用。Torvalds 继续指出,如果你根本不使用 swap...阅读全文

为何 Kubernetes 如此受欢迎?

原生云计算基金会(CNCF)。 CNCF 也是更大的 Linux 基金会的一部分,拥有一些顶级企业成员,其中包括微、谷歌和亚马逊。此外,CNCF 的企业成员队伍持续增长,SAP 和 Oracle 在过去几个月内加入白金会员。这些加入 CNCF 的公司,其中 Kubernetes 项目是前沿和中心的,这证明了有多少企业投注于社区来实现云计算战略的一部分。 Kubernetes 外围的企业社区也在激增,供应商提供了带有更多的安全性、可管理性和支持的企业版。Red Hat、CoreOS 和 Platform 9 是少数几个使企业级 Kubernetes 成为战略前进的关键因素,并投入巨资以确保开源项目继续得到维护的公司。 混合云带来的好处 企业以这样一个飞速的方式采用 Kubernetes 的另...阅读全文

博文 2017-11-07 23:58:26 debian.cn

Linux 新提议,JFS 文件系统面临弃用和删除

在去年年初,SUSE 的开发者向 Linux 内核提交了一个 v2 补丁,该补丁将 ReiserFS 文系统标记为已弃用,并将会在 2025 年从内核中正式删除它。删除的原因主要是过去十多年该文系统都不再活跃,并且在现代内核的生产用例中也不太可能再使用。基于差不多的原因,日前开发者也开始着眼讨论 Journaled File-System(JFS)文系统是否还应该在内核中继续保留的问题。​内核开发者 Christoph Hellwig 在邮列表中表示:不久前,我们已经弃用了 ReiserFS,并计划将其删除。看着 JFS 中的代码,我想知道我们是否也应该这样做。虽然 JFS 不像 ReiserFS 那么复杂,但它的使用率也很低,而且从未成为任何主要发行版中的默认文系统。1990...阅读全文

博文 2023-01-17 06:14:05 joseph

Go1.16 新特性:一文快速上手 Go embed

在以前,很多从其他语言转过来 Go 语言的同学会问到,或是踩到一个坑。就是以为 Go 语言所打包的二进制文中会包含配置文的联同编译和打包。 结果往往一把二进制文挪来挪去,就无法把应用程序运行起来了。因为无法读取到静态文的资源。 无法将静态资源编译打包进二进制文的话,通常会有两种解决方法: 第一种是识别这类静态资源,是否需要跟着程序走。第二种就是考虑将其打包进二进制文中。 第二种情况的话,Go 以前是不支持的,大家就会去借助各种花式的开源库,例如:go-bindata/go-bindata 来实现。 但从在 Go1.16 起,Go 语言自身正式支持了该项特性,今天我们将通过这篇文章快速了解和学习这项特性。 基本使用 演示代码: import _ "embed...阅读全文

博文 2021-02-17 08:44:12 CSDN

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

Docker v1.13.0 正式版发布

Docker v1.13.0 正式版发布了。需要注意的是,在 Docker 1.13 中,与在 Docker 1.12 中引入的实验版本相比,管理插 api 发生了变化。在升级到 Docker 1.13 之前,必须卸载使用 Docker 1.12 安装的插。可通过 docker plugin rm 命令卸载插。 如果已经升级到 Docker 1.13 而不卸载先前安装的插,则当 Docker 守护程序启动时,可能会看到此消息 Error starting daemon: json: cannot unmarshal string into Go value of type types.PluginEnv 要手动删除所有插并解决此问题,请执行以下步骤: 从 /var/lib...阅读全文

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

Debian中如何设置静态IP地址 网关 DNS

新安装的Debian系统,默认一般使用DHCP获取IP地址,除非在安装过程中,使用了指定的IP地址。本文将介绍如何在Debian系统中,配置使用静态IP地址,配置网关,以及设置DNS服务器。 这些配置通过修改配置文,很容易实现。在 Redhat 系列的 Linux 环境中,我们一般修改网卡的网络配置文,对应的文名为 /etc/sysconfig/network-scripts/ifcfg-eXX,其中eXX即为网络设备名。网络设备的列表可以他通过 ifconfig 命令获取。同样的,在 Debian 环境下,我们只需要修改网络的配置文便可以了。相比之下,配置过程要比 Redhat 更为方便,只需要修改 /etc/network/interfaces 文。 Debian 系统设置静...阅读全文

架构师详解 Nginx 架构

引言:众所周知,Nginx 服务器是一个高性能的 Web 和反向代理服务器。Nginx 在激烈的 Web 服务器竞争中依旧保持良好的发展势头,一度成为 Web 服务器市场的后期之秀,这一切跟 Nginx 的架构设计是分不开的。 一. Nginx 模块化设计 高度模块化的设计是 Nginx 的架构基础。Nginx 服务器被分解为多个模块,每个模块就是一个功能模块,只负责自身的功能,模块之间严格遵循“高内聚,低耦合”的原则。 核心模块 核心模块是 Nginx 服务器正常运行必不可少的模块,提供错误日志记录、配置文解析、事驱动机制、进程管理等核心功能。 标准 HTTP 模块 标准 HTTP 模块提供 HTTP 协议解析相关的功能,如:端口配置、网页编码设置、HTTP 响应头设置等。 可选...阅读全文

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

XFS V5 如何找到文件的创建时间?

xfs 从 v5 开始支持查看文的创建时间。使用 dmesg 命令,可以查看系统当前使用的 xfs 的版本: ``` # dmesg | grep -iE 'xfs.*\s+mounting' | head -1 ``` 如何查看 xfs 上文的创建时间? 找到文的 inode 信息后,就可以直接查看, ``` # stat -c '%i' test.txt 7827295 ``` 然后获取文的创建时间, ``` # xfs_db -r -c "inode 7827295" -c "p v3.crtime.sec" v3.crtime.sec = Thu Feb 23 12:15:46...阅读全文

Linux 系统 vim 编辑器使用简明教程

做文字输入,按ESC键可回到命令模式。 3) 底行模式(last line mode) 将文保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号。 不过一般我们在使用时把vi简化成两个模式,就是将底行模式也算入命令模式。 一、打开文、保存、关闭文(vi命令模式下使用) vi filename //打开filename文 :w //保存文 :w debian.cn //保存为当前目录下的文"debian.cn" :q //退出编辑器,如果文已修改请使用下面的命令 :q! //退出编辑器,且不保存 :wq //退出编辑器,且保存文 :x! //退出编辑器,且保存文,忽略是否对文具有写权限 二、插入文本或行(vi命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退...阅读全文

博文 2015-07-25 16:33:04 debian.cn

Debian GNU/Linux 删除旧驱动程序,激怒老式硬件用户

Phoronix表示,该网站近期收到了许多用户的来信,称对 Debian GNU/Linux 放弃许多旧的硬驱动程序的举措感到愤慨。本月初,Debian“X Strike Force”团队决定从 Debian 中删除一些过时的输入和视频驱动程序。其指出,作出该决定的依据是“它们在上游没有维护,或没有任何价值。” 受影响的驱动程序包括有 Mach 64、ATI Rage R128、Savage、Silicon Motion、SiS、Trident 和 NeoMagic 图形硬。其中,像 ATI Rage 128 之类已有 20 多年的应用历史,并且这些驱动程序还支持许多其他种类硬。 最初,Geode display driver 也被设置为删除,不过最终被保留了下来。此外,Elo...阅读全文

博文 2020-04-23 09:29:31 debian.cn

Web前端知识体系精简

this this 存在于函数中,它指向的是该函数在运行时被调用的那个对象。在实际项目中,遇到this的坑比较多,因此需要对this作深入的理解。 Function对象还提供了call、apply和bind等方法来改变函数的this指向,其中call和apply主动执行函数,bind一般在事回调中使用,而call和apply的区别只是参数的传递方式不同。关于call,apply和bind的用户请参考博客:详解JS的call,apply和bind 4、构造函数 new JS中的函数即可以是构造函数又可以当作普通函数来调用,当使用new来创建对象时,对应的函数就是构造函数,通过对象来调用时就是普通函数。 普通函数的创建有:显式声明、匿名定义、new Function() 等三种方式。 当通过new来...阅读全文

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

西部数据的Zonefs将登陆Linux 5.6内核

西部数据开发了有一段时间的Zonefs已经确定要在Linux 5.6内核中登场了,这并不是一个传统意义上面的通用文系统(比如Ext4、NTFS),而是一个针对特定硬设备的文系统,它为分区式存储设备进行了高度的优化。 熟悉Linux的朋友应该知道,在Linux下面内核会将存储设备视为块设备,比如目前会将SATA存储设备视为/dev/sdX。传统文系统是在这个块设备上面进行操作,而应用程序则是通过系统提供的接口对块设备上面的数据进行访问。 但SMR HDD(叠瓦式硬盘)有一个毛病,它只有在顺序写入时才能正常发挥性能,一旦要进行数据覆盖写入,就需要改写这块数据所在区块内的所有磁道,造成严重的性能下降。传统的文系统不会因为SMR HDD的特性而特别对待它,而Zonefs就是西部数据对...阅读全文

Linux Kernel 4.19 正式版本发布 将是长期支持版

Greg Kroah-Hartman 在内核邮列表上 宣布 释出 Linux 4.19。Linux 作者 Linus Torvalds 最近在 休假反省 ,Linux 的开发现在由稳定版内核维护者 Kroah-Hartman 接手。 Kroah-Hartman 表示,4.19 将会是一个长期支持版本,他也会维持几年。 Linux 4.19 的主要新特性包括: 基于异步 I/O 的轮训接口 L1TF 漏洞补丁 块 I/O 延迟控制器 Common Applications Kept Enhanced (CAKE) 队列管理算法 Wi-Fi 6 (802.11ax) 初步支持 实验性文系统 EROFS Intel Cache Pseudo-locking 基于时间的包传输 改进 RISC...阅读全文

博文 2018-10-24 13:37:11 debian.cn

k8s 中发现很多为状态为 Evicted 的 Pod

")) | "kubectl delete pods \(.metadata.name) -n \(.metadata.namespace)"' | xargs -n 1 bash -c 将Evicted状态的pod删除后,清理一波磁盘,具体操作可以查看如何清理Linux服务器磁盘空间 df -h //查看服务器空间 du -h --max-depth=1 //查看当前目录,哪个文占用最大 du -sh * //查看当前目录下各文及文夹占用大小 cp /dev/null a.log //将a.log文清除为空 最后k8s上的服务显示正常了。...阅读全文

博文 2021-03-05 08:34:20 diablo4

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

在 Linux 5.2 发布一周后,第一个修订版本 5.2.1 也已经发布了,用来处理各种错误/回归。需要注意的是5.2并非长期支持(LTS)分支,推荐注重稳定的用户还是使用当前的LTS内核。 5.2.1版只是修改一些小小的问题,主要有以下方面: 修复 Perf减少 RTL 8712 驱动程序的堆栈使用fscrapt 将不再为 dead 目录设置策略还有一个新的文档部分,详细说明了 Spectre 的 CPU 漏洞 完整列表查看发布说明。 Linux Kernel 5.2的亮点包括Sound Open Firmware,这是一个支持DSP音频设备的开源固。此外还新增了用于挂载文系统的新挂载API,面向ARM Mail设备的全新开源GPU驱动,在EXT4文系统中支持不区分大小写,以及对...阅读全文

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

Pyinotify – Linux中实时监控文件系统更改

Pyinotify 是一个简单而实用的 Python 模块,它用于通过 inotify 实时监控Linux文系统的更改。用于在Linux中实时监控文系统的变化。 作为系统管理员,您可以使用它来监视目标感兴趣的更改,如Web目录或应用程序数据存储目录及其他目录。这取决于inotify (包含在 2.6.13及后续Linux内核中的功能),它是一个事驱动的通知程序,其通知通过三个系统调用从内核空间导出到用户空间。 pyinotiy的目的是绑定三个系统调用,并支持其上的实现,提供了一个共同和抽象的手段来操纵这些功能。 在本文中,我们将向您展示如何在Linux中安装和使用pyinotify来实时监控文系统更改或修改。 依赖关系 为了使用pyinotify ,您的系统必须运行: Linux内...阅读全文

博文 2011-11-09 10:53:58 debian.cn

Terraform 学习总结 — Terraform 简介

Infrastructure as Code", 基础架构即代码。Terraform 几乎可以支持所有市面上能见到的云服务。具体的说就是可以用代码来管理维护 IT 资源,把之前需要手动操作的一部分任务通过程序来自动化的完成,这样的做的结果非常明显:高效、不易出错。 Terraform 提供了对资源和提供者的灵活抽象。该模型允许表示从物理硬、虚拟机和容器到电子邮和 DNS 提供者的所有内容。由于这种灵活性,Terraform 可以用来解决许多不同的问题。这意味着有许多现有的工具与Terraform 的功能重叠。但是需要注意的是,Terraform 与其他系统并不相互排斥。它可以用于管理小到单个应用程序或达到整个数据中心的不同对象。 Terraform 使用配置文描述管理的组(小到单个应用程序,达到整个数据中心...阅读全文

kubelet 中垃圾回收机制的设计与实现

如下: 当容器镜像挂载点文系统的磁盘使用率大于--image-gc-high-threshold时(containerRuntime 为 docker 时,镜像存放目录默认为 /var/lib/docker),kubelet 开始删除节点中未使用的容器镜像,直到磁盘使用率降低至--image-gc-low-threshold 时停止镜像的垃圾回收。kubelet GarbageCollect 源码分析kubernetes 版本:v1.16GarbageCollect 是在 kubelet 对象初始化完成后启动的,在 createAndInitKubelet 方法中首先调用 kubelet.NewMainKubelet 初始化了 kubelet 对象,随后调用...阅读全文

博文 2021-02-05 17:48:22 知乎

Linux Kernel 4.14 正式发布,驱动和性能改进

Linus Torvalds 宣布推出最新的 Linux Kernel 4.14 稳定版,并开始接受 4.15 合并请求。 Linux 4.14 带来了许多新功能和变化,主要包括对驱动程序和硬启用的改进,文系统调整和性能优化等等,并将成为下一个长期支持版本(LTS)。 该版本优化了对 x86_64 硬的内存支持,从原来的 256TiB 虚拟地址空间和 64TiB 物理地址限制优化至 128PiB 和 4PiB 。 其他更改: 新 Realtek Wi-Fi 驱动(RTL8822BE) 支持 Btrfs Zstd 压缩 支持 HDMI CEC(Raspberry Pi) 内存安全加密(AMD EPYC 处理器) 支持华硕 T100 触摸板 Heterogeneous Memory...阅读全文