InfraPub 为您找到相关结果 674

中芯国际2200万豪宅留下梁孟松 明年量产N+2工艺

年多,几乎从未休假,在其带领的2000多位工程师的尽心竭力的努力下,完成了中芯国际从28nm到7nm工艺的五个世代的技术开发。据梁孟松透露,目前中芯国际的“28nm、14nm、12nm及N+1等技术均已进入规模,7nm技术的开发也已经完成,明年四月就可以马上进入风险。5nm和3nm的最关键、也是最艰巨的8大项技术也已经有序展开, 只待EUV光刻机的到来,就可以进入全面开发阶段”。当然,7工艺以下的先进工艺现在还只是技术研发,没法,因为缺少关键的EUV光刻机设备。目前中芯国际已经完成了14nm工艺1.5万片晶圆/月的能建设目标,接下来的重点是N+1、N+2代工艺,尽管官方一直没有透露具体多少,不过业界认为N+1工艺大概是8到10nm节点,N+2工艺则是7nm节点。N+1工艺已经风...阅读全文

六大算法之三:动态规划【转载】

有这条性质,动态规划算法同其他算法相比就不具备优势) 动规解题的一般思路 动态规划所处理的问题是一个多阶段决策问题,一般由初始状态开始,通过对中间阶段决策的选择,达到结束状态。这些决策形成了一个决策序列,同时确定了完成整个过程的一条活动路线(通常是求最优的活动路线)。如图所示。动态规划的设计都有着一定的模式,一般要经历以下几个步骤。 初始状态→│决策1│→│决策2│→…→│决策n│→结束状态 图1 动态规划决策过程示意图 (1)划分阶段:按照问题的时间或空间特征,把问题分为若干个阶段。在划分阶段时,注意划分后的阶段一定要是有序的或者是可排序的,否则问题就无法求解。 (2)确定状态和状态变:将问题发展到各个阶段时所处于的各种客观情况用不同的状态表示出来。当然,状态的选择要满足无后效性。 (3...阅读全文

博文 2021-07-31 07:18:53 CSDN博客

Rust 1.37.0 稳定版发布

Rust 1.37.0 stable 有什么?Rust 1.37.0 的亮点包括通过类型别名引用枚举变、内置 cargo vendor、对宏使用未命名的 const、配置文件引导的优化、Cargo 中的 default-run 和枚举上的 #[repr(align(N))] 。 通过类型别名引用枚举变 在 Rust 1.37.0,可以通过类型别名引用枚举变。例如: type ByteOption = Option; fn increment_or_zero(x: ByteOption) -> u8 { match x { ByteOption::Some(y) => y + 1, ByteOption::None => 0, } } 要实现它,Self 充当类型别名。在 Rust...阅读全文

博文 2019-08-17 21:17:23 debian.cn

从 Debian 安装 Proxmox VE,并配置网络和双硬盘

-Thin 会相对有点麻烦。 需要指定容,末尾还要留点容,因为 convert 到 thin-pool 后需要占用少空间来存放一些元数据 metadata,2 MB,但这个容不会从你创建的 lv 中去获取,所以这个容要留有,分区不能全部划完。 1234[email protected]:/var/lib/vz/template/iso# vgs VG #PV #LV #SN Attr VSize VFree hdd 1 1 0 wz--n- 2.73t 2.63t s163941-vg 1 2 0 wz--n- 223.33g 0 vgs 看到剩余容是 2.63T,我也指定 2.63T,实际上也留有一部分小数. 从名为 hdd 的 vg 中创建大小为 2.63T,名字叫 vm-data...阅读全文

博文 2021-03-01 20:20:31 驱蚊器喵的插座

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

Pod注入了 env 环境变 PODPRESET_MESSAGE=This is podpreset message. 到匹配的 Pod 中注入了 volumes 卷挂载目录到匹配的 Pod 中的 /opt/logs 目录 创建一下该 PodPreset 资源。 $ kubectl create ns wanyang3 namespace/wanyang3 created $ kubectl apply -f podpreset-busybox-hwy.yaml podpreset.settings.k8s.io/busybox-hwy created $ kubectl get podpreset -n wanyang3 NAME CREATED AT busybox-hwy 2019-07...阅读全文

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

Redis 命令、特性介绍与性能调优

、Hyperloglogs等。 Redis具备LRU淘汰、事务实现、以及不同级别的硬盘持久化等能力,并且支持副本集和通过Redis Sentinel实现的高可用方案,同时还支持通过Redis Cluster实现的数据自动分片能力。 Redis的主要功能都基于单线程模型实现,也就是说Redis使用一个线程来服务所有的客户端请求,同时Redis采用了非阻塞式IO,并精细地优化各种命令的算法时间复杂度,这些信息意味着: Redis是线程安全的(因为只有一个线程),其所有操作都是原子的,不会因并发生数据异常 Redis的速度非常快(因为使用非阻塞式IO,且大部分命令的算法时间复杂度都是O(1)) 使用高耗时的Redis命令是很危险的,会占用唯一的一个线程的大处理时间,导致所有的请求都被拖慢。(例如时间复杂度为O(N)的...阅读全文

博文 2018-10-27 10:37:55 debian.cn

Golang 操作 Kafka 样例

)、consumer(消息消费者)都可以是分布式的。 在消息的生时可以使用一个标识topic来区分,且可以进行分区;每一个分区都是一个顺序的、不可变的消息队列, 并且可以持续的添加。 同时为发布和订阅提供高吞吐。据了解,Kafka每秒可以生约25万消息(50 MB),每秒处理55万消息(110 MB)。 消息被处理的状态是在consumer端维护,而不是由server端维护。当失败时能自动平衡 1.1.3. 常用的场景 监控:主机通过Kafka发送与系统和应用程序健康相关的指标,然后这些信息会被收集和处理从而创建监控仪表盘并发送警告。 消息队列: 应用程度使用Kafka作为传统的消息系统实现标准的队列和消息的发布—订阅,例如搜索和内容提要(Content Feed)。比起大多数的消息系统来说,Kafka...阅读全文

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

InfluxDB 的 percentile 函数详解

官方文档的说明并不详细: https://jasper-zhang1.gitbooks.io/influxdb/content/Query_language/functions.html 实际百分位取第几位的值参考如下 PERCENTILE(field_key, N) 选取某个字段中大于N%的这个字段值。 如果一共有4条记录,N为10,则10%*4=0.4,四舍五入为0,则查询结果为空。N为20,则 20% * 4 = 0.8,四舍五入为1,选取的是4个数中最小的数。如果N为40,40% * 4 = 1.6,四舍五入为2,则选取的是4个数中第二小的数。 由此可以看出N=100时,就跟MAX(field_key)是一样的,而当N=50时,与MEDIAN...阅读全文

基于thanos搭建分布式prometheus

prometheus存在单点问题,具体痛点可以这么描述: prometheus单机存储和抓取能力都有上限,容易单点故障。 虽然有一种方式是通过部署N个prometheus分别抓取不同的target来分摊压力的,但是grafana就要为不同的图表配置不同的prometheus地址,复杂程度比较棘手。 thanos+prometheus可以解决这个问题,它提供了一个核心能力: 1,thanos querier组件可以反向代理到N个prometheus,然后grafana直接指向thanos querier即可,thanos querier会从N个prometheus同时查询数据,返回满足Promql的数据结果; 2,如果N个prometheus抓取的数据存在重复的,那么thanos...阅读全文

博文 2021-03-01 13:02:46 鱼儿的博客

如何重启 Kubernetes 中的 Pods

在使用 Docker 时,我们可以使用 docker restart container_id 来非常方便的重启容器,但是在 kubernetes 中并没有重启 pod 的命令。有时 Pod 意外终止时,我们希望重启 pod,来进行排障或者尝试恢复服务。这时我们会发现蛋有点疼,没有一个很直观的方式来重启 pod。 这里我总结了几种重启 Pod 的方式,分两种情况讨论如何重启 K8S 中的 Pod,希望对大家有所帮助。 第一种方式:Deployment方式下重启Pod 大多数生环境,使用的是 Deployment 方式部署应用。这种场景下,我们可以直接删除对应的 Pod,让k8s去完成 pod 重建,命令: kubectl delete pod {podname} -n...阅读全文

博文 2020-07-13 21:23:30 debian.cn

APISIX Ingress 如何使用 Cert Manager 管理证书

Apache APISIX Ingress Controller 是一款以 Apache APISIX 作为数据面的 Kubernetes Ingress Controller 开源工具,目前已经更新到 v1.3 版本,实现了如证书管理、负载均衡、金丝雀发布等功能。 长久以来,证书管理都不是一件简单的事情,虽然 Apache APISIX Ingress Controller 支持从 Kubernetes Secrets 资源中提取证书和私钥,并转换为 Apache APISIX 可识别的 SSL 对象,但这只是整个证书管理链中的一部分,证书的颁发、轮转、吊销逻辑依然需要管理员执行,尤其当证书数比较多时,工作往往并不小,因而会占用管理员不少的时间。 Cert Manager 是一款致力...阅读全文

博文 2023-02-09 07:38:06 中文开源技术交流社区

Kubernetes 部署 Nacos 1.4 集群 · 小豆丁

-binding subjects: - kind: ServiceAccount name: nacos-admin namespace: devops roleRef: kind: ClusterRole name: nacos-admin-clusterrole apiGroup: rbac.authorization.k8s.io 执行部署 Nacos RBAC 资源 -n:指定部署的 Namespace $ kubectl apply -f nacos-rbac.yaml -n mydlqcloud 2、创建数据库配置 ConfigMap 资源 nacos-config.yaml apiVersion: v1 kind: ConfigMap metadata: name: nacos...阅读全文

博文 2021-02-24 10:10:29 www.mydlq.club

linux下查看系统socket读写缓冲区_eyucham的专栏

一:linux下查看系统socket读写缓冲区大小配置: http://blog.csdn.net/herecles/article/details/8146017 1. tcp 收发缓冲区默认值 [root@ www.linuxidc.com]# cat /proc/sys/net/ipv4/tcp_rmem 4096 87380 4161536 87380 :tcp接收缓冲区的默认值 [root@ www.linuxidc.com]# cat /proc/sys/net/ipv4/tcp_wmem 4096 16384 4161536 16384 : tcp 发送缓冲区的默认值 2. tcp 或udp收发缓冲区最大值 [root@ www.linuxidc.com]# cat...阅读全文

博文 2021-01-26 16:21:35 CSDN博客

Go 1.16 即将发布,这些变更你需要知道

-bindata/go-bindata 这类第三方开源库来实现。 而从 Go1.16 起,通过 go:embed 就可以快速实现这个功能: import _ "embed" //go:embed hello.txt var s string print(s) 通过对变 s 声明 go:embed 指令,使其在编译时读取当前目录下的 hello.txt 文件。 最终变 s 就会输出 hello.txt 文件中的字符串内容。 新增 io/fs 的支持 新增了标准库 io/fs,正式将文件系统相关的基础接口抽象到了该标准库中。 以前的话大多是在 os 标准库中,这一步抽离更进一步的抽象了文件树的接口。在后续的版本中,大家可以优先考虑使用 io/fs 标准库。 调整切片扩容策略 Go1.16 以前的...阅读全文

博文 2021-02-17 08:52:12 CSDN博客

Go 泛型的括号选择:[ ] or ( )

( ) 和 [ ] 可供选择。然而缺少修饰的方括号会在数组和 slice 的类型声明中造成歧义,在解析索引表达式时也会引起小程度的歧义。因此在设计之初他们决定使用小括号,因为小括号似乎更符合 Go 语言的风格,而且看起来问题最少。 为了使小括号正常工作,并且为了向后兼容,他们表示不得不在类型参数列表中引入type关键字。最后,他们在参数列表、复合字面和嵌入类型中发现了额外的解析歧义,而这些歧义需要嵌套更多的小括号来解决。不过即便如此,他们还是决定继续使用小括号,因为当时还有更重要的设计问题需要解决。 现在他们决定重新考虑这个最初的决定。如果仅使用方括号声明类型参数,那么声明数组的方式如下所示: type A [N]E 不过这就无法与泛型的声明进行区分: type A[N] E 但如果能接受额外的...阅读全文

博文 2020-07-16 10:38:01 debian.cn

如何读懂火焰图?+ 实例讲解程序性能优化 - xuxh120

的文本文件。如果一台服务器有16个 CPU,每秒抽样99次,持续30秒,就得到 47,520 个调用栈,长达几十万甚至上百万行。 为了便于阅读,perf record命令可以统计每个调用栈出现的百分比,然后从高到低排列。 $ sudo perf report -n --stdio 这个结果还是不易读,所以才有了火焰图。 二、火焰图的含义 火焰图是基于 perf 结果生的 SVG 图片,用来展示 CPU 的调用栈。 y 轴表示调用栈,每一层都是一个函数。调用栈越深,火焰就越高,顶部就是正在执行的函数,下方都是它的父函数。 x 轴表示抽样数,如果一个函数在 x 轴占据的宽度越宽,就表示它被抽到的次数多,即执行的时间长。注意,x 轴不代表时间,而是所有的调用栈合并后,按字母顺序排列的。 火焰图就...阅读全文

博文 2022-03-11 10:05:09 博客园

Debian 9.3上安装和配置 Observium 监控平台

Observium是一个免费的开源网络管理和监控工具,可用于监控所有的网络设备。 它是用PHP编写的,使用SNMP从连接的设备收集数据并使用Web界面监视它们。 Observium支持大的网络硬件和操作系统,包括Linux,Windows,FreeBSD,思科,戴尔,NetApp等等。 Observium提供了一个功能强大,简单易用的界面来监视网络的健康和状态。 在本教程中,我们将解释如何在Debian 9服务器上安装和配置Observium。配置需求: 一个新的Debian 9服务器安装在您的系统上。 在您的服务器上设置一个根密码。 入门 首先运行以下命令,将系统更新到最新的稳定版本: apt-get update -y apt-get upgrade -y 系统更新后,重新启动系统以...阅读全文

博文 2017-12-30 11:35:21 debian.cn

深入学习golang — channel

. process(r) // May take a long time. <-sem // Done; enable next request to run. } func Serve(queue chan *Request) { for { req := <-queue go handle(req) // Don't wait for handle to finish. } } 我们通过引入sem channel,限制了同时最多只有MaxOutstanding个goroutine运行。但是,上面的做法,只是限制了运行的goroutine的数,并没有限制goroutine的生成数。如果请求到来的速度过快,会导致生大的goroutine,这会导致系统资源消耗完全。 为此,我们有必要限制...阅读全文

博文 2021-01-25 12:39:17 博客园

三个简单而优秀的 Linux 网络监视器

有一个网络接口,可以不带选项运行 iftop。iftop 需要 root 权限: $ sudo iftop 当你有多个接口时,指定要监控的接口: sudo iftop -i wlan0 就像 top 一样,你可以在运行时更改显示选项。 h 切换帮助屏幕。 n 切换名称解析。 s 切换源主机显示,d 切换目标主机。 s 切换端口号。 N 切换端口解析。要全看到端口号,请关闭解析。 t 切换文本界面。默认显示需要 ncurses。我认为文本显示更易于阅读和更好的组织(图1)。 p 暂停显示。 q 退出程序。 图 1:文本显示是可读的和可组织的。 当你切换显示选项时,iftop 会继续测所有流。你还可以选择要监控的单个主机。你需要主机的 IP 地址和网络掩码。我很好奇 Pandora 在我那可...阅读全文

博文 2017-11-07 00:07:38 debian.cn

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

vi(vim)是上Linux非常常用的代码编辑器,很多Linux发行版都默认安装了vi(vim)。vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率。vi是“visual interface”的缩写,vim是vi IMproved(增强版的vi)。在一般的系统管理维护中vi就够用,如果想使用代码加亮的话可以使用vim。 基本上vi可以分为三种状态,分别是命令模式(command mode)、输入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下: 1) 命令模式(command mode) 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式、底行模式下。 2) 输入模式(Insert mode) 只有在输入模式下,才可以...阅读全文

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

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

