Golang 中的 channel 通道详解

channel通道golang的并发模型是序列通信处理CSP(communicating sequential process)——使用通信来共享内存 ,避免goroutine因竞争共享内存频繁加锁产生的性能问题。基本数据结构golang中提供了一个特殊的类型channel实现goroutine之间的通信。channel类似于队列,先进先出。channel数据结构源码在src/runtime/chan.go下。chan 使用 hchan 表示,它的传参与赋值始终都是指针形式,每个 hchan 对...阅读全文

Debian中国 2021-02-10 11:47:31 joseph

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

1. HDFS概述 Hadoop 分布式系统框架中,首要的基础功能就是文件系统,在 Hadoop 中使用 FileSystem 这个抽象类来表示我们的文件系统,这个抽象类下面有很多子实现类,究竟使用哪一种,需要看我们具体的实现类,在我们实际工作中,用到的最多的就是HDFS(分布式文件系统)以及LocalFileSystem(本地文件系统)了。 在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称为分布式文件系统。 HDFS(Hadoop Distri...阅读全文

中文开源技术交流社区 2021-02-10 07:07 开源技术社区

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

早在 Ubuntu 诞生之前,作为完全由自有软件组成的类 UNIX 操作系统 Debian 凭借着惊人的软件数量、高度集成的软件包、良好的安全等特性成为 Linux 领域的佼佼者。不过如今看来,Debian 的流行度开始大大减弱。 日前,维护 Debian 包近 10 年的开发者 Michael Stapelberg 发文表示,要在维护的 Debian 包中删除自己的姓名,并让这些包自生自灭,彻底放手 Debian,而这究竟是何原因使得 Debian 惨遭嫌弃? 作者 | Michael Sta...阅读全文

CSDN博客_debian 2019-03-22 17:01 Michael Stapelb 等

Prometheus 常用 PromQL 语句样例

PromQL 是 Prometheus 提供的一个函数式的表达式语言,可以使用户实时地查找和聚合时间序列数据。表达式计算结果可以在图表中展示,也可以在 Prometheus表达式浏览器中以表格形式展示,或者作为数据源,以 HTTP API 的方式提供给外部系统使用。PromQL 虽然以 QL 结尾,但是它不是类似 SQL 的语言,因为在时间序列上执行计算类型时,SQL 语言相对缺乏表达能力。而 PromQL 语言表达能力非常丰富,可以使用标签进行任意聚合,还可以使用标签将不同的标签连接到一起进行...阅读全文

51CTO博客 2020-07-28 17:33 51CTO博客

树莓派4B系统Buster版换用国内安装源

树莓派4B使用国内源(buster版本) 之前一直找的是网上现成的源,结果后面发现树莓派4B早已不是stretch版本,而是buster版本,踩了许许多多坑,希望后来的人不要重蹈覆辙。下面就来手把手教你如何将树莓派4B切换为国内源。 1.使用ssh或者VNC登录到树莓派,然后打开终端,修改软件更新源,执行如下命令: sudo nano /etc/apt/sources.list 2.在第一行复制粘贴以下代码,在这里使用中科大官方镜像源。 deb http://mirrors.ustc.edu.c...阅读全文

CSDN博客 2019-08-25 09:47 CSDN博客

Debian 10.8 发布:包括多项安全更新和错误修复

Debian 项目团队宣布其稳定发行版 Debian 10 (代号 "buster")的第八次更新。本次更新主要是对安全问题进行了修正,同时也对一些严重的问题进行了调整。安全公告已经单独发布,并在可用的地方进行了参考。 需要注意的是,这个点发行版(point release)并不构成 Debian 10 的新版本,只是更新了其中的一些软件包。没有必要扔掉旧的 "buster "介质。安装后,可以使用最新的Debian镜像将软件包升级到当前版本。 那些经常从 security.debi...阅读全文

Debian中国 2021-02-07 10:57:22 joseph

DNSCrypt简明教程

原文可见:DNSCrypt简明教程 - Jiajun的编程随想我们输入 jiajunhuang.com 之后,浏览器是需要将 jiajunhuang.com 翻译成IP,然后才能建立TCP连接的。而将域名翻译成IP地址, 就是DNS服务器的事情,但是有一个小问题,DNS是明文的。也就是说,尽管你使用了HTTPS,由于在建立TLS连接之前,你得先查询域名所对应的IP,因此,还是可以通过监控你的DNS来推测你准备 访问什么流量,更坏一点的情况,可以给你伪造一个响应,返回错误的地址,这种情况就叫做“D...阅读全文

知乎 2019-10-31 00:00 知乎

如何使用 ipset 将单个国家的所有IP加入黑名单

ipset 是 iptables 的扩展,它允许你创建匹配整个地址集合的规则,而不像普通的 iptables 链只能单IP或单网段匹配。 ipset 规则中的IP地址集合存储在带索引的数据结构中,这种结构即时集合比较大也可以进行高效的查找,从而减少系统资源占用或网络拥塞。IPset 也具备一些新防火墙设计方法,并简化了配置。ipset 的官网:http://ipset.netfilter.org 下面我们以一个实际场景为样例,介绍如何在Debian系统中,使用 ipset 将单个国家的左...阅读全文

Debian中国 2021-02-06 16:43:47 joseph

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

kubernetes 中的垃圾回收机制主要有两部分组成:一是由 kube-controller-manager 中的 gc controller 自动回收 kubernetes 中被删除的对象以及其依赖的对象;二是在每个节点上需要回收已退出的容器以及当 node 上磁盘资源不足时回收已不再使用的容器镜像;本文主要分析 kubelet 中的垃圾回收机制,垃圾回收的主要目的是为了节约宿主上的资源,gc controller 的回收机制可以参考以前的文章 garbage collector contr...阅读全文

知乎 2020-03-05 00:00 知乎

如何使用 journalctl 清理 journal 日志

在CentOS 7开始使用的systemd使用了journal日志,这个日志的管理方式和以往使用syslog的方式不同,可以通过管理工具维护。 使用df -h检查磁盘文件,可以看到/run目录下有日志目录/run/log/journal,占用了数G空间 Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 8.5G 4.2G 4.4G 49% / tmpfs 16G 1.6G 15G 11% /run 在日志目录下有...阅读全文

博客园 2019-06-25 09:57 博客园

在 Kubernetes 上扩展 TensorFlow 模型

由于人工智能 / 机器学习日益集成到应用和业务流程中,因此生产级机器学习模型需要更多可扩展的基础设施和计算能力,以用于训练和部署。 现代机器学习算法在大量数据上进行训练,并且需要数十亿次迭代才能使成本函数最小化。这类模型的垂直扩展会遇到操作系统级别的瓶颈,包括可提供的 CPU、GPU 和存储的数量,而且对于这种类型的模型,已经证明效率并不高。更为高效的并行处理算法,例如异步训练和 allreduce 式训练,需要一个分布式集群系统,由不同的 worker (工作器)以协调的方式同时学习...阅读全文

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

当时预计该项目将在2020年就会投入使用,但除了要处理跨越各大洲之间的长电缆的复杂问题外,项目负责人当时可能没有为COVID-19全球大流行做好准备。这条近4000英里的电缆总容量为每秒250Tb--或者说足以传输 "整个数字化的美国国会图书馆每秒三次"。与一些老旧的电缆不同,Dunant使用了12对光纤,再加上围绕最大化其带宽的一些技术创新,才实现了这些数字。"谷歌致力于满足对云服务和在线内容的爆炸性需求,这种需求有增无减,"谷歌云基础设施高级总监Mark Sokol说。"凭借创纪录的容量和传...阅读全文

IA64架构终结!Linux内核完全移除对Intel安腾处理器支持

还有人记得Intel的安腾处理器(Itanium)吗? 日前,Linux之父Linus Torvalds在一篇代码评论中透露,计划进行一次补丁合并,结果就是移除对Intel安腾处理器的支持。 他说,惠普企业已经不再接受安腾硬件订单,Intel一年前也停止接单,尽管最终的出货日期定在今年7月29日,但显然不会有这样的订单存在。安腾,已经死透了。 资料显示,安腾诞生于2001年,是Intel与惠普合作开发,当时提出了划时代的IA64纯64位架构。然而,生不逢时,“过去超前”,不像AMD x64那样兼...阅读全文

科技改变未来 2021-02-01 19:48 科技改变未来

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

新春现金红包与免费Linux基金会培训&认证,等你来领!>>> 2021年1月26日,W3C(万维网联盟)和 IETF (互联网工程任务组)同时宣布 WebRTC(Web Real-Time Communications,Web 实时通信)现发布为正式标准,将音视频通信带到 Web 上任何地方。 WebRTC 由用于 Web 实时通信的 JavaScript API 和一组通信协议构成,支持网络上的任何已连接设备成为 Web 上潜在的通信端点。WebRTC 已成为线上通信及协作服务的基石。 目前...阅读全文

中文开源技术交流社区 2021-01-28 00:00 开源技术交流社区

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

UK8S是UCloud推出的Kubernetes容器云产品,完全兼容原生API,为用户提供一站式云上Kubernetes服务。我们团队自研了CNI(Container Network Interface)网络插件,深度集成VPC,使UK8S容器应用拥有与云主机间等同的网络性能(目前最高可达10Gb/s, 100万pps),并打通容器和物理云/托管云的网络。过程中,我们解决了开源kubelet创建多余Sandbox容器导致Pod IP莫名消失的问题,确保CNI插件正常运行,并准备将修复后的kube...阅读全文

CSDN博客 2019-04-12 15:51 CSDN博客

prometheus通过node_exporter抓取的数据准确计算磁盘使用率

公司使用的openstack的备份服务组件karbor,要查询所使用的备份nas磁盘使用率的需求,根据以前的查询语句,很快写出如下的prom sql 100-topk(1,node_filesystem_free{device=~":/.*"}*100/node_filesystem_size{device=~":/.*"}) 不久后,同事过来说给出的使用率不严谨,和在系统上通过df -h的命令不一样,分别是prom:10%,df结果是11%。嘴上说着差异不大不用管,身体却很实诚,马上去主机上通...阅读全文

中文开源技术交流社区 2019-06-17 16:47 中文开源技术社区

Golang channel 通道常见使用场景

Go 的 channel 在实际项目中是怎么使用呢? channel 会有有缓冲和无缓冲两种类型,无缓冲的可以简单使用让两个 goroutine 数据同步通信。另外一种场景是对某个 object,使用 channel 作为其属性之一,那么待channel阻塞时则表明条件未满足,则需要等待其他数据结果返回。 本文列举几类常见的 channel 使用场景。 读写 package main import ( "fmt" "time" ) func WriteData(intChan chan int)...阅读全文

debian.cn 2021-01-24 00:00 debian.cn

Linux Kernel 5.10.8发布:解决Btrfs性能倒退问题

Linux Kernel 5.10 LTS 的第八个维护版本更新于今天正式发布,本次更新最值得关注的改进就是终于解决了 5.10 Btrfs 性能倒退的问题。在去年圣诞节的时候,Linux 5.10 就被反馈 Btrfs 出现了明显的性能倒退问题。例如简单解压一个 Linux 内核源码.tar.zst 文件,可能需要花费数倍的时间。 虽然修复 Btrfs 性能倒退的补丁在去年年底就已经推出,但直到今天才整合到 mainline 上。而且,在即将到来的 Linux 5.11 上还将会对 Btrfs...阅读全文

debian.cn 2021-01-18 00:00 debian.cn

25岁的Flash正式被弃用

几周前,Adobe公司放弃了对Flash Player的支持,并强烈建议所有用户出于安全原因立即卸载浏览器插件。从今天开始,Adobe更是完全放弃了Flash。 目前,当用户尝试在浏览器(例如Chrome)中加载Flash游戏或内容时,该内容现在无法加载,而是显示一条小横幅,该横幅指向Adobe网站上的Flash报废页面。 虽然这一天早有预兆——许多年前,许多浏览器默认禁用Flash,但Flash的25年历史今天算是正式的(官方的)结束了。 “由于2020年12月31日之后Adobe将不再支持F...阅读全文

debian.cn 2021-01-13 00:00 debian.cn

Linux 进程 PID 编号最大为多少

整理本文,起源是看到知乎上的一个问题,为什么Linux的进程pid编号极限最大值( process pid max)是131070? 问题中提到,通过提问者的测试(Ubuntu18.04操作系统下),Python脚本实现的分配进行pid脚本,渠道系统自动分配给进程的最大pid值是131070,这是一个并不特殊的值。(通常可以想到的上限会是与二进制数字相关,例如1024,65536等等)。 很高兴,看到还是有很多人在坚持知乎的本来精神,先问是不是,再问为什么。   Linux 内核的进程 PID ...阅读全文

debian.cn 2021-01-12 00:00 debian.cn