InfraPub 为您找到相关结果 720

Kubernetes调度算法浅析

在真正的生产环境中,如何合理的分配服务器资源、提高利用率、让整个集群运行的更加稳定使得 k8s-scheduler 这个角色在集群中的地位愈发重要。 kube-scheduler的预选(过滤)和精选(打分) api-server会将创建pod的请求发送给kube-scheduler,并且将pod信息记录在etcd数据库中。之后kube-scheduler会根据预选(过滤)规则,首先过滤掉一部分node节点中的pod,没有被过滤掉的pod可以看做是可以被调度的pod,之后再通过更加严格的规则给剩下的pod打分,这一步也叫优选。打分最高的pod可以看做被优先分配到pod任务。 调度流程简介 创建pod的命令被api-server的api接口接收到。api-server将pod信息存储在...阅读全文

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

OpenSSL 3.0 正式发布,更改许可协议并弃用所有低级别 API

经过 3 年的开发,17 个 alpha 版本,2 个 beta 版本,超过 7500 个提交,以及来自 350 位不同开发者的贡献,OpenSSL 3.0 终于正式发布了。OpenSSL 1.1.1 以来的主要变化主要版本开发者可以从这里下载 OpenSSL 3.0,并升级你的应用程序使之兼容。OpenSSL 3.0 是一个大版本升级,并不完全向后兼容以前的版本。大多数使用 OpenSSL 1.1.1 的应用程序仍然可以正常工,只是需要重新编译(可能会有关于使用废弃的 API 的编译警告)。还有一些不能完全兼容的应用可能需要进行修改才能正确编译和使用。如果应用程序需要利用 OpenSSL 3.0 中的一些新功能(例如 FIPS 模块),也需要对应用进行更改。许可证变更在以前的版本中...阅读全文

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

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

Debian下安装配置 Hadoop 3.1.3 集群

在这篇文章里,我将在 VMWare 里面虚拟四台 Debian 虚拟机,一个做master,三个slave。这四台主机的 hostname 分别是 master、slave1、slave2、slave3。下面的 JDK 和 Hadoop 安装配置操都是使用普通用户 hadoop 来执行,并非 root。 集群环境准备 1. 静态网络的配置 编辑/etc/network/interfaces文件,注释自动获取IP,并添加下面内容 # static IP address auto ens33 iface ens33 inet static address 192.168.20.101 netmask 255.255.255.0 gateway 192.168.20.2 dns...阅读全文

博文 2019-11-27 23:04:39 debian.cn

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

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

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

DNS SRV:使用DNS服务器做服务发现

DNS SRV 是 DNS 记录中一种,用来查询指定服务的地址。与常见的A记录、CNAME 不同的是,SRV中除了记录服务器的地址,还记录了服务的端口,并且可以设置每个服务地址的优先级和权重。RFC-2782 给出DNS SRV的建议标准,它是在2000年的时候提出来的。 访问服务的时候,本地的服务从 DNS 服务器查询到一个地址列表,根据优先级和权重,从中选取一个地址为本次请求的目标地址。 一个支持SRV的 LDAP client 通过查询域名,可以得知 LDAP 服务的 IP 地址和服务端口: _ldap._tcp.example.com 这个域名的格式是 rfc-2782 中推荐的格式,_ldap表示LDAP服务,_tcp表示通过TCP协议访问LDAP服务。 SRV 的 DNS 类...阅读全文

博文 2019-03-05 09:35:34 debian.cn

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