题,详见图3。 图3:每个服务模型必须和每个基础架构提供者集成 如果只需要处理几个基础架构提供者,N*M问题还是可以管理的。随着基础架构提供者数的增多(看看Google Cloud,AWS和Microsoft Azure上的品数),这些集成的数和质问题就开始出现了。 实际上减少基础架构提供者的数不太实际。每个提供者都在提供不同的服务(比如,键值存储,pub/sub系统等),并且一些冗余不得不存在,就算定义好规则也会有很多异常情况出现。使用单个服务模型也不现实——这个模型必须能够暴露所有基础架构提供者的每一个特性,这违反了服务模型的初心。 Google的工程师们花费了大时间将他们需要的服务模型连接到想要使用的基础架构上。我们显然需要一种不同的配置方案。 — 2 — 大规模部署 在...阅读全文

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

在TKE上使用Kubecost进行成本管理

、Workload 等各种标签类型维度分析。 - 资源分配和使用。 - 包含一个集群健康检查的功能,类似集群巡检和健康检查。 ### Overview ![](https://main.qcloudimg.com/raw/5d189e38aab69d433a9a6bda3320e0e2.png) **上述图中数字序号标示处相关说明可参考下文对应说明介绍**: 1. 月度预估可以节省的**金额**以及可以节省成本的**优化建议数**。 2. **月度账单和成本效率**: - 月度账单:基于过去7天资源消耗的**预测值**。 - 成本效率:基于过去2天的成本效率。 计算方法:(每种资源利用率 × 各自的价格之和)/ 总价格 3. **月度集群账单**。账单维度包括 Total cost、Compute...阅读全文

