nginx 是企业中最常用的 7 层负责均衡产品之一,在企业实际业务运行中起到非常重要的作用。自 2004 年推出,nginx 已经有 10 余年的历史,广泛应用于大型成熟项目。
对于第一部分,主要是Redis自身的实现原理导致的,我们暂时不去做过多讨论。第二部分是在多核心CPU场景下,多核心之间的频繁上下文调度会导致Redis变慢,今天我们更近一步的分析一下多核心CPU场景以及NUMA架构下的Redis运行机制。
我感觉非常的冷门,作为一个考察候选者的知识点出现在面试环节中不太合适,除非是候选者主动提起做过这样的优化。
L1缓分成两种,一种是指令缓存,一种是数据缓存。L2缓存和L3缓存不分指令和数据。L1和L2缓存在第一个CPU核中,L3则是所有CPU核心共享的内存。L1、L2、L3的越离CPU近就越小,速度也越快,越离CPU远,速度也越慢。再往后面就是内存,内存的后面就是硬盘。我们来看一些他们的速度:
作者 | 微博研发中心基础架构部 孙云晨 编辑 | 蔡芳芳 近些年,各家公司都在不断推出各种新的 App,百万 DAU 成为各种 App 的最基本目标。本文将详解如何通过大规格服务器 +K8s 的方案简化这些新项目的成本评估、服务部署等管理工作,并在流量增长时进行快速扩容。同时,本文还介绍了微博核心业务采用此方案部署时遇到的问题以及对应的解决方案。 问题与挑战 以一个常见的社交 App 后端服务为例,如果采用主流微服务架构进行设计,通常会包含用户、关系、内容、提醒、消息等多个模块;每个模块又会分别包含各自
近些年,各家公司都在不断推出各种新的 App,百万 DAU 成为各种 App 的最基本目标。本文将详解如何通过大规格服务器 +K8s 的方案简化这些新项目的成本评估、服务部署等管理工作,并在流量增长时进行快速扩容。同时,本文还介绍了微博核心业务采用此方案部署时遇到的问题以及对应的解决方案。
答:能绑定成功,但很可能达不到预期效果,取决于vm自身是否做CPU绑定,如果vm自己做了绑核,是有效的,此时在虚拟机里面再做容器的CPU绑与不绑效果一样,如果vm自己没做绑核,即便绑了也没用。当然如果vm方提供透传功能,将NUMA信息全部透传到vm,那么在虚拟机中对容器进行绑核是有效的。
作者:ciuwaalu,腾讯 TEG 后台开发工程师 AMD 服务器,多线程应用绑核,选取不同的 CPU 核,性能差距可达50%。 最近有幸因项目拿到一台 AMD EPYC 系列测试服务器,发现了一些奇怪的现象。 这台测试服务器拥有双路 AMD EPYC 7552 处理器,属于第二代 Rome(Zen2)架构,单路 48 个物理核,双路总计 192 个逻辑核(线程),有两个 NUMA 节点。 为了进行测试,预先编写了一个简单的多线程程序: 两个线程,分别为生产者、消费者,模拟 route-wo
之前做过一个项目,数据库存储采用的是mysql。当时面临着业务指数级的增长,存储容量不足。当时采用的措施是
在客户业务应用中,采用TCP协议的占据了绝大多数,这方面也有丰富的资料可以参考;但是在UDP协议方面,由于应用较少,相关的资料也很少.TCP的性能调优需要调整一系列参数,而决定UDP通信性能的因素于此截然不同.本文将通过实验给读者做验证.
本文主要内容是介绍移动端优化会涉及到的绑定cpu(cpu affinity)[2,3]的概念和相关验证实验。
最近遇到一个线上问题,使用了 lxcfs 的容器,跑在 cgroup v2 的机器上时,在容器内使用 top 或者 htop 看到的核数和 cpu 使用率有问题。虽然根本问题在 lxcfs 的实现,但问题最终的触发与 cpuset 和 cpu.max 的设置有关。这里并不会去介绍这个问题本身,而是由问题引发的思考,我们真的了解 k8s 里面的绑核行为吗,你以为你以为的就是你以为的吗?
上半年遇到了一些绑核相关的 bug,分析了其原因,但没有总结整理下来,现在又碰到了,补一下作业,同时也希望可以帮助大家快速从坑里爬出来。本篇会总结绑核相关的 bug,部分官网已修复,部分尚未修复,与 k8s 版本有关,感兴趣的可以对 k8s 进行一些考古,翻一翻从 1.8 到现在 CPU Manager 的发展过程,当然下面也会做简单介绍。
在上一篇中,介绍了静态测试场景,本文介绍动态性能测试的差异分析,希望大家可以借鉴。
作者:腾讯星辰算力团队 1. 背景 1.1. 问题源起 近年来,随着腾讯内部自研上云项目的不断发展,越来越多的业务开始使用云原生方式托管自己的工作负载,容器平台的规模因此不断增大。以 Kubernetes 为底座的云原生技术极大推动了云原生领域的发展,已然成为各大容器平台事实上的技术标准。在云原生场景下,为了最大化实现资源共享,单台宿主机往往会运行多个不同用户的计算任务。如果在宿主机内没有进行精细化的资源隔离,在业务负载高峰时间段,多个容器往往会对资源产生激烈的竞争,可能导致程序性能的急剧下降,主要体现为:
张煜,15年加入腾讯并从事腾讯广告维护工作。20年开始引导腾讯广告技术团队接入公司的TKEx-teg,从业务的日常痛点并结合腾讯云原生特性来完善腾讯广告自有的容器化解决方案。 项目背景 腾讯广告承载了整个腾讯的广告流量,并且接入了外部联盟的请求,在所有流量日益增大的场景下,流量突增后如何快速调配资源甚至自动调度,都成为了广告团队所需要考虑的问题。尤其是今年整体广告架构(投放、播放)的条带化容灾优化,对于按需分配资源、按区域分配资源等功能都有着更强的依赖。在广告内部,播放流系统承载了整个广告播出的功能,这
上次的陈老师在对PolarDB 的分享中,提到一个新名词,bypass,通过bypass 来提高整体的云原生数据库的性能。这在传统的数据库的技术中我未曾听过,当然上次的东西,最近比较懒,没有整理,后续我会把相关的录音转换成文字,把PolarDB到底打败了谁,之快问快答的东西整理出来。
本文介绍了MySQL数据库在国产化ARM环境中出现的第一个大坑——从库复制延迟。作者首先分析了导致这一现象的原因,包括主库的binlog dump线程、从库的IO线程、从库的SQL线程及协调线程等各个方面的因素。然后,作者进行了详细的调试和分析,发现了社区版MySQL在ARM架构下存在的获取CPU缓存行大小函数兼容性BUG。最后,作者提出了解决方案并在国产ARM架构中使用TXSQL避免了这个问题。
通过上篇文章的学习,我们学会了如何查看当前 cgroup 的信息,如何通过操作 /sys/fs/cgroup 目录来动态设置 cgroup,也学会了如何设置 CPU shares 和 CPU quota 来控制 slice 内部以及不同 slice 之间的 CPU 使用时间。本文将继续探讨对 CPU 使用时间的限制。
听到上下文切换,大家第一反应肯定是:一定要减少这货出现的次数。确实上下文切换对性能的影响显而易见,但有时又无法完全避免,这就要求我们对上下文性能损耗了然于胸,才能更准确地评估系统性能。另外,现在云厂商提供的机器种类如此之多,虚拟机在这方面是否有区别。以上都需要有科学的方法来衡量上下文的耗时,进而帮助系统评估以及机型选择。
进程或者线程绑定到某个CPU Core,仍然可能会有线程或者进程切换的发生,如果想到达到进一步减少其他进程对于该进程或者线程影响,可以采取把CPU Core从Linux内核调度中剥离出来。Linux内核提供isolcpus,对于有4个CPU core的系统,在启动时候加入isolcpus=2,3,那么系统启动后将不会使用CPU3,CPU4.这里的不适用不是绝对的,但是可以通过taskset命令来设置
今天我们来聊一下数据库的性能优化,第一部分简单介绍一下性能优化的通用的方法,第二部分我们讲一个实际案例。
Multi-Factor Authentication (MFA),即多因子认证,是一种简单有效的最佳安全实践方法,它能够在用户名和密码之外再额外增加一层安全保护。腾讯云的虚拟 MFA 设备由腾讯云助手小程序承载。
本文主要讨论在高实时要求、高效能计算、DPDK等领域,Linux如何让某一个线程排他性独占CPU;独占CPU涉及的线程、中断隔离原理;以及如何在排他性独占的情况下,甚至让系统的timer tick也不打断独占任务,从而实现最低的延迟抖动。
当你接手一个老项目,可能发现程序在服务器上运行性能低得可怕,与此同时现网流量还在逐渐增长。也许运用最新框架、微服务容器化、异步协程等方法来次彻底的重构,能够挽狂澜于既倒。可惜时不我待,运维已经在要求加机器了,而坏消息是,原有框架还不支持水平扩展,没法通过堆机器解决。有没有办法在不进行大改的情况下,度过难关呢?
k8s requests limits理解 节点容量查看 kubectl describe node nodename cpu requests: requests是设置资源的一个最小保证,这里nod
2.works线程私有的vlib_main_t结构是哪里创建的? src/vlib/threads.c文件中函数start_workers,根据workers线程和其他线程数量复制vlib_global_main到vlib_mains中,包括创建私有的线程栈。具体可以看代码。
在经历了惨痛的黑天鹅事件以及激烈的数据恢复过程后,作为微盟DBA的我们进行了深刻的反省和自查,作为公司的核心资产,数据库也得到了前所未有的重视。如何保证数据安全以及用户服务的高可用性是我们要解决的首要问题。
多线程,作为一个开发者,这个名词应该不陌生。我在《对进程和线程的一些总结》中也有介绍,这里就不详述。
上周在kubernetes里发布了一个redis PaaS服务,不过其它同学简单测了一下,虽说功能上没啥问题,但性能相比物理上运行的Redis集群差太远,而且随着redis的分片数增加,性能并不能很好地线性增长,增长到一定程度就停止了,这个是需求方不能接受的,于是本周接了活,对部署在kubernetes中的redis服务进行性能优化。
进程是操作系统分配资源(CPU、内存、文件)、调度任务和执行的一个基本单位。它拥有独立的内存空间、已分配的资源和独立的执行上下文。 线程是CPU调度的基本单位,同一进程内的线程共享了进程的资源和内存空间。
监控指标诚然是发现问题于微末之时的极佳手段,但指标往往有其表达的极限。在很多情况下,单独看一个黄金指标并不能表征系统的健康程度,反而有可能被其迷惑,进而忽略相关问题。(本文所提及的Linux Kernel源码版本为4.18.10)
在云原生场景下,为了使CPU利用率更高,以及各容器之间不会由于激烈竞争而引起性能下降,容器的资源分配需要更精细化。 中国信通院、腾讯云、FinOps产业标准工作组联合发起的《原动力x云原生正发声 降本增效大讲堂》系列直播活动,腾讯星辰算力平台高级工程师方睿分享了Kubernetes资源拓扑感知调度。 资源竞争与资源感知问题 从CPU的体系结构上来看,现代CPU多采用NUMA架构和方式。 NUMA架构是非对称的,每个NUMA node上会有自己的物理CPU内核,以及每个NUMA node之间也共享L3 Cac
独立ip的优点,在这里就不多赘述了。而网上关于这方面的帖子大多都很朦统,今天写一下避免各位在走我走过的坑。也方便自己日后查看。
先前在社区里分享了关于 golang 行情推送[1]的分享,有人针对 ppt 的内容问了我两个问题,一个是在 docker 下 golang 的 gomaxprocs 初始化混乱问题,另一个是 golang runtime.gomaxprocs 配置多少为合适?
默认情况下,节点上的 Pod 默认共享节点 CPU 池中所有的 CPU核数, 当节点上运行了很多 CPU 密集的 Pod 时,工作负载可能会切换调度到不同的 CPU 核, 这样就导致有些工作负载的性能明显地受到 CPU 缓存亲和性以及调度延迟的影响。 对此,kubelet 提供了可选的 CPU 管理策略,可以实现某些关键 Pod 的静态绑核,避免 CPU 抢占和切换对业务带来的性能损耗。详情参考:控制节点上的 CPU 管理策略 。
田奇,腾讯高级工程师,专注大规模在离线混部,分布式资源管理调度,熟悉Kubernetes,关注云原生大数据、AI。 导语 什么是在离线混部 随着微服务、大数据、人工智能的不断发展,为了满足业务需求,企业的 IT 环境通常运行两大类服务,一类是在线服务,一类是离线作业。 在线服务:往往长时间运行,服务流量存在周期特性,整体资源使用率不高,但是对服务 SLA 却有着极高的要求,如网页搜索服务、电商交易服务等。 离线作业:往往是资源密集型服务,但其可以容忍较高的时延、失败任务重启,如大数据分析服务、机器学习训
简单来说,核绑,或者叫亲和力,就是将某个GPU与指定CPU核心进行绑定,从而尽可能提高效率。
徐蓓,腾讯云专家工程师,深耕云计算、Kubernetes、离在线混部领域,Kubernetes 社区积极贡献者。 背景 随着云原生进入深水区,很多用户希望通过业务混部提升集群利用率。但由于 kernel 限制,部分资源隔离性不强,会导致业务受损。在这种背景下,腾讯云 TKE 团队向 Kubernetes 社区提交了KEP-2570: Support Memory QoS with cgroups v2【https://github.com/kubernetes/enhancements/tree/mas
李剑,携程系统研发部技术专家,负责Redis和Mongodb的容器化和服务化工作,喜欢深入分析系统疑难杂症。
以下案例基于 Ubuntu 16.04,同样适用于其他的 Linux 系统。我使用的案例环境如下所示:
以下内容需要翻{防屏蔽}墙使用,如果没有,可以参考老高的这篇文章搭建一个稳定又极速的翻{防屏蔽}墙环境
前段时间,一位世一大学子骑车的照片传遍全网。 滑动查看学堂路车神(图源:知乎/微博) 骑车带电脑是因为程序没跑完,害怕关闭后盖导致程序中断,三四个小时重新来。 边骑车,边抱着电脑用Linux虚拟环境跑程序, 这让云煮鸡和工友们甚是动容。 大家不禁回想起当年上学时, 通宵开笔记本编译内核,不敢锁屏怕断电断网。 如何在骑车/吃饭/睡觉/约会时, 保证程序运行不断呢? 如果你需要跑程序,却没用上云服务器, 有些满分姿势,可能就要错过了: 无论是长时间的计算任务、编译内核、训练模型, 还是各
一、背景 最初遇到这个问题是去58面试。部门领导是原同事,所以面试比较水。水到什么程度呢? 面试就是走个形式而已,不会不过的。 一面面试官就问了一个问题:“一个请求过来都经过了什么?” 剩下的全是闲
解绑 SSH 密钥对后,您需要重启实例(RebootInstance)使更改生效。
- 高进度时钟。引入高精度时钟。高精度内核提供了更高的时钟精度,可以为实时系统提供更细粒度的时间控制。
根据 Gartner 预测数据显示:2024 年全球 IT 支出预计将达到 5.1 万亿美元,比 2023 年增长 8 %。然而,该机构的另一项调查数据显示:全球数据中心服务器平均 CPU 利用率普遍低于 20%,存在巨大的资源浪费。据测算,以数百万核 CPU 规模的数据中心为例,每提升 1 个百分点的整体资源利用率,每年将节省数千万元的成本。由此可见,提高资源利用率对于降低企业运营成本具有显著的效果。
领取专属 10元无门槛券
手把手带您无忧上云