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

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

。去年以来,来自 500 多家公司的 4300 多名开发者对内核做出了贡献。其中 1,670 个是首次贡献,约占贡献者的三分之一。 去年,Linux 内核的十大企业贡献者包括 Intel, Red Hat, Linaro, IBM, Samsung, SUSE, Google, AMD, Renesas 和 Mellanox。微软也仍在 贡献 ,但不再是最大的贡献者。 随着开发人员和公司数量的增加,Linux 的开发速度持续加快。在 2015-16 年,每小时有 7.8 个补丁。去年内核每小时接受的平均更改次数为 8.5 次。这不是打字错误,确实是每小时 8.5 次的代码更改或每天 204 次的代码更改。 因为更高质量的补丁正在被合并,并且社区比以往任何时候都更好地修复回归。此外,英特尔的 0...阅读全文

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

TLS1.3 正式版发布 — 特性与开启方式科普

延迟会使人感觉到移动浏览速度很缓慢。不幸的是,数据加密会进一步降低连接的速度。而 TLS1.3 有助于改善这种状况。 要向加密网站发送一条消息,你必须首先建立共用密钥。这一过程叫做一次握手。它要求有专门的消息往来于浏览器和网站之间。只要你的浏览器连接到一个加密站点,TLS握手就会在后台发生。 对于TLS1.2来说,在请求发送出去之前,需要2次消息往来才能完成握手。通过移动网络访问一个站点时,加载时间会额外增加超过半秒钟。而对于TLS1.3来说,首次握手只需要1次消息往来。这就像把一辆0-60迈加速需10秒的旅行车升级成一辆只需5秒的特斯拉Model S。如果一次连接所需的消息往来耗时约100毫秒,那么TLS1.3的速度提升足以让那些反应迟缓(加载时间超过300毫秒)的站点变得足够快(加载时间...阅读全文

博文 2018-08-14 14:40:05 debian.cn

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

片不需要向用户展示时,可以使用此特性。假如一个 img 元素还有其他用途而不仅仅是展示一个图片,例如,作为一个服务的一部分用来计算页面视图个数,在 width 和 height 属性中使用 0 数值。对于 0 宽度的图片,推荐使用空属性。 7. 校验表单 新的 reportValidity() 方法允许你校验一个表单和重置结果,并且在浏览器适合位置向用户报告错误。用户代理可以报告一个以上的限制规则,假如单一元素同时遇到多个问题。对于这种情况,“密码”输入为必填内容但没有填,将会标识为错误。

Form validation

Enter details阅读全文

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

Rust的模块化系统: 包Packages, 箱Crates, 和模块Modules

包 Packages: Cargo提供的让我们创建, 测试和分享Crates的工具.箱 Crates: 提供类库或可执行文件的模块树模块 Modules and use: 管理和组织路径, 及其作用域和访问权限路径 Paths: 如结构体(structs), 函数(function), 或模块(module)等事物的命名方式包(Packages)和箱(Crates)包(Package)通过Cargo创建. 每一个包(Package)都有一个Cargo.toml文件. 包(Package)包含箱(Crates)的规则如下:只能包含0或1个类库箱(library crates)可以包含任意多个二进制箱(binary crates)至少有一个箱(Crate), 可以是类库箱(library...阅读全文

博文 2021-02-20 08:49:51 知乎

系统分析工具 Sysdig 详解

activity in the /tmp directory:sysdig -c fdbytes_by fd.filename "fd.directory=/tmp/"Observe the I/O activity on all the files named 'passwd':sysdig -A -c echo_fds "fd.filename=passwd"Display I/O activity by FD type:sysdig -c fdbytes_by fd.type 进程和CPU使用率 See the top processes in terms of CPU usage:sysdig -c topprocs_cpuSee the top processes for CPU 0...阅读全文

博文 2020-08-09 14:09:05 debian.cn

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

Linux 进程 PID 编号最大为多少

文件的默认值32768,与早期内核的PID范围相同。 在32位系统中,32768是pid_max的最大值。64位系统,pid_max最大可达2^22。(PID_MAX_LIMIT,约4亿)。 到达极限的情况: 1、当 PID 达到上限后,内核会从 0 重新开始寻找可用的 PID 并分配。 2、而所有 PID 均已被占用的话,则将抛出 fork failed: Resource temporarily unavailable 提问者所说的最大值应该只是发行版设置( CentOS 8.0 64 位上为 400w 左右)。通过上述Linux手册中的说明,我们也可以通过修改 /proc/sys/kernel/pid_max 的值来调整 pid 取值范围。 在 Debian 10 的机器上,这个文件的...阅读全文

博文 2021-01-12 11:47:15 debian.cn

树莓派4发布:性能飙升 配件丰富 价格不变

(USB-C、3A)、GPIO 接头支持 5V DC @ 3A、或以太网供电(需单独的 PoE HAT)。工作温度:0 - 50 ℃摄氏度。 据悉,树莓派 4 主板及桌面套件已于今日开售,感兴趣的朋友可访问与之合作的 element14、OKdo 等授权零售商,或前往英国剑桥 Grand Arcade 购物中心的实体店。 1GB 版本的售价为 35 美元 / 33 英镑,2GB 版本为 45 美元 / 43 英镑,4GB 版本为 55 美元 / 53 英镑 —— 约合 288 / 376 / 464 RMB 。...阅读全文

博文 2019-06-25 08:43:29 debian.cn

Debian Linux下LNMP环境配置

-available/default” …… location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # # # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } …… 保存之后,重启Nginx: service nginx restart 然后我们...阅读全文

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

Go 1.9 的新特性介绍

档: monotonic time 位处理操作 新增加了math/bits包, 提供了很多位运算的函数。 Test Helper函数 新加`(T).Helper和(B).Helper m`, 用来标记调用的函数是一个测试辅助函数,当输出文件名和行数的时候,这个函数回呗忽略。 标准库的微小改动 标准库也有一些小的功能的加入和提升, 比如image、net、runtime、sync等。 并行编译 支持并行地编译函数,并且在Go 1.9中势默认设置。如果不想并行编译,设置GO19CONCURRENTCOMPILATION为0。 ./... 会忽略vendor下的包 这一条很有用,以后你在Makefile中可以直接使用./...,而不是曲折地将vendor文件夹排除。 如果你想使用vendor下的包...阅读全文

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

Linux内存buffer和cache的区别

在Linux的内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用的内存用来做缓存使用,对于开启过的程序、或是读取刚存取过得数据会比较快。 一. 内存使用说明 Free 命令相对于top 提供了更简洁的查看系统内存使用情况: [root@debian ~]$ free total used free shared buffers cached Mem: 1035108 1008984 26124 0 124212 413000 -/+ buffers/cache: 471772 563336 Swap: 2096472 842320 1254152 这里显示的单位是KB。 在Linux的内存分配机制中,优先使用物...阅读全文

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

,controller.quorum.voters 配置中提供的节点ID必须与提供给服务器的节点ID匹配。比如在Controller1上,node.Id必须设置为1,以此类推。注意,控制器id不强制要求你从0或1开始。然而,分配节点ID的最简单和最不容易混淆的方法是给每个服务器一个数字ID,然后从0开始。(二)下载并解压安装包bigdata01下载kafka的安装包,并进行解压:[hadoop@bigdata01 kraft]$ cd /opt/soft/[hadoop@bigdata01 soft]$ wget http://archive.apache.org/dist/kafka/3.1.0/kafka_2.12-3.1.0.tgz[hadoop@bigdata01 soft]$ tar -zxf kafka_2.12-3.1.0...阅读全文

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

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

程安全注重的是多线程开发中的共享数据的安全。就比如下面这段代码: public class ThreadSafety implements Runnable{ //共享数据 public static int i = 0; public void increase(){ for (int j= 0;j<10; j++){ i++; } } @Override public void run() { increase(); } public static void main(String[] args) throws Exception{ ThreadSafety demo = new ThreadSafety(); Thread t1 = new Thread(); Thread t2...阅读全文

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

最全 MongoDB 基础教程

Skip方法 Limit() 方法 在MongoDB中读取指定数量的数据记录, 使用MongoDB的Limit方法 limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数 语法 db.COLLECTION_NAME.find().limit(NUMBER) 案例 db.ruochen.find().limit(2) Skip() 方法 skip()方法跳过指定数量的数据 skip方法接受一个数字参数作为跳过的记录条数 语法 db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER) 案例 db.ruochen.find().limit(1).skip(1) skip() 方法默认参数为0 MongoDB 排序 sort() 方法...阅读全文

博文 2021-02-22 07:45:45 OSChina

如何使用 journalctl 清理 journal 日志

=, MaxLevelKMsg=, MaxLevelConsole=, MaxLevelWall= MaxLevelStore= 设置记录到日志文件中的最高日志等级,默认值为"debug"; MaxLevelSyslog= 设置转发给传统的 syslog 守护进程的最高日志等级,默认值为"debug"; MaxLevelKMsg= 设置转发给内核日志缓冲区(kmsg)的最高日志等级,默认值为"notice"; MaxLevelConsole= 设置转发给系统控制台的最高日志等级,默认值为"info"; MaxLevelWall= 设置作为警告信息发送给所有已登录用户的最高日志等级,默认值为"emerg"; 这些选项既可以设为日志等级的名称, 也可以设为日志等级对应的数字: "emerg"(0), "alert"(1...阅读全文

博文 2021-02-05 15:43:28 博客园

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

inv:remain 当DECR命令返回值大于等于0时,说明库存余量校验通过,如果返回小于0的值,则说明库存已耗尽。 假设同时有300个并发请求进行库存扣减,Redis能够确保这300个请求分别得到99到-200的返回值,每个请求得到的返回值都是唯一的,绝对不会找出现两个请求得到一样的返回值的情况。 例2:自增序列生成 实现类似于RDBMS的Sequence功能,生成一系列唯一的序列号 设置序列起始值: SET sequence "10000" 获取一个序列值: INCR sequence 直接将返回值作为序列使用即可。 获取一批(如100个)序列值: INCRBY sequence 100 假设返回值为N,那么[N – 99 ~ N]的数值都是可用的序列值。 当多个客户端同时向Redis申请自增序列时...阅读全文

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

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

Prometheus 常用 PromQL 语句样例

左侧或右侧的标签集: left_metric and right_metric包含任何左侧的标签集合,但不包括右侧的: left_metric unless right_metric只在某些标签上匹配: left_metric and on(job, instance) right_metric过滤只保留大于1024样本值的序列: left_metric > 1024只保留左边样本值大于右边样本值的序列: left_metric > right_metric不过滤序列,而是比较序列,然后返回0或1: left_metric > bool right_metric在某些匹配的标签上操作: left_metric > on(job, instance...阅读全文

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

Systemd 及 Service 文件含义解析

/etc/systemd/system/ 目录中的单元文件的优先级总是高于 /usr/lib/systemd/system/ 目录中的同名单元文件。注意,当/usr/lib/ 中的单元文件因软件包升级变更时,/etc/ 中自定义的单元文件不会同步更新。此外,你还得执行 systemctl reenable ,手动重新启用该单元。因此,建议使用前面一种利用 *.conf 的方法。 可以使用 journalctl 来查看 systemd 管理服务的启动日志: ``` journalctl -b -0 # 显示本次启动的信息 journalctl -b -1 # 显示上次启动的信息 ``` 参考阅读 ArchLinux 的 Systemd (简体中文) 文档:https...阅读全文

博文 2021-02-17 10:02:50 joseph

Polar Signals 开源 Parca 以优化代码并减少云账单 - OSCHINA

+\ ) 以将一个编辑器分成两部分,而无需第二个编辑器组。这允许你在同一个文件上并排使用两个编辑器。你还可以通过"切换布局"按钮... 4 1 GeoGebra 6.0.668.0 发布,绘图神器 Geogebra 是动态数学软件,它将几何、代数、电子表格、绘图、统计和微积分集成在一个易于使用的软件包中。 GeoGebra 6.0.668.0 版本现已发布,具体更新内容如下: Fixed:丢失的 Labelling 菜单 Fixed:绘制抛物线等的问题 Fixed:在 iOS 上,输入框滚动小程序的问题 Fixed:IntersectPath(P, a) 与 Zip() Fixed:列表中... 0 6...阅读全文

博文 2021-10-09 12:23:58 中文开源技术交流社区

兼容 tmux 的文件上传/下载工具 trzsz ( trz / tsz ) 使用指南 支持进度条和目录传输

择合适的缓冲区大小,但不会超过此上限。-t 超时时间trz -t 30 或 tsz -t 30 xxx 等,设置超时秒数 ( 默认 20 秒 )。在超时时间内,如果无法传完一个缓冲区大小的数据则会报错并退出。设置为 0 或负数,则永不超时。异常处理方法如果 tmux 不是运行在远程服务器上,而是运行在本地电脑上,或者运行在中间的跳板机上。方案1:使用 tmux -CC 与 iTerm2 集成,请参考 iTerm2 与 tmux -CC 集成。方案2:在本地电脑上安装 trzsz-go,设置 alias ssh="trzsz ssh" 可以方便使用。如果出现了错误,且 trzsz 挂住不能动了:按组合键 control + c 可以停止服务器上的 trz 或 tsz 进程。对于 iTerm2...阅读全文

博文 2023-01-06 07:54:36 joseph

Web前端知识体系精简

Web前端技术由html、css和javascript三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言。而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学习新的知识点,因此对于初学者很难理清楚整个体系的脉络结构。本文将对Web前端知识体系进行简单的梳理,对应的每个知识点点到为止,不作详细介绍。目的是帮助大家审查自己的知识结构是否完善,如有遗漏或不正确的地方,希望共勉。 JAVASCRIPT 篇 0、基础语法 Javascript基础语法包括:变量定义、数据类型、循环、选择、内置对象等。 数据类型有string,number,boolean,null,undefined,object等。其中,string,number和boolean是基础类型,null...阅读全文

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

Kubernetes v1.21 新特性预览

个 annotation controller.kubernetes.io/pod-deletion-cost,其值表示删除一个 Pod 的成本,值越小代表越优先删除。当 annotation 不存在时,表示其删除成本为 0。Indexed Jobs Alpha通常,当使用 Job 来运行分布式任务时,用户需要一个单独的系统来在 Job 的不同 worker Pod 之间分配任务。比如,设置一个工作队列,逐一给每个 Pod 分配任务。Kubernetes v1.21 新增的 Indexed Job 会给每个任务分配一个数值索引,并通过 annotation batch.kubernetes.io/job-completion-index 暴露给每个 Pod。使用方法为在 Job spec 中...阅读全文

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

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

出插入模式) a //在当前光标位置的右边添加文本 i //在当前光标位置的左边添加文本 A //在当前行的末尾位置添加文本 I //在当前行的开始处添加文本(非空字符的行首) O //在当前行的上面新建一行 o //在当前行的下面新建一行 R //替换(覆盖)当前光标位置及后面的若干文本 J //合并光标所在行及下一行为一行(依然在命令模式) 三、移动光标(vi命令模式下使用) vi 可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母 h 、 j 、 k 、 l ,分别控制光标左、下、上、右移一格。 按 Ctrl+b :屏幕往后移动一页。 按 Ctrl+f :屏幕往前移动一页。 按 Ctrl+u :屏幕往后移动半页。 按 Ctrl+d :屏幕往前移动半页。 按数字 0 :移...阅读全文

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

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

,services -l name=myLabel #### 删除具有 name=myLabel 标签的 pod 和 serivce kubectl delete pods,services -l name=myLabel --include-uninitialized #### 删除具有 name=myLabel 标签的 pod 和 service,包括尚未初始化的 kubectl -n my-ns delete po,svc --all #### 删除 my-ns namespace下的所有 pod 和 serivce,包括尚未初始化的 kubectl delete pods prometheus-7fcfcb9f89-qkkf7 --grace-period=0 --force 强制删除 交互...阅读全文

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

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

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

显著的性能提升。 但是观测上图,我们发现了新的性能黑点,如红框所述,我们将其展开,见详细图: 这里主要是一个 toHexString 的操作,竟然占用的cpu资源这么大,这里需要定位。 9.4 ObjectId.toHexString 性能优化 查看这一步转换为16进制的字符串的代码如下,我们结合上面的火焰图可以看出来,主要耗时是在 String.format() 这一步操作。 private String toHexString() { StringBuilder buf = new StringBuilder(24); byte[] bytes = new byte[12]; bytes[0] = int3(this.timestamp); bytes[1] = int2...阅读全文

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

WebAssembly:无需容器的 Docker (下)

LESSOPEN USER TMUX_PANE LIBRARY_PATH rvm_loaded_flag DISPLAY SHLVL NVM_CD_FLAGS LD_LIBRARY_PATH XDG_RUNTIME_DIR PS1 WSLENV XDG_DATA_DIRS PATH DBUS_SESSION_BUS_ADDRESS C_INCLUDE_PATH NVM_BIN HOSTTYPE WASMER_CACHE_DIR IRBRC PULSE_SERVER rvm_path WASMER_DIR OLDPWD BASH_FUNC_cr-open%% _

Hello

Today, Wednesday, 2022-12-14, at 12:0:36 we greet you with...阅读全文

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

得物云原生全链路追踪Trace2.0-采集篇 - OSCHINA

地化工作也是做得非常到位,而凭借着架构简单,开箱即用的特点,CAT 也是我们得物使用的第一个应用监控系统。 二、 0x01 第一阶段 从0~1基于CAT的实时应用监控 在得物五彩石项目交付之前,系统仅有基础设施层面的监控,CAT 的引入,很好地弥补了应用监控盲区。它支持提供各个维度的性能监控报表,健康状况检测,异常统计,对故障问题排查起到了积极推动的作用,同时也提供简单的实时告警的能力。 CAT 拥有指标分钟级别的聚合统计的能力,从 UI 上不难看出,它拥有丰富的报表统计能力和问题排障能力。 但随着公司业务规模逐步扩大,微服务粒度也不可避免地变小,我们发现,CAT 已经逐步无法满足我们的使用场景了: 无法直观呈现全链路视图: 问题排障与日常性能分析的场景也越来越复杂,对于一个核心场景,其内部...阅读全文

博文 2022-12-10 06:50:41 中文开源技术交流社区

Golang Context 探究

deadline is already sooner than the new one. return WithCancel(parent) } // 创建 timerCtx c := &timerCtx{ cancelCtx: newCancelCtx(parent), deadline: d, } // 与父节点关联 propagateCancel(parent, c) // 计算当前距离 deadline 的时间 dur := time.Until(d) // 直接取消 if dur <= 0 { c.cancel(true, DeadlineExceeded) // deadline has already passed return c, func() { c.cancel(false...阅读全文

博文 2021-02-25 09:27:27 lxkaka

基于thanos搭建分布式prometheus

-receive # headless服务 clusterIP: None---apiVersion: v1kind: ConfigMapmetadata: name: thanos-receive-config namespace: monitoringdata: # 域名通过headless service规则可以预先获知:https://kubernetes.io/zh/docs/concepts/services-networking/dns-pod-service/#srv-records thanos-receive-hashrings: | [ { "endpoints": [ "thanos-receive-0.thanos...阅读全文

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

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

``` ### 下载 Kubecost helm 执行以下命令下载 Kubecost helm: ```sh wget https:``//qitian-1251707795.cos.ap-beijing.myqcloud.com/cost-analyzer-1.81.0.tgz ``` ### 安装 Kubecost 1. 执行以下命令安装 Kubecost: ```sh kubectl create ns kubecost``helm install cost-analyzer cost-analyzer-``1.81``.``0``.tgz -n kubecost ``` 2. 执行以下命令,查看服务 Pod 是否都正常运行。示例如下: ```sh kubectl get pods -n...阅读全文

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

衡量标准。 节点距离:两个节点到达最近的共同祖先的距离总和。 例如,假设有数据中心d1机架r1中的节点n1。该节点可以表示为/d1/r1/n1。利用这种标记,这里给出四种距离描述。 Distance(/d1/r1/n1, /d1/r1/n1)=0(同一节点上的进程) Distance(/d1/r1/n1, /d1/r1/n2)=2(同一机架上的不同节点) Distance(/d1/r1/n1, /d1/r3/n2)=4(同一数据中心不同机架上的节点) Distance(/d1/r1/n1, /d2/r4/n2)=6(不同数据中心的节点) 机架 7.2 机架感知(副本节点选择) 1)低版本Hadoop副本节点选择 第一个副本在client所处的节点上。如果客户端在集群外,随机选一个。 第二个副...阅读全文

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

SPEC期望状态做同步。下面源码流程图可以总结上述流程。 SyncPod:我做错了什么? SyncPod首先计算Pod中所有容器的当前状态与该Pod API期望状态做对比同步。这一对比同步分为两个部分: 检查podCache中的Sandbox容器的状态是否满足此条件:Pod中有且只有一个Sandbox容器,并且该容器处于运行状态,拥有IP。如不满足,则认为该Pod需要重建Sandbox容器。如果需要重建Sandbox容器,Pod内所有容器都需要销毁并重建。检查podCache中非Sandbox容器的运行状态,保证这些容器处于Pod API Spec期望状态。例如,如果发现有容器主进程退出且返回码不为0,则根据Pod API Spec中的RestartPolicy来决定是否重建该容器。 回顾前面提到...阅读全文

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

较多:字符串(String),哈希(Hash),列表(List),集合(Set),有序集合(Sorted Set), Bitmap, HyperLogLog和地理空间索引(geospatial)等,需要根据业务场景选择合适的类型。 常见的如:String可以用作普通的K-V、计数类;Hash可以用作对象如商品、经纪人等,包含较多属性的信息;List可以用作消息队列、粉丝/关注列表等;Set可以用于推荐;Sorted Set可以用于排行榜等! 9.命名规范 虽然说Redis支持多个数据库(默认32个,可以配置更多),但是除了默认的0号库以外,其它的都需要通过一个额外请求才能使用。所以用前缀作为命名空间可能会更明智一点。 另外,在使用前缀作为命名空间区隔不同key的时候,最好在程序中使用全局配置...阅读全文

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

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

底层机制屏蔽了网络传输的复杂性,应用层对此是无感的,这对生产环境定位丢包率高、重传率高这种问题带来一定的麻烦。Kubernetes 监测支持了 RTT、重传 &丢包、TCP 连接信息来表征网络状况,下面以 RTT 为例,支持从命名空间、节点、容器、Pod、服务、工作负载这几个维度来看网络性能,支持以下各种网络问题的定位:负载均衡无法访问某个 Pod,这个 Pod 上的流量为 0,需要确定是否这个 Pod 网络有问题,还是负载均衡配置有问题;某个节点上的应用似乎性能都很差,需要确定是否节点网络有问题,通过对别的节点网络来达到;链路上出现丢包,但不确定发生在那一层,可以通过节点、Pod、容器这样的顺序来排查。​四、Kubernetes 可观测性全景视角有了上述产品能力,基于阿里巴巴在容器...阅读全文

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

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

(见图6)里,需要代表每个前端job的asset,表示每个cell负载均衡器配置的asset,全局负载均衡器配置的asset,以及Spanner DB schema的asset。 asset是具有以下结构的通用抽象: string标识符,简称为“asset ID”负载0个或者多个插件 负载和插件是任意protobuf[3]消息。负载的类型定义了asset的类型。比如,如果负载是类型为prodspec.asset.BorgJob的protobuf消息,意味着这个asset表示运行在Borg上的job,并且会作为BorgJob asset被引用。 插件使得可以给asset添加任意元数据,无论是什么类型。插件对于跨领域问题特别有用。比如,常见的“受影响集群”插件让大家能够了解asset的影响域——如...阅读全文

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

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

配置文件: { "cniVersion": "0.3.1", "name": "bridge", "type": "bridge", "bridge": "cnio0", "isGateway": true, "ipMasq": true, "ipam": { "type": "host-local", "ranges": [ [{"subnet": "${POD_CIDR}"}] ], "routes": [{"dst": "0.0.0.0/0"}] } } CNI 插件还会通过 CNI_ARGS 环境变量为 Pod 指定其他的元数据,包括 Pod 名称和命名空间。 下面的步骤因 CNI 插件而异,我们以 bridge 插件举例: 该插件首先会在根网络命名空间(也就是宿主机的网络命名空间...阅读全文

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

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

pipe会打开两个文件描述符,因此,“ulimit -n”自动计算时会根据需要调大此值;默认为maxconn/4,其通常会显得过大; – noepoll:在Linux系统上禁用epoll机制; – nokqueue:在BSE系统上禁用kqueue机制; – nopoll:禁用poll机制; – nosepoll:在Linux禁用启发式epoll机制; – nosplice:禁止在Linux套接字上使用内核tcp重组,这会导致更多的recv/send系统调用;不过,在Linux 2.6.25-28系列的内核上,tcp重组功能有bug存在; – spread-checks <0..50, in percent>:在haproxy后端有着众多服务器的场景中,在精确的时间间隔后统一对众服务器进行健康状况检...阅读全文

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