十个增加 Linux Shell 脚本趣味的小工具

tput rev echo "M A I N - M E N U" tput sgr0 tput cup 7 15 echo "1. User Management" tput cup 8 15 echo "2. Service Management" tput cup 9 15 echo "3. Process Management" tput cup 10 15 echo "4. Backup" # Set bold mode tput bold tput cup 12 15 read -p "Enter your choice [1-4] " choice tput clear tput sgr0 tput rc 输出: 3. setleds 命令 这个命令可以让你控制键盘灯,例如打开数字键...阅读全文

博文 2018-04-09 09:38:50 debian.cn

深入了解Docker背后的namespace技术

的demo之一,同时它会生一个shell会话,这样你就可以在你的namespace中“闲逛”。你可以自己的方式探索与检查这些不同的namespace。因此让我们复制这个文件,并开始使用network namespace。 > cp skeleton.c network.c 在这个文件里有一个很特殊的变,叫做clone_flags,大部分的变化将在此处发生。namespace主要由clone标志控制。network namespace的clone标记是CLONE_NEWNET。我们需要把int clone_flags = SIGCHLD;这一行改为 int clone_flags = CLONE_NEWNET | SIGCHLD;。这样调用clone就为我们创建一个新的network...阅读全文

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

如何列出域名 所有SAN字段的SSL证书?

