InfraPub 为您找到相关结果 16

新改进让Linux 5.10能更快地休眠以及恢复工作

如果你经常让你的系统经历休眠周期,那么从即将开始的 Linux 5.10 周期开始,性能应该会好很多。在即将到来的Linux 5.10合并窗口中,有一个变化允许对休眠/恢复的I/O请求进行,以加快休眠和恢复进程。 到目前为止,Linux 内核依靠为每一页数据提交单独的 I/O 请求,但现在 Linux 5.10+ 的时候,它设置为使用 batch 与 blk_plug。 开发者Xiaoyi Chen的内核补丁解决了这一问题:合并I/O请求让系统休眠和恢复的速度提升了一个数量级以上。在使用的32GB内存中,16GB内存的一个休眠和恢复周期在改变前需要21分钟左右,在存储IOPS有限的系统上,改变后仅需要1分钟。" Xiaoyi Chen在亚马逊EC2旗下主导了这项工作,这项改变是在系统...阅读全文

博文 2020-10-04 20:25:21 debian.cn

Prometheus 常用 PromQL 语句样例

[4h], 3600)时间获取 Unix 时间,以秒为单位: time()获取最后一次成功运行的作业的年龄: time() - my_batch_job_last_success_timestamp_seconds查找一小时内没有成功的作业: time() - my_batch_job_last_success_timestamp_seconds > 3600缺失数据处理当输入向量为空时,创建一个一个输出序列: absent(my_metric_name)当输入的范围向量5分钟内都是空的时候,创建一个空的输出序列: absent_over_time(my_metric_name[5m])标签操作用 - 分隔符连接两个标签的值: label_join(my_metric_name...阅读全文

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

总结系统设计中的33个黄金法则

数据库。 6. 拥有复杂的数据(视频、图像、文件)——选择 Blob/对象存储。 7. 复杂的计算——使用消息队列和缓存。 8. 海量数据搜索——考虑搜索索引、尝试搜索引擎。 9. 扩展 SQL 数据库 — 实施数据库分片。 10. 高可用性、性能和吞吐量 — 使用负载均衡器。 11. 全球数据交付——考虑使用 CDN。 12. 图形数据(具有节点、边和关系的数据)——利用图形数据库。 13. 扩展各种组件——实现水平扩展。 14. 高性能数据库查询——使用数据库索引。 15. 批量作业处理——考虑和消息队列。 16. 服务器负载管理和防止 DOS 攻击 - 使用速率限制器。 17. 微服务架构——使用 API 网...阅读全文

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

模型的差别则在于一系列的函数处理一批数据包。这种方法的主要目的是解决当 pipeline 变复杂时所遇到 i-cache miss 较高的问题。 标量处理模型 vs 向量处理模型 标量处理模型在性能上不如向量处理模型的另一个原因,就是在不同处理函数(业务逻辑)之间,报文传递到下一个处理函数的方式上有所不同。前者只是简单地用 pointer assignment 的方法来传递,若处理基于不同批次的情况下,由于低效的 pointer assignment,会导致处理一批报文时性能低下。 而对于向量包处理模型而言,向量包处理模型反而可以减少上述标量处理模型因而导致性能不理想的情况。这是因为在向量模型中,报文在业务逻辑之间的传输除了可以通过最原始的 pointer assignment 之外...阅读全文

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

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

Facebook 的首位发布工程师,目前是 Facebook 发布工程的工程总监。 Facebook 的发布周期是“ quasi-continuous ” (准连续)——这只是一种委婉的说法,表明并非每次提交都会部署到生产环境,实际上它采用的是对几十到几百个提交进行,每隔几个小时就进行推送。这种分层发布的方式使任何变更的回滚很容易。 这个新系统从 2016 年 4 月开始,经过一年的时间慢慢地完善。早先的模式是从主干分支的提交中选择特定的变更放到发布分支上。发布分支每天将这些变更推送到生产环境。这种“ cherry-picking ”的特点是,每天选择变更的数量为 500 ~ 1000。剩下的变更就推入到每周发布分支中。随着时间的推移,提交的数量和参与其中的工程师都有所增加,发布工程师的手工劳动变得...阅读全文

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

7大维度看国外企业为啥选择gRPC打造高性能微服务

动收集指标和跟踪信息可以快速回答常见问题,例如“我的服务对请求响应缓慢吗?”以及“请求失败的频率如何?”。 熔断 - 这种模式可以通过自动检测问题和快速失败来防止级联服务故障。也可以由长时间缓慢的请求来触发,以提供响应降级的服务而不是不断地超时。 缓存和 - 通过使用缓存或请求来加速请求。 大多数框架不会提供所有功能,但至少它们应该是可扩展的,以便在需要时添加。 什么是gRPC和协议缓冲区? 没有一个框架是万能的。我们探索的一些选项包括Facebook的Thrift,Apache Hadoop的Avro,Twitter的Finagle,甚至使用JSON模式。 我们的需求更接近于远程程序调用(RPC),给予所需要的细粒度控制。使用RPC的另一个吸引力是使用接口描述语言或IDL...阅读全文

博文 2018-03-19 17:51:32 debian.cn

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

改并不重要,因为在实践中,我们仔细地推出了整个incarnation的内容。 但是,这个方案缺少灵活性。考虑这样的场景:多个正在进行的推出改变了相同的asset——比如,为期一周的新标志与每日版本更新并行推出。这个用例无法通过纯粹的基于actuation的推出来管理。在实践中,需要对更改进行。 如图12所示,基于intent的推出仅仅在特定asset选中后才会更新asset的intent。随后intent立即通过Enforcer被执行。 图12:基于intent的推出 基于intent的推出比基于acutation的推出复杂很多。它们要求能够程序化地改变intent的能力。在Prodsepc模型里,这个需求意味着依赖于可以以编程方式编辑的SoT。SoT还应允许足够的粒度来匹配asset...阅读全文

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

Gitlab CI 配置文件 .gitlab

job名称和当前分支名称或者是tag作为存档名称,只存档没有被Git跟踪的文件: job: artifacts: name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}" untracked: true 使用当前stage和分支名称作为存档名称: job: artifacts: name: "${CI_JOB_STAGE}_${CI_COMMIT_REF_NAME}" untracked: true 如果是使用Windows来运行yaml脚本,需要用%替换$: job: artifacts: name: "%CI_JOB_STAGE%_%CI_COMMIT_REF_NAME%" untracked: true artifacts:when GitLab...阅读全文

