基于thanos搭建分布式prometheus
prometheus切过去就可以了,这比配置sidecar的方式感受起来要好很多,也是腾讯TKE团队选择的大规模集群方案。 我发布了2个YAML,不需要任何改动,直接生效到集群中可以马上体验到效果:https://github.com/owenliang/thanos-prometheus 先部署thanos receive存储集群: YAML...阅读全文
prometheus切过去就可以了,这比配置sidecar的方式感受起来要好很多,也是腾讯TKE团队选择的大规模集群方案。 我发布了2个YAML,不需要任何改动,直接生效到集群中可以马上体验到效果:https://github.com/owenliang/thanos-prometheus 先部署thanos receive存储集群: YAML...阅读全文
公式就尤为重要了。Intel 希望在介绍工艺节点时要公布逻辑芯片的晶体管密度、SRAM cell 单元面积等参数,并定下加权系数以便于新标准计算。 原本的 XXnm 制造工艺,一方面是衡量速度,一方面也是集成度。越高工艺的目标是集成度越高,速度越快。但如果只用 XXnm 来衡量制造工艺,其实是有所欠缺的。比如中国大陆的 SMIC 和台积电相比,虽然是同等工艺但要慢不少。加上之前苹果交付三星代工的 14nm 芯片反而不如台积电 16nm 芯片的情况,使 Intel 提出的新公式具有一定依据。 不过,Intel 这个新标准的权威性还有待提升,相关例证也有待补充,而且新标准计算相对复杂,不太容易被大众理解。更关键的是出于商业利益,台积电和三星也不可能去迎合 Intel 的新标准,毕竟台积电和三星已...阅读全文
立好需要 listen 的 socket(listenfd)之后,然后再 fork 出多个 worker 进程。所有 worker 进程的 listenfd 会在新连接到来时变得可读,为保证只有一个进程处理该连接,所有 worker 进程在注册 listenfd 读事件前抢 accept_mutex,抢到互斥锁的那个进程注册 listenfd 读事件,在读事件里调用 accept 接受该连接。当一个 worker 进程在 accept 这个连接之后,就开始读取请求,解析请求,处理请求,产生数据后,再返回给客户端,最后才断开连接,这样一个完整的请求就是这样的了。我们可以看到,一个请求,完全由 worker 进程来处理,而且只在一个 worker 进程中处理。 在 Nginx 服务器的运行过程中...阅读全文
/src:fcitx) | 修正Flatpaks中的输入法支持 | | [file](https://packages.debian.org/src:file) | 默认情况下,将名称递归深度增加到50 | | [geoclue-2.0](https://packages.debian.org/src:geoclue-2.0) | 检查最大允许的准确度水平,即使是对系统应用程序也是如此;使Mozilla API密钥可配置,默认使用Debian特定的密钥;修复使用指示器的显示 | | [gnutls28](https://packages.debian.org/src:gnutls28) | 修复证书过期导致的测试套件错误 | | [grub2](https://packages.debian.org...阅读全文
{ p.children = make(map[canceler]struct{}) } // 与父 context 关联 p.children[child] = struct{}{} } p.mu.Unlock() } else { // 如果没有找到可取消的父 context,新启动一个协程监控父节点或子节点取消信号 atomic.AddInt32(&goroutines, +1) go func() { select { case <-parent.Done(): child.cancel(false, parent.Err()) case <-child.Done(): } }() } context.propagateCancel 的作用是把子 context 和父 context 关联起来,保证在...阅读全文
。比如它的线程优先级太低,而高优先级的线程不断抢占它所需的资源,导致低优先级资源无法工作。 3、活锁的情况是线程一种非常有趣的情况,在生活中我们可能会碰到这样的情况,那就是出门的时候可能会遇到有人要进门,你打算让他先进门,他又打算让你先出门,结果,两个人都互相退后了,然后你打算先出门时对方也向前一步,来来回回就一直卡在门口。当然,这种事情正常人很快就能解决,但如果是线程碰到就没那么幸运了。 如果两个线程占用着公共的资源,并且秉承着 “谦让” 的原则,主动把资源让给他人使用,你让我也让,这样就造成资源在两个线程间不断跳动但线程之间都拿不到资源的情况,这样的情况就是活锁了。 线程安全 线程安全指的是多线程的安全。如果一段程序可以保证被多线程访问后仍能保持正确性,那么程序就是线程安全的。一般来说,线...阅读全文
本文最初发布于 Better Programming 博客,经原作者授权由 InfoQ 中文站翻译并分享。 随着 DevOps 的出现频率越来越高,很多企业都在蠢蠢欲动,想要设计和开发 DevOps 平台。工欲善其事必先利其器,本文为大家总结了 DevOps 各个阶段可以选择的工具,也许 DevOps 平台的技术选型在这一篇文章中就可以完成。 DevOps 的目标是持续改进,因此技术选型也是分阶段的。 DevOps 技术类别 规划工具 在规划阶段最重要的是要制定共同的目标、保证透明度和赋权。目前业内比较常用的规划工具主要包括 GitLab、TaskTop、CollabNet VersionOne、Pivotal Tracker、Trello 和 Azure Boards。 GitLab...阅读全文
Boot的ConfigurationProperties,方便应用使用(需要Spring 3.1.1+)同时提供了Http接口,非Java和.Net应用也可以方便的使用提供开放平台API Apollo自身提供了比较完善的统一配置管理界面,支持多环境、多数据中心配置管理、权限、流程治理等特性。不过Apollo出于通用性考虑,对配置的修改不会做过多限制,只要符合基本的格式就能够保存。在我们的调研中发现,对于有些使用方,它们的配置可能会有比较复杂的格式,而且对输入的值也需要进行校验后方可保存,如检查数据库、用户名和密码是否匹配。对于这类应用,Apollo支持应用方通过开放接口在Apollo进行配置的修改和发布,并且具备完善的授权和权限控制部署简单 配置中心作为基础服务,可用性要求非常高,这就要求...阅读全文
程会形成一个全局执行环境,执行环境采用栈的方式将待执行任务按顺序依次来执行。 但在浏览器中有一些任务是非常耗时的,比如http请求、定时器、事件回调等,为了保证其他任务的执行效率不被影响,JS在执行环境中维护了一个异步队列(也叫工作线程),并将这些任务放入队列中进行等待,这些任务的执行时机并不确定,只有当主线程的任务执行完成以后,才会去检查异步队列中的任务是否需要开始执行。这就是为什么setTimeout(fn,0) 始终要等到最后执行的原因。关于单线程和异步队列问题请参考:setTimeout(0) 7、异步通讯 Ajax技术 Ajax是浏览器专门用来和服务器进行交互的异步通讯技术,其核心对象是XMLHttpRequest,通过该对象可以创建一个Ajax请求。为了防止XSS攻击,浏览器对...阅读全文
) 升级数据库配置 迁移非核心业务到新的RDS实例中去 第二次宕机 由于上一次的宕机原因未找到,所以此次的宕机是可以预见的。 20180919,还是一样的”配方”,还是原来的”味道”。同一个RDS,CPU飙升至100%,接下来就是拒绝服务,宕机。当然,有了第一次的经验,直接主从切换,在几十秒左右就恢复了所有业务,但还是严重影响了公司的业务和形象 原因分析 恢复业务后,公司紧急召开了紧急事故研究会议,当然,我的级别是参与不了的。公司的高管,高层技术架构、DBA、各个项目的主负责人一起进行了会议。 在此次会议中,经过查看各个项目的日志,后台的监控数据,发现在那台RDS数据库CPU飙升时,有一台Redis数据库内存将近100%,然后急剧下降。联系第一次的宕机情况,也是类似的。 接下来就是联系服务器数据...阅读全文
本文翻译自 Jack Roper 的文章 Kubernetes Best Practice。译者:文章中作者从应用程序开发、治理和集群配置三个方面给出了一些 Kubernetes 的最佳实践,同时翻译过程中也加入了我过往的一些使用经验。有误的地方,也欢迎大家指正。在这篇文章中,我将介绍一些使用 Kubernetes (K8s) 时的最佳实践。作为最流行的容器编排系统,K8s 是现代云工程师掌握的事实标准。众所周知,不管使用还是维护 K8s 复杂的系统,因此很好地掌握它应该做什么和不应该做什么,并知道什么是可能的,将是一个好的开局。这些建议包含 3 大类中的常见问题,即应用程序开发、治理和集群配置。最佳实践目录使用命名空间使用就绪和存活探针(译者注:还有启动探针)使用自动缩放使用资源请求和约...阅读全文
+ openSUSE42.1,对了,还有一个 Windows10 Insider Preview。不过,日常使用的是Gentoo+kde5,其他系统很少用,只是偶而开机体验一下。 工作电脑(Gentoo+kde5,wineQQ) 我觉得这也不算是折腾技术,只是装个系统罢了。许多技术只是了解一些皮毛,没有基础,也没有精力深入学习。 现在每天必做的事就是更新系统,Gentoo几乎每天emerge –sync若干次,强迫症,没办法。。。至于其他发行版,基本上都是在Gentoo下chroot进去更新。也深刻体会到更新linux比更新windows方便太多了,在不影响正常使用的情况下,就能把笔记本上的所有发行版更新了,而更新windows时,啥也干不了,干等着吧。。。 现在Linux能满足我的绝大多数需求:上网不用说...阅读全文
队列机制,将 queue 镜像到 cluster 中其他的节点之上。在该实现下,如果集群中的一个节点失效了,queue 能自动地切换到镜像中的另一个节点以保证服务的可用性。 在通常的用法中,针对每一个镜像队列都包含一个 master 和多个 slave,分别对应于不同的节点。slave 会准确地按照 master 执行命令的顺序进行命令执行,故slave 与 master 上维护的状态应该是相同的。除了 publish 外所有动作都只会向master 发送,然后由 master 将命令执行的结果广播给 slave 们,故看似从镜像队列中的消费操作实际上是在 master 上执行的。 一旦完成了选中的 slave 被提升为 master 的动作,发送到镜像队列的 message 将不会再丢失...阅读全文
退出的时间进行排序优先删除退出时间最久的,MaxPerPodContainer 在上文已经提过,表示一个 pod 最多可以保存多少个已经停止的容器,默认为1,可以使用 --maximum-dead-containers-per-container 在启动时指定;4、若 kubelet 启动时指定了 --maximum-dead-containers(默认为 -1 即不限制),即需要为 node 保留退出的容器数,若 node 上保留已经停止的容器数超过 --maximum-dead-containers,首先计算需要为每个 pod 保留多少个已退出的容器保证其总数不超过 --maximum-dead-containers 的值,若计算结果小于 1 则取 1,即至少保留一个,然后删除每个...阅读全文
。WebAssembly 带来了真正的可移植性。 构建一次二进制文件,就能在任何地方运行它。 作为这种可移植性的证明,我们准备了几个通过我们为 WebAssembly 构建的 PHP 解释器运行 WordPress 的示例。当 PHP 作为独立的 Wasm 应用程序运行时,它会为 WordPress 提供服务。 它也可以在 Docker+Wasm 容器中运行。 此外,它还能在嵌入 Wasm 运行时的任何应用程序中运行。 在我们的示例中,这是 apache httpd,它可以通过 mod_wasm 使用 Wasm 应用程序作为内容处理程序。 最后,PHP.wasm 也可以在浏览器中运行。通过 WasmEdge 服务 WordPress我们为本次演示准备了一个紧凑的 WordPress+Sqlite 示例。 由于它是...阅读全文
2002年就已经是 3.0.0 版本。这么多年,才升到 3.0.22,真够慢的。 选完版本号,然后你可以下载“exe 格式”或“zip 格式”。如果是“exe 格式”,就是一个安装文件,双击就可以安装(安装过程很容易,俺就不详述了);如果你选“zip 格式”,就是一个【绿色免安装】的压缩包。你把这个 zip 随便解压到某个目录下,就可以用了。 俺本人比较喜欢“绿色软件”,所以每次都下载“zip 格式”。 ★基本使用 Privoxy 默认安装好就可以使用了。它默认会开启 HTTP 代理,端口号是 8118,绑定在 127.0.0.1 这个地址。 你把浏览器的 HTTP 代理作相应的设置,浏览器就会走 Privoxy 的 HTTP 代理。 为了检验你的浏览器是否正确配置了 Privoxy 的代理,你可...阅读全文
triggered once! get 9 bytes of content: ABCDEFGHI -->LT Mode: it was triggered once! get 8 bytes of content: JKLMNOPQ 从结果中,可以看出,由于buffer中数据读取完毕后,还有未读完的数据,所以水平模式会一直触发,这也是为啥这里水平模式被触发了两次的原因。 有了这两个栗子的比对,不知道聪明的你,get到二者的区别了吗? 在实际开发过程中,实际上LT更易用一些,毕竟系统帮助我们做了大部分校验通知工作,之前提到的SELECT和POLL,默认采用的也都是这个。但是需要注意的是,当有成千上万个客户端连接上来开始进行数据发送,由于LT的特性,内核会频繁的处理通知操作,导致其相对于ET来说,比较的耗费系...阅读全文