/src:m2crypto) | 修正与OpenSSL 1.1.1i及更新版本的兼容性 | | [mini-buildd](https://packages.debian.org/src:mini-buildd) | builder.py:sbuild调用:显式设置'--no-arch-all' | | [net-snmp](https://packages.debian.org/src:net-snmp) | snmpd: 为EXTEND-MIB添加cacheTime和execType标志 | | [node-ini](https://packages.debian.org/src:node-ini) | 不允许使用无效的危险字符串为部分名称[CVE-2020-7788] | | [node-y18n...阅读全文

博文 2021-02-07 10:57:22 joseph

Linux下多线程程序为什么消耗大量虚拟内存

] munmap(0x7f53d0000000, 13275136) = 0 [pid 19343] mmap(NULL, 8392704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f53d04a8000 Process 19495 attached 我检查了一下trace文件也没有发现大量内存mmap动,即便是brk动引起的内存增长也不大。于是感觉人生都没有方向了,然后怀疑是不是文件缓存把虚拟内存占掉了,注释掉了代码中所有读写日志的代码,虚拟内存依然增加,排除了这个可能。 灵光一现 后来,我开始减少thread的数量开始测试,在测试的时候偶然发现一个很奇怪的现象。那就是如果进程创建了一个线程并且在该...阅读全文

博文 2015-01-28 10:35:39 debian.cn

Debian Jessie、Stretch 下安装配置 PHP7.2

: systemctl restart php7.2-fpm 更多日常的操: systemctl restart php7.2-fpm #重启 systemctl start php7.2-fpm #启动 systemctl stop php7.2-fpm #关闭 systemctl status php7.2-fpm #检查状态 安装更多组件 上面的一条命令安装 PHP 只是安装了部分 PHP 拓展,更多的软件可见: root@debian.cn-service:~# apt-cache search php7.2 php-radius - radius client library for PHP php-http - PECL HTTP module for PHP Extended HTTP...阅读全文

博文 2017-12-16 14:16:25 debian.cn

Golang 应用集成 Prometheus 统计数据支持

基本概念 Prometheus 所有采集的监控数据均以指标(metric)的形式保存在内置的时间序列数据库当中(TSDB):属于同一指标名称,同一标签集合的、有时间戳标记的数据流。除了存储的时间序列,Prometheus 还可以根据查询请求产生临时的、衍生的时间序列为返回结果。 样本在时间序列中的每一个点称为一个样本(sample),样本由以下三部分组成: 指标(metric):指标名称和描述当前样本特征的 labelsets; 时间戳(timestamp):一个精确到毫秒的时间戳; 样本值(value): 一个 folat64 的浮点型数据表示当前样本的值。 {

博文 2022-11-24 10:33:09 CSDN博客

使用 setfacl 管理文件的访问控制列表ACL

如果你是在一个大型组织,你运行了 NFS 或者 Samba 服务给不同的用户,你将会需要灵活的挑选并设置很多复杂的配置和权限去满足你的组织不同的需求。Linux(以及其他Unix等POSIX兼容的操系统)有一个被称为访问控制列表(ACL)的权限控制方法,它是一种权限分配之外的普遍范式。例如,默认情况下你需要维护3个权限组:owner、group和other。 使用ACL后,你可以设置权限给其他用户或组,而不单只是简单的"other"。可以允许指定的用户A、B、C拥有写权限而不再是让他们整个组拥有写权限。 ACL支持多种Linux文件系统,包括ext2, ext3, ext4, XFS, Btrfs等。如果你不确定你的文件系统是否支持ACL,请参考文档。 首先我们需要安装工具来管理ACL...阅读全文

Kubernetes 1.7:安全加固、有状态应用更新等

志(Audit log),现在定制化和可扩展性更强,支持事件过滤和 webhook。它们同时为系统审计提供了更丰富的数据。 状态化工负载: StatefulSet Update 是1.7中一个新的 beta 状态的特性,能允许有状态应用如 Kafka,Zookeeper 和 etcd 的更新自动化。它使用了各种升级策略,包括滚动更新。 对于无顺序要求的应用,通过 Pod 管理策略(Pod Management Policy),StatefulSet 现在支持更快的伸缩和启动。这可以大大提升性能。 本地存储( alpha状态 )是有状态应用一个最常被请求添加的特性。用户现在可以通过标准的PVC/PV接口和StatefulSet中的StorageClass来访问本地存储卷。 DaemonSet...阅读全文

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

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

新加坡华侨银行(OCBC) 零门槛开户 使用APP在家即可申请

状态。这一步遇到困难,可以参考这个 Youtube 视频。​6 APP读取的时候会跳出检测,这时候不要动,等待读取完毕。同样需要一些耐心,多试试,不难。​7 给身份证拍个照。点击【下一个】开始给身份证正面拍照。点击【下一个】开始人脸识别,这一步开始人脸验证。注意,不要裸露上身。​8 这些信息填完之后,点击【提供我的详细信息】,开始填写自身国家、职业、公司等详细信息。在这之前,首先是检查你之前填写的姓名和邮箱等信息。​9 选择工类型,选择【受雇】或者【自雇】。填写税务信息。纳税人识别号为自己身份证号。​10 这里选择 【不,我未曾/没有担任重要的公职,也不是一名已/被委托担任公共职务的公共职者 的家庭成员或关系亲近的人】然后,勾选电子邮件和短信,☑️ 勾选 【本人确认懂英文,并同意以英文形式...阅读全文

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

!= nil { errors = append(errors, err) } return utilerrors.NewAggregate(errors) }cgc.evictContainers在 cgc.evictContainers 方法中会回收所有可被回收的容器,其主要逻辑为:1、首先调用 cgc.evictableContainers 获取可被回收的容器为 evictUnits,可被回收的容器指非 running 状态且创建时间超过 MinAge,evictUnits 数组中包含 pod 与 container 的对应关系;2、回收 deleted 状态以及 terminated 状态的 pod,遍历 evictUnits,若 pod 是否处于 deleted 或者 terminated...阅读全文

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

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博客

基于thanos搭建分布式prometheus

的永久存储和查询能力。 Compactor则是对Bucket里的历史数据进行采样或者清理,有具体需求后再自行研究即可。 上述组件均是可选的,没有历史数据永存需求的可以直接忽略。 方案2:thanos receive + thanos querier thanos提供的另一种方案是计算与存储分离,利用thanos receive组件部署一个分布式存储集群,然后令prometheus通过remote write机制直接写入到thanos receive集群完成分布式存储,这样prometheus本身就无状态了。 再利用thanos querier反向代理到thanos receive集群,最终对外提供统一的promql查询入口,这个阶段就没有prometheus什么事了。 这套方案的工原理如下...阅读全文

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

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

:#influxdb部分配置文件 #描述:内存快照的冷冻写入周期,默认10m #场景: 当创建新的shard分片开始接受数据之后,上个shard分片进入冷冻期, #冷冻期的shard分片不再接收写入的请求,10分钟之后,会将内存里冷冻shard的cache进行落盘操 #应用: 本文设置为30分钟。个人认为时间越短,会越快释放上个shard的内存cache cache-snapshot-write-cold-duration = "30m" #描述: 使用全量策略压缩冷冻期分片的周期,默认4h #场景: 当shard进入冷冻期后,会经过4h,开始进行全量压缩策略,进一步减少shard落盘数据占用的空间 #与cache-snapshot-write-cold-duration配合使用 #可以从日志中看到,新分片...阅读全文

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