博文 2018-12-12 21:09:02 ci.yaml 详解(下)

在 Kubernetes 上扩展 TensorFlow 模型

管理、流量分割和版本管理。然而,这个选项并没有提供自动扩展功能。 - **Seldon Core** 是一款第三方工具,可用于 Kubeflow 抽象和资源。它支持多种机器学习框架,包括 TensorFlow,并允许将训练好的 TensorFlow 模型转换为 REST/gRPC 微服务,运行在 Kubernetes 中。Seldon Core 默认支持模型自动扩展。 - **BentoML** 是 Kubeflow 使用的另一个第三方工具,它提供高级的模型服务功能,包括自动扩展,以及支持微的高性能 API 模型服务器。 在下一节中,我将展示如何使用 KFServing 对训练好的 TensorFlow 模型进行自动扩展,KFServing 是默认的 Kubeflow 安装中的一个模块...阅读全文

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

能清楚地记住不同工作流程的所有细节。每当我遇到一个与我的工作方式截然不同的包时,我就会非常沮丧,我不得不重温日常工作的各个方面。 在注意到Go包团队(我最初的团队)工作流程的支离破碎后,我尝试采用这篇文章(https://go-team.pages.debian.net/workflow-changes.html)中介绍的工作流程更改提议来解决这个问题,但没能成功。虽然我愿意贡献时间和精力,但周围的工具缺乏有效的自动化,且变化速度缓慢,这抹杀了我的动力。 陈旧的基础设施:包的上传 如果想在Debian中创建包,你需要通过匿名FTP上传GPG签名的文件。还有几个定时(例如dinstall的运行时间为UTC 01:52、UTC 07:52、UTC 13:52和UTC 19:52)运行的作业...阅读全文

博文 2019-03-22 17:01:23 Michael Stapelberg

Gitlab CI 配置文件 .gitlab

: "$CI_COMMIT_REF_NAME" untracked: true 缓存每个job且每个分支: cache: key: "$CI_JOB_NAME/$CI_COMMIT_REF_NAME" untracked: true 缓存每个分支且每个stage: cache: key: "$CI_JOB_STAGE/$CI_COMMIT_REF_NAME" untracked: true 如果使用的Windows Batch(windows)来跑脚本需要用%替代$: cache: key: "%CI_JOB_STAGE%/%CI_COMMIT_REF_NAME%" untracked: true Jobs .gitlab-ci.yml允许指定无限量jobs。每个jobs必须有一个唯一的名字,而且不能是上面提到的关键字。job...阅读全文

博文 2018-12-12 21:01:19 ci.yaml 详解(上)

Cortex: 高可用和水平扩展Prometheus监控系统

询时必须提供相同的值。在下面的例子中,这个headers是使用nginx反向代理设置的。架构图Cortex架构(源)Nginx/gateway–一个位于cortex前面的反向代理,将收到的所有请求转发给相应的服务。分发服务器Distributor–处理传入的指标,将其拆分为多个批次,然后将其传递给Ingesters。如果复制因子replication factor设置为> 1,则数据将发送到多个实例。接收器Ingester–此服务负责将数据写入已配置的存储后端。Ingester是半状态的,因为它们保留了最后12个小时的样本。这些样本将被并压缩,然后再写入块存储。查询前端Query Frontend–一个可选组件,用于对查询请求进行排队,并在失败时重试它们。结果也被缓存以提高性能查询器...阅读全文

博文 2021-10-09 17:00:22 知乎

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

1.新的问题influxdb目前支持内存型索引inmem及文件型索引tsi1。之前追踪篇将influxd索引修改为tsi1之后,经过一段时间的运行,从监控观察到,由于调用方采用异步队列+的方案将数据写入influxdb,会在某些时刻调用方内部出现数据堆积,指标如图:横坐标: 时间轴,从12-29 00:00 到 12-30 00:00纵坐标: 队列中数据堆积长度,坐标最大值250k,即最大25w个数据堆积从上图可以看到,当天监控出现数次堆积,上午7:00-10:00尤为严重。在堆积时,登录influxdb服务器,查看机器状态如下:top - 09:40:58 up 120 days, 19:18, 1 user, load average: 32.29, 32.32, 29.82...阅读全文

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

HTTP状态码详解

,而且有一个新的资源已经依据请求的需要而建立,且其 URI 已经随Location 头信息返回。假如需要的资源无法及时建立的话,应当返回 ‘202 Accepted’。 202 服务器已接受请求,但尚未处理。正如它可能被拒绝一样,最终该请求可能会也可能不会被执行。在异步操作的场合下,没有比发送这个状态码更方便的做法了。 返回202状态码的响应的目的是允许服务器接受其他过程的请求(例如某个每天只执行一次的基于的操作),而不必让客户端一直保持与服务器的连接直到操作全部完成。在接受请求处理并返回202状态码的响应应当在返回的实体中包含一些指示处理当前状态的信息,以及指向处理状态监视器或状态预测的指针,以便用户能够估计操作是否已经完成。 203 服务器已成功处理了请求,但返回的实体头部元信...阅读全文

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

Apache Flink 1.14 新特性预览 - OSCHINA

们可以把它看成一个有限的数据流去做处理,也可以把它看成批的执行模式。批的执行模式虽然也有 eventTime,但是对于 watermark 来说只支持正无穷。对数据和 state 排序后,它在任务的调度和 shuffle 上会有更多的选择。 流批的执行模式是有区别的,最主要的就是批的执行模式会有落盘的中间过程,只有当前面任务执行完成,下游的任务才会触发,这个容错机制是通过 shuffle 进行容错的。 这 2 者也各有各的执行优势: 对于流的执行模式来说,它没有落盘的压力,同时容错是基于数据的分段,通过不断对数据进行打点 Checkpoint 去保证断点恢复; 然而在上,因为要经过 shuffle 落盘,所以对磁盘会有压力。但是因为数据是经过排序的,所以对于批来说,后续的计算效率可能会...阅读全文

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

最全的 DevOps 工具集合

Jira Jira 是 Atlassian 开发的专用问题跟踪产品,提供了错误跟踪和敏捷项目管理功能。 JetBrains YouTrack YouTrack 是由 JetBrains 开发的,基于浏览器的专用商业软件,融合了错误跟踪器、问题跟踪系统以及项目管理软件。它的卖点是基于查询的问题搜索,拥有自动完成、分问题、自定义问题属性集,以及创建自定义工作流的特性。 Zendesk Zendesk 可以轻松地从所有渠道跟踪每一个客户问题。目前 Uber 和 Airbnb 等许多公司都在使用 Zendesk Support 作为他们的问题跟踪软件。 源代码控制 源代码控制主要是为了控制资产,减少沟通障碍,赋能团队。目前业内比较常用的 SCM 工具包括 Git、GitHub、GitLab...阅读全文

博文 2021-05-26 14:35:21 博客园