SAN(Subject Alternative Name) 是 SSL 标准 x509 中定义的一个扩展。使用了 SAN 字段的 SSL 证书,可以扩展此证书支持的域名,使得一个证书可以支持多个不同域名的解析。 这里以 Google.com 为例,证书中所包含的 SAN 扩展域名,可以用这个命令列出: echo | openssl s_client -connect google.com:443 2>&1 | openssl x509 -noout -text | awk -F, -v OFS="\n" '/DNS:/{x=gsub(/ *DNS:/, ""); $1=$1; print $0}'...阅读全文

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

0.269t 0.053t 0.025t D 14.6 86.2 1081:18 influxd在出现堆积时,wa很高,说明问题再次出现在磁盘io上,而且influxd的SHR空间占用了25g,又是为什么?面对新出现的问题,当前的主要手段仍然是从influxdb配置文件入手,但是该如何优化?2.tsi原理工欲善其事,必先利其器。查阅了相关资料之后,整理了influxdb使用tsi索引时原理图:说明:写入influxdb时,会同时写wal文件及cache内存, wal用于宕机恢复cachecache在达到配置中的阈值时,会进行snapshot快照,进行落盘influxdb的series及index索引会在内存中全保存,用于快速检索wal文件大小在达到配置中阈值时,会进行压缩转换到index索引...阅读全文

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

