记一次CPU的“升级”评估

收到一家主力卖东西的公司质询,大致意思是:他们正在大量部署的某种型号的服务器平台,由于CPU、主板、内存三大件已经停产,所有决定换代升级为最新的平台。后经推荐选择了同等架构,同等核心数的另一款CPU。但在进行iperf 网络压力测试的时候,发觉新的平台极限网络压力无法突破16GB/s(猜测这个“大批量的”平台是用来做转发主机或者存储可能性较大),对比旧版本的平台为22GB/s,1/3 的性能下降让他们开始怀疑人生了……

继续阅读“记一次CPU的“升级”评估”

Open media vault 开启Wi-Fi热点

之前家里弱电箱一直放着着一套WD的网络硬盘做个人NAS,除了日常一家人的数据共享之外,还可以配合Macbook的时间机器功能,非常便利!眼瞧着用了接近8年的东西,也差不多到了必须要退休的时间了。另外,前几日家里的wifi坏掉了,用着卡到爆的电信的“接入设备”光猫+Wi-Fi撑了几天。这不到了618了,正准备一次性换掉两样东西。但简单的盘算了一下,觉得这次就自己一下DIY搞定。

继续阅读“Open media vault 开启Wi-Fi热点”

CPU各级缓存

被问起CPU的各级缓存,才想起我之前一直没有对应的帖子介绍这块的内容。索性就借着这个机会讲讲吧。

对目前主流的x86平台,CPU的缓存(cache)分为L1,L2,L3总共3级。也有部分的文章中有FLC(first-level cache), MLC(mid-level cache), LLC (last-level cache)的方式区分目前的3级缓存。CPU cache通过比内存(Dram)有更低的时延达到了加速数据读取的效果。

继续阅读“CPU各级缓存”

PMU Event counter的使用状况检测

题目用中文反而有点绕,How to detect whether PMU event counters are occupied?

就是在前几天全民在家办公的时候,有个来自A公司的“大客户”发邮件咨询了类似的问题。事发他们正在开发一套基于PMU (performance monitoring unit)event counter的工具用于监控物理主机的硬件资源使用情况。但他们在开发过程中发现有些客户的某些应用同样也会使用到Event counter,导致Event counter的使用出现冲突,数据不可用。于是自然就需要一种event counter是否正在使用的机制。

继续阅读“PMU Event counter的使用状况检测”

AMD Rome benchmark数据到架构特征推导

这几天,拿到了一套最新的AMD Rome主机:EPYC 7742 @1.5GHz x 2; 16根32GB DDR4-3200内存。这是AMD的顶级配置,即Rome平台目前推出的最高频率的全部128个核心(开启HT显示为256个)且全部开启最高速率内存通道。这次就从几个测试数据推导出AMD的架构特征特别是内存方面的架构特征。

继续阅读“AMD Rome benchmark数据到架构特征推导”

从Linux perf的数据采集说起

挺长时间了,不太情愿地做了一个给蝙蝠集团之一的consultant,即给所谓“精细化资源管理”做支持,该系统通过一个Linux perf为接口的守护工具,不断向控制节点发送当前系统中每一个应用的细粒度资源使用情况,方便从全局入手为应用程序求得最优分配方案。在这个过程中,A-B测试的结果反映这个守护工具会影响到业务的性能——这是意料之中的,对方的认可的心理底线是性能下降3%以内。可问题是对于某个核心应用的特定场景,这个工具居然导致了30%左右的性能下降,这就尴尬了!

继续阅读“从Linux perf的数据采集说起”

一个测试性能不稳定的问题

经常会通过一些通用的测试工具测试一些服务器的性能,个人非常喜欢SPEC的一系列产品,特别是SPECcpu。SPECcpu原理上通过接近30种不同特性的组件的执行时间对服务器的计算吞吐能力进行一个客观的评价。当然,由于计算机的硬件配置不同,不同的程序跑分各有千秋,但有一点也是SPECcpu能够成为业界标准之一的原因是跑分结果的稳定。这么说不夸张:如果其中的一个测试组件两次跑分差距超过5%,请仔细检查环境有没有变化。

继续阅读“一个测试性能不稳定的问题”