InfraPub 为您找到相关结果 61

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

。TLS1.2具有很强的可配置性,因此一些有安全漏洞的站点为兼容老版本的浏览器而没有关闭那些旧的属性。 TLS1.3信奉“少即是多”哲学,取消了对一些老旧而衰弱的加密方式的支持。这意味着你无法打开那些潜在的漏洞。TLS1.2中原有的大量特性都被删除了,其中大部分特性与那些著名的攻击有关,这些特性包括: RSA 密钥传输 —— 不支持前向安全性 CBC 模式密码 —— 易受BEAST和Lucky 13攻击 RC4 流密码 —— 在HTTPS中使用并不安全 SHA-1 哈希 —— 建议以SHA-2取而代之 任意 Diffie-Hellman 组 —— CVE-2016-0701漏洞 输出密码——易受 FREAK 和 LogJam攻击 TLS1.3 消除了旧版本中糟糕的加密方式,同时降低了旧的攻击方式对其...阅读全文

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

深入理解Golang之context

available (because the // surrounding function has not yet been extended to accept a Context // parameter). Background和TODO只是用于不同场景下: Background通常被用于主、初始化以及测试中,作为一个顶层的context,也就是说一般我们创建的context都是基于Background;而TODO是在不确定使用什么context的时候才会使用。下面将介绍两种不同功能的基础context类型:valueCtx和cancelCtx。valueCtxvalueCtx结构体type valueCtx struct { Context key, val interface...阅读全文

博文 2021-01-27 09:05:27 知乎

架构师详解 Nginx 架构

线程启动和执行的流程如下:主程序 Master process 启动后,通过一个 for 循环来接收和处理外部信号;主进程通过 fork() 产生子进程,每个子进程执行一个 for 循环来实现 Nginx 服务器对事件的接收和处理。 一般推荐 worker 进程数与 cpu 内核数一致,这样一来不存在大量的子进程生成和管理任务,避免了进程之间竞争 CPU 资源和进程切换的开销。而且 Nginx 为了更好的利用多核特性,提供了 cpu 亲缘性的绑定选项,我们可以将某一个进程绑定在某一个核上,这样就不会因为进程的切换带来 cache 的失效。 对于每个请求,有且只有一个工作进程对其处理。首先,每个 worker 进程都是从 master 进程 fork 过来,在 master 进程里面,先建...阅读全文

博文 2018-05-01 23:10:47 debian.cn

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

,跑至内存不再增加,果然valgrind显示没有任何内存泄露。反复试验了很多次,结果都是这样。 在多次使用valgrind无果以后,我开始怀疑程序内部是不是用到mmap之类的调用,于是使用strace对mmap,brk等系统的检测: strace -f -e"brk,mmap,munmap" -p $(pidof AuthServer) 其结果如下: [pid 19343] mmap(NULL, 134217728, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f53c8ca9000 [pid 19343] munmap(0x7f53c8ca9000, 53833728) = 0 [pid 19343...阅读全文

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

在 Kubernetes 上扩展 TensorFlow 模型

由于人工智能 / 机器学习日益集成到应用和业务流程中,因此生产级机器学习模型需要更多可扩展的基础设施和计算能力,以用于训练和部署。 现代机器学习算法在大量数据上进行训练,并且需要数十亿次迭代才能使成本最小化。这类模型的垂直扩展会遇到操作系统级别的瓶颈,包括可提供的 CPU、GPU 和存储的数量,而且对于这种类型的模型,已经证明效率并不高。更为高效的并行处理算法,例如异步训练和 allreduce 式训练,需要一个分布式集群系统,由不同的 worker (工作器)以协调的方式同时学习。 可扩展性对于在生产环境中服务深度学习模型也非常重要。将单个 API 请求处理到模型预测端点可能会触发复杂的处理逻辑,这将花费大量时间。由于更多用户访问模型的端点,为了有效地处理客户端请求,需要更多服务实例...阅读全文

Apache Kafka发布 3.0 正式版

SerDe 构造来配置他们的窗口化 SerDe,然后在拓扑中使用它的任何地方提供 SerDe。KIP-633:弃用 Streams 中宽限期的 24 小时默认值在 Kafka Streams 中,允许窗口操作根据称为宽限期的配置属性处理窗口外的记录。以前,这个配置是可选的,很容易错过,导致默认为24小时。这是Suppression运营商用户经常感到困惑的原因,因为它会缓冲记录直到宽限期结束,因此会增加 24 小时的延迟。在 3.0 中,Windows类通过工厂方法得到增强,这些工厂方法要求它们使用自定义宽限期或根本没有宽限期来构造。已弃用默认宽限期为 24 小时的旧工厂方法,以及与grace()已设置此配置的新工厂方法不兼容的相应API。KIP-623:internal-topics为流应用程序...阅读全文

博文 2021-09-26 14:13:03 joseph

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

influxdb中数据库名 use iot_cloud #修改保留策略为周期为3天,每2小时一分片 alter retention policy rp_iot_cloud on iot_cloud duration 3d REPLICATION 1 SHARD DURATION 2h default调整为2小时一分片之后,SHR内存峰值会减少10-15g左右的占用。但是缩短分片间隔之后,influxdb会更频繁的进行内部自检及数据压缩,会造成cpu及磁盘io的消耗。所以继续考虑SHR占用较大对系统会有什么影响?应用程序在启动之后,会共享系统一些内存:堆内存(共享库消耗的堆空间)文件缓存(从磁盘读取文件进行缓存)对于共享堆内存则是必须占用的物理空间,而文件缓存则是系统针对磁盘读取的优化。目前...阅读全文

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

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

火焰图来看。如果代码没有问题,那么可能执行代码的环境是有问题的,这时可以查看系统的 CPU/Memory 等资源是否有问题来做进一步排查。​下面举个 SQL 慢查询的例子(如下图)。在这个例子中网关调用 product 服务,product 服务依赖了 MySQL 服务,逐步查看链路上的黄金指标,最终发现 product 执行了一条特别复杂的 SQL,关联了多张表,导致 MySQL 服务响应慢。MySQL 协议基于 TCP 之上的,我们的 eBPF 探针识别到 MySQL 协议后,组装、还原了 MySQL 协议内容,任何语言执行的 SQL 语句都能采集到。​第二个例子是应用本身慢的例子,这时候自然会问具体哪一步、哪个造成了慢,ARMS 应用监控支持的火焰图通过对 CPU 耗时定期采样(如...阅读全文

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

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

,然后吃的喝的用的穿的都一样,你自然很难分辨。其中最重要的就是一定要注意中间的相同输入过程,各个不同节点要以相同且确定性的来处理输入,而不要引入一个不确定的值。使用replicated log来实现每个节点都顺序的写入客户端请求,然后顺序的处理客户端请求,最终就一定能够达到最终一致性。状态机安全性保证:在安全性方面,KRaft与传统Raft的选举安全性、领导者只追加、日志匹配和领导者完全性保证都是几乎相同的。下面只简单看看状态机安全性是如何保证的,仍然举论文中的极端例子:在时刻a,节点S1是Leader,epoch=2的日志只复制给了S2就崩溃了。在时刻b,S5被选举为Leader,epoch=3的日志还没来得及复制,也崩溃了。在时刻c,S1又被选举为Leader,继续复制日志,将...阅读全文

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

最全的 DevOps 工具集合

移到了 Pivotal Software。随着 VMware 于 2019 年底收购 Pivotal,它也重新回到了 VMware。 PCF 是用于部署、管理和持续交付应用程序、容器和的多云平台。PCF 允许开发人员快速部署和交付软件,而无需管理底层基础架构。 Heroku Heroku 是一种支持多种编程语言的云 PaaS。Heroku 是最早的云平台之一,自 2007 年 6 月就开始开发了;当时它仅支持 Ruby 编程语言,但现在支持 Java、Node.js、Scala、Clojure、Python、PHP 和 Go。 Heroku 是基于容器的云 PaaS。开发人员使用 Heroku 来部署、管理和扩展现代应用程序。这一平台优雅、灵活且易于使用,为开发人员提供了将自己的应用推向...阅读全文

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

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

记录的更改)。在我们的例子中,控制器通过一个 Informer 注册一个创建事件的特定回调(更多信息参加下文)。 当 Deployment 第一次对外可见时,该 Controller 就会将该资源对象添加到内部工作队列,然后开始处理这个资源对象: 通过使用标签选择器查询 kube-apiserver 来检查该 Deployment 是否有与其关联的 ReplicaSet 或 Pod 记录。 有趣的是,这个同步过程是状态不可知的,它核对新记录与核对已经存在的记录采用的是相同的方式。 在意识到没有与其关联的 ReplicaSet 或 Pod 记录后,Deployment Controller 就会开始执行弹性伸缩流程: 创建 ReplicaSet 资源,为其分配一个标签选择器并将其版本号设置...阅读全文

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