Kubernetes调度算法浅析

给每个节点和待分配的pod进行打分。1.首先可用的node和pod会被打分函数进行打分,分数在0-10分之间。并且每个打分函数还有一个权重值。那么一个可用的node节点最后的总分就是:Σ函数打分*函数的权重值。 node节点总分 =(函数1的打分 * 函数1权重值)+......+(函数n的打分 * 函数n的权重值) 2.打分函数即优先级函数的种类: 这里只介绍了一部分的优先级函数算法,还有许多算法在这里未解释有兴趣的小伙伴可以上网查一下哦。 小结 kube-scheduler组件将整个集群资源调配变得很科学。比如该如何分配pod的副本到其他的node节点中,或者如何分配pod使得集群运转的更加高效。此外kube-scheduler还支持第三方的调度器进行扩展,所以是一种插件化的实现。...阅读全文

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

观点:DDR内存即将谢幕 HBM 3/4内存才是未来

HBM 2内存,核心容可达8Gb,通过TSV技术可以实现每个CPU支持64GB HBM2内存,每路插槽的带宽可达2TB/s,而到了HBM 4时代,每个CPU支持的容可达512GB,带宽超过8TB/s。作为对比的话,目前AMD的EPYC处理器支持8通道DDR4内存,虽然最高容能达到2TB,但是带宽不过150GB/s左右,与HBM内存相比就差远了。 按照他的观点,在一些需要高带宽的场合中,HBM技术无疑远胜DDR内存,所以他说的DDR内存将死在这方面是成立的,比如HPC高性能计算机行业就非常需要HBM。不过话说回来,DDR将死这个判断并不适合桌面市场,HBM技术虽然各种好,但是现在来看成本问题一时半会都没法解决. 目前能生HBM内存的厂商只有三星、SK Hynix,美光因为有HMC技术,对...阅读全文

Apache Flink 1.14 新特性预览 - OSCHINA

