IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:Benchmarking

共 3 篇相关文章

IT 累计浏览 1,377

Yahoo的流计算引擎基准测试

这篇来自雅虎工程博客的文章,对他们团队开源的流计算基准测试(streaming-benchmarks)进行了详细解读。测试背景是雅虎生产环境中大规模使用Storm,但面对Flink、Spark Streaming等新兴框架的竞争,需要一份更贴近真实世界场景的性能对比报告。 基准测试设计了一个典型用例:从Kafka读取JSON事件,处理后写入Redis时间窗口计数。核心对比聚焦于三大主流引擎:Apache Storm、Apache Flink 和 Apache Spark Streaming。 测试的关键结论非常明确:Storm 0.10.0 和 Flink 0.10.1 均展现出亚秒级的低延迟特性,其中Storm在99%的百分位数上取得了最低的延迟表现,体现了其在实时性上的传统优势。Flink在保持低延迟的同时,也提供了较高的吞吐量。相比之下,Spark Streaming 1.5.1 能够支持很高的吞吐量,但代价是其端到端延迟明显高于前两者。 文章也坦诚地指出,早期版本的Flink基准测试代码存在一个调试残留问题,这提醒读者在参考任何性能数据时,都需要关注其测试条件与代码版本的严谨性。整个测试的价值在于,它并非空谈理论,而是基于一个与雅虎内部使用场景高度相似的开源基准,为不同流处理技术在延迟与吞吐量这对核心指标上的权衡,提供了直接的参考依据。

IT 累计浏览 3,233

每个程序员都应该知道的一些访问时延值

这篇文章分享了一组程序员最好烂熟于心的参考值——从CPU各级缓存、主存、固态硬盘到跨地域网络请求的访问延迟。这组经典数据最早源自谷歌传奇工程师 Jeff Dean 的演示文稿,它用具体数字将抽象的“快”与“慢”量化成了直观的层次。 例如,从L1缓存访问只需几纳秒,而访问一次固态硬盘则需要几万纳秒,一次跨大西洋的网络往返可能要一百多万纳秒。这之间几个数量级的差异,直接决定了我们在设计算法、选择存储方案和搭建分布式系统时的性能天平该如何倾斜。文章作者不仅呈现了数据,还提供了社区整理的精炼版链接,并讲述了关于 Jeff Dean 的著名轶事,让这组数据多了几分传奇色彩。 在编程世界里,凭感觉优化往往事倍功半。而将这些延迟数字内化于心,能帮助你在架构层面做出更明智的判断,比如何时该引入缓存、数据该如何分区、或是如何设计一个能容忍网络延迟的服务。有了这些量化概念,做技术决策时才能心中有“数”。

IT 累计浏览 3,620

Linux kernel 性能压力下的优化实践(V0.1)

这篇讲的是Linux内核在高压场景下,如何通过一系列调优来提升性能。作者从一次线上服务的CPU使用率波动事件切入,发现常规的监控工具难以准确定位瓶颈。随后,文章详细拆解了针对进程调度(CFS)、内存回收(kswapd)以及网络协议栈(TCP)的几项关键调整,例如通过修改sysctl参数来减少锁竞争、调整内核预读窗口优化磁盘I/O,并给出了优化前后的部分数据对比。 有趣的是,作者在文末坦率地附上了发布后收到的微博质疑链接。这场讨论的核心在于,部分优化参数的修改是否具有普适性,以及在生产环境中直接应用的潜在风险。文章与其说是一份“标准答案”,不如说是一次公开的实践复盘,它展现了理论调优与现实生产环境复杂性的碰撞。 对于读者而言,这篇文章的价值不仅在于提供了几条具体的排查思路和可试的调优选项,更在于它示范了如何面对技术方案的争议——将结论交由社区审视,在讨论中修正认知,这本身也是技术迭代的一部分。