-2 个大版本后都会发布一个变化稍微少一点的版本,主要目的是把一些特性稳定下来。 1.14 版本就是这样一个定位,我们称之为质改进和维护的版本。这个版本预计 8 月 16 日停止新特性开发,可能在 9 月份能够和大家正式见面,有兴趣可以关注以下链接去跟踪功能发布进度。 Wiki:https://cwiki.apache.org/confluence/display/FLINK/1.14+Release Jira:https://issues.apache.org/jira/projects/FLINK/versions/12349614 [1] 截至到 8 月 31 日,确定进入新版本的是 33 个,已全部完成。 二、流批一体 流批一体其实从 Flink 1.9 版本开始就受到持续的关注,它...阅读全文

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

NVDIMM-P非易失内存标准公布:断电不丢数据、兼容DDR4

。 - 大容:支持扩展的内存寻址功能。 - 支持即插即用:在电脑开机时可以直接插入标准的双列内存插槽,并立刻与同一总线上的DDR内存交互操作。 NVDIMM-P的主要特征: - 与现有DDR通道完全兼容,包括物理接口、电气性能、协议、时钟。 - 保证为下一代CPU插槽增加的针脚尽可能少。 - 协议支持数据读取时的不确定延迟。 - 确保数据在非易失内存中的事务性操作。 - 从NAND到DRAM多种延迟模式的支持(在模块级别)。 - 内存本身具备高可靠性、链路错误保护功能。 事实上,NVDIMM是一个系列标准,除了这里说的NVDIMM-P,还有NVDIMM-F、NVDIMM-N、NVDIMM-H。 NVDIMM-F本质上就是DDR接口的SSD固态盘,只使用NAND闪存,优点是延迟低(纳秒级别)、带宽高...阅读全文

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

消费消息需要紧急处理,可以修改消费端程序,让其将收到的消息快速转发到其他topic(可以设置很多分区),然后再启动多个消费者同时消费新主题的不同分区。 2)由于消息数据格式变动或消费者程序有bug,导致消费者一直消费不成功,也可能导致broker积压大未消费消息。 此种情况可以将这些消费不成功的消息转发到其它队列里去(类似死信队列,kafka没有死信队列,需要自己写),后面再慢慢分析死信队列里的消息处理问题。 2.1.5 延时队列 kafka没有延时队列,需要自己实现;延时队列存储的对象是延时消息。所谓的“延时消息”是指消息被发送以后,并不想让消费者立刻获取,而是等待特定的时间后,消费者才能获取这个消息进行消费,延时队列的使用场景有很多, 比如 : 1)在订单系统中, 一个用户下单之后通常...阅读全文

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

使用 cURL 对Web请求进行性能测试

在做 Web 开发的时候,经常需要对 Web Page 或者 REST-ful API 做简单的 Benchmark。本文将介绍如何使用 cURL 进行简单快速的性能评测。本文内容分为以下两部分: 使用 curl 查看加载时间 使用 curl -w 查看更多的网络情况 使用 curl 查看加载时间 curl -s -w "%{time_total}\n" -o /dev/null http://www.github.com/ 1.492 可以看到请求时间为 1.492 秒。此时: -s, --silent: 让 curl 保持静默模式,不会输出进度条 -w "%{time_total\n}":输出使用时间 -o /dev/null: 这个参数用来隐藏 response 的内容 如果使用...阅读全文

博文 2018-11-28 18:40:47 debian.cn

协议介绍之深入了解 gRPC

及它的相关属性。在 HTTP/1.x 时代,我们采用纯文本协议,并且使用 \r\n 来分隔,如果我们要传输的元数据很多,就会导致 header 非常的庞大。另外,多数时候,在一条连接上面的多数请求,其实 header 差不了多少,譬如我们第一个请求可能 GET /a.txt,后面紧接着是 GET /b.txt,两个请求唯一的区别就是 URL path 不一样,但我们仍然要将其他所有的 fields 完全发一遍。 HTTP/2 为了结果这个问题,使用了 HPACK。虽然 HPACK 的 RFC 文档 看起来比较恐怖,但其实原理非常的简单易懂。 HPACK 提供了一个静态和动态的 table,静态 table 定义了通用的 HTTP header fields,譬如 method,path 等...阅读全文

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

腾讯在贵州有个山洞:放置腾讯业务最核心数据

干嘛的?“如果把腾讯比作一个工厂,那么数据中心就是车间,信息需要在这里集中处理、存储、交换。”腾讯技术工程事业群任职数据中心技术总监朱华说。 那个名叫T-block的技术,是腾讯数据中心自主研发的第四代技术。 腾讯数据中心的技术发展,总共经历四个阶段: 第一代(2006-2009),基本是沿用了传统电信机房的解决方案(厂房改造,风冷,N+1冗余),只在局部做了点优化,比如冷热通道隔离; 第二代(2007-2011),从天津开启数据中心的大而全模式,10万级、大型离心冷水机组、10KV Switch Gear、变压器上楼、中压油机、UPS、STS、AHU、MAU、封闭热通道、预作用水消防、水侧Free cooling、Air side economizer; 第三代TMDC(2011...阅读全文

博文 2018-04-06 08:44:38 debian.cn

nsenter 及 Linux命名空间 简介

nsenter 是一个可以在指定进程的命令空间下,运行程序的命令,它位于 util-linux 包中。 nsenter 用途 nsenter 的一个典型用途是进入容器的网络名字空间,进行网络相关的排障。大多数容器,为了保持轻,没有包含较为基础的命令,比如说 ip,ping,telnet,ss,tcpdump等,这就给容器内的网络调试带来困扰。这时就可以使用 nsenter 命令仅进入到容器的网络命名空间,使用宿主机的相关命令调试容器网络。 此外,nsenter也可以进入 mnt, uts, ipc, pid, user 命令空间,以及指定根目录和工作目录。 nsenter 使用 首先看下nsenter命令的语法: nsenter [options] [program [arguments...阅读全文

博文 2020-12-15 11:22:44 debian.cn

英特尔发布 660p 系列 M.2 2280 NVMe SSD 新品

在三星宣布 QLC SATA SSD 之后,英特尔这边也宣布了自家的最新竞品 —— 价格媲美 SATA 型号、但支持 NVMe 协议的 660p 系列 SSD 。据 Anandtech 所述, 英特尔 660p 采用了自家的 64 层 1-Tb 3D QLC NAND 闪存,容有 512GB / 1TB / 2TB 三档,但性能表现颇为一致。此外,660p 还搭配了大容伪 SLC 缓存机制、辅以 256MB DRAM 。 英特尔 660p 系列 SSD 采用了 M.2 2280 封装规格 据悉,512GB 版本可选择调用 6~76GB 的容当做缓存,1TB 版本可动用 12~140GB,2TB 版本则是 24~280GB 。当然,随着数据的大写入,SLC 缓存机制的效用会明显下...阅读全文

博文 2018-08-08 16:18:49 debian.cn

WebAssembly:无需容器的 Docker (下)

lib lib64 media mnt opt proc root run sbin srv sys tmp usr var php-aot-wasm 在一个容器中运行 index.js如果我们在 WasmEdge 使用 php-aot-wasm 我们看到一个 wasi/wasm32 平台只有 2 个基础设施环境变,使用在 containerd 中运行的 WasmEdge shim 预先设置容器中 / 内所有文件和文件夹的列表,明确预打开以供 Wasm 应用程序访问(WasmEdge shim 中的逻辑的一部分)注意:如果你仔细观察,会发现要从这个镜像运行一个容器,我们必须:通过 --runtime=io.containerd.wasmedge.v1 将命令行参...阅读全文

博文 2023-01-03 06:39:46 spider

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

背景 在查看k8s的环境的时候,突然发现存在n多个pod状态为Evicted。差不多得有几百个。 解决 同事愉快的丢了个链接给我,让我自己看一波:What will happen to evicted pods in kubernetes? 查看了一下pod的信息。结果发现是磁盘满了。 kubectl describe pod {pode_name} -n {namespace} 但是得手动删除Evicted状态的pod kubectl get pods --all-namespaces -o json | jq '.items[] | select(.status.reason!=null) | select(.status.reason | contains("Evicted...阅读全文

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

海力士推新企业级SSD:72层闪存 16TB即将到来

SK海力士日前宣布推出新一代企业级SSD硬盘,不过官方并没有公布SSD硬盘的名称,只知道是NVMe标准的,基于72层堆栈的3D TLC闪存,M.2版容最大4TB,U.2可达8TB。 性能方面,SK海力士表示新一代企业级硬盘的连续速度可达3200MB/s,随机性能可达160K IOPS,与2018年FMS展会上推出的72层堆栈闪存硬盘相比,新一代企业级SSD的顺序读写性能提升30%,随机写入提升了70%,同时支持读取敏感型及混合型应用,包括数据中心、AI、ML机器学习及VDI虚拟桌面架构等。 值得一提的是,SK海力士的新一代企业级SSD具备极低的功耗,正常应用低于14W,这在企业级SSD中是很低的水平了。 此外,SK海力士还表示将在今年底推出容更大的企业级SSD硬盘,闪存会从目前的...阅读全文

博文 2019-06-20 20:27:53 debian.cn

Facebook 是如何进行大规模代码部署的

Facebook 高速发展的 2007 年到 2016 年,他们一天部署 3 次代码,cherry-pick 集齐成千上万个 commit;现在使用类似持续交付的方法,每个 commit 能自动部署到 production。公司里有很多员工、很多用户的好处:新代码让公司所有员工先用上,因为员工数足够多,能很快发现问题;然后让 2% 的访问用上新代码,最后慢慢增加到 100% 的访问。 不久前有篇关于缩短 Facebook 发布流程的文章,阐述了将代码投入生的灵活方法。这篇文章着重讲述了他们在一年之内如何从“ cherry-picking ”升级到“ push-from-master ”策略。早些时候, Facebook 也分享了他们部署过程的细节。作者 Chuck Rossi 是...阅读全文

博文 2017-10-31 14:05:20 debian.cn

SK海力士进军PCIe 4.0 SSD:密度世界第一 轻松32TB

SK海力士今天正式发布了最新款的企业级SSD PE8000系列,包括PE8010、PE8030、PE8111三款型号,这也是其首款PCIe 4.0 SSD,无论存储密度、容还是性能都是世界一流的,甚至是超一流的。 PE8010、PE8030都配备了SK海力士自的96层堆叠4D TLC NAND闪存颗粒,搭配自研主控,最大容8TB,兼容U.2、U.3接口,其中PE8010面向读取密集型应用,PE8030则为读写混合应用而优化。 性能方面,持续读写速度最高均可达8.3GB/s、3.7GB/s,随机读写速度最高则可达1100K IOPS、320K IOPS。 相比于去年的上代品,持续读取性能提升103%,随机写入性能提升357%,另外最大功耗为17W。 PE8111则是针对读取密集型负载...阅读全文

博文 2020-04-08 09:31:41 debian.cn

基于树莓派并支持触屏的模块化 PC:Zero Terminal 3

(用于充电)microSD 读卡器(用于操作系统)3.5 毫米耳机插孔视频输出相机接口2 个电源指示灯3 个可编程按键(连接到 Raspberry Pi Zero 的 GPIO pins)电源开关 NODE 还发布了一个视频,展示了 Zero Terminal 3 的详细组装过程。目前,Zero Terminal 3 并未上市销售,不过 NODE 表示,他计划提供更多细节和说明,以帮助大家来构建自己的 Zero Terminal 设备和模块化附件。 更多详细介绍可查看:https://n-o-d-e.net/zeroterminal3.html...阅读全文

博文 2020-08-10 11:31:07 debian.cn

树莓派 9 周年:你不知道的树莓派冷知识

属于与 Arduino 相同的类别,适合用于嵌入式设备或物联网设备的开发,例如控制电动机、灯光和传感器,并在打开电源后立即运行程序,而无需启动,也无需担心在不安全关闭的情况下拔下插头会丢失数据。4. 最受欢迎的树莓派Raspberry Pi 3 B 是有史以来最畅销的树莓派机型,目前已累计售出 1320 万台。 而在目前流行的各种 Raspberry Pi 4 B RAM 版本中,4 GB 型号的销最高,大约是 8 GB 和 2 GB 出货的两倍。 值得一提的是,Raspberry Pi Pico 虽然仅上市了几周,但已经售出了 250,000 台,此外还有750,000 台处于待售状态。受疫情等因素影响,2020 年是树莓派品销最高的一年,总共售出 710 万台不同型号的树莓派设备...阅读全文

博文 2021-03-11 17:03:55 diablo4

中国加快基于 IPv6 的互联网发展,2025 年实现全覆盖

中共中央办公厅、国务院办公厅印发了《推进互联网协议第六版(IPv6)规模部署行动计划》,计划全面推进部署 IPv6,协同推进网络实名制。 通知称,用 5 到 10 年时间,建成全球最大规模的 IPv6 商业应用网络。具体计划包括: 1.到 2018 年末,IPv6 活跃用户数达到 2 亿,在互联网用户中的占比不低于 20%,并在以下领域全面支持 IPv6:国内用户排名前 50 位的商业网站及应用,省部级以上政府和中央企业外网网站系统,中央和省级新闻及广播电视媒体网站系统,工业互联网等新兴领域的网络与应用;域名托管服务企业、顶级域运营机构、域名注册服务机构的域名服务器,超大型互联网数据中心(IDC),排名前 5 位的内容分发网络(CDN),排名前 10 位云服务平台的 50% 云品;互联...阅读全文

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

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

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