魏孝文帝教你提proposal

艰难的Proposal每个人都有独自一人面对全世界的时候,即便你是魏孝文帝拓跋宏。 北魏太和十七年,承平日久的北魏都城里正在酝酿一件大事——迁都。 自天兴元年拓跋圭定都平城起,北魏在此地经营了九十余年。此时的平城,早已是北魏王公贵族富商巨贾的乐土。 而拓跋宏却不想在这呆了,对这位一心思慕华夏风仪的少数民族首领来说,城狭地偏的平城终究不是久居之地。 迁都,迁往洛阳,只有住在这座每块城砖上都写满...

Continue Reading →

测来测去1:DPDK no-huge模式性能对比测试

no-hugeDPDK使用大页内存作为性能优化的一个手段。但大页内存在云计算等环境下可能会出现内存资源浪费的情况,作为售卖资源的云服务商,希望能找到更充分的内存资源利用的方法。在此背景下,DPDK引入了no-huge机制,即不使用hugepage,从而解放更多的系统资源。 那么这种配置下DPDK性能会下降多少呢?还是需要实际定量测试一下。 测试平台1234567891011121314151...

Continue Reading →

云计算的发展需要向社区街道管理看齐

服务云计算本质上是一种服务。由各种不同的组件为租户提供计算、网络和存储服务。 用户对这些服务的要求除了功能之外,还有安全性、可用性、性能、成本、迁移难度、SLA等一系列要求。 与之类比,社区街道作为一个完整的功能单元,各个基层职能部门,也为社区内的居民提供各类生活服务。 如何做好基层工作,是需要费一番脑筋的。 服务网格下图是我在北京中关村某社区拍到的当地派出所的“网格团队”成员和工作职责。 ...

Continue Reading →

几句话说清楚3:什么是False Sharing

不用图以为又要见到那几张网上已经用烂了的图了是不是?这次我们不用图来讲这个事。 Cache line是64个Byte,我们经常操作(R/W)的变量是4个或者8个Byte。 于是一个Cache line里就可以放好几个变量,比如说其中有两个变量A和B。 当CPU0写入A,CPU1写入B的时候,就发生了False Sharing,就这么简单。 所谓“假共享”,其实就是你以为你俩自己操作自己的变量...

Continue Reading →

几句话说清楚2:CPU缓存的组织形式

缓存缓存和其他存储形式在功能形式上没有太大区别,均是输入一个地址,还你一个数据。但作为一个缓存,要考虑如何在有限的容量下保证较高的命中率以及查找效率(相关阅读)。这个问题从本质上来说,就是如何建立缓存地址与内存地址的映射关系。 组织形式缓存按照一个Cache Line的长度(主流长度为64Byte)为粒度来组织: 各种不同的映射形式就是在决定内存中某一个特定地址范围内的数据,具体可以放到哪...

Continue Reading →

XXV710网卡Target Link Speed探秘

发现用lspci指令查看PCIe设备,特别是网卡设备经常会查看LnkCap及LnkSta字段,以确保网卡运行在期望的PCIe总线类型/带宽上,从而保证网卡的性能。 最近拿到一块XXV710-DA2,插上之后简单看了一下状态。LnkCap和LnkSta均显示为Speed 8GT/s,Width x8,没太大问题。这时候无意中瞥见LnkCtl2中Target Link Speed显示为2.5GT...

Continue Reading →

程序员和工厂劳工有何不同

如今流行的一个说法是,现在的程序员与工业时期的工厂工人并无二致。均是富集于人口密集的城市、均是超时劳动、均是遭受资本家的盘剥、均是一架大机器上的螺丝钉,在超过“劳动年龄”之后被弃如敝屣。基于这些相似点,有些人得出结论,程序员不过是这个时代的“无产阶级”,和以前的流水线工人,纺织厂女工属于同一社会分工和定位。是否当真如此,这个问题值得仔细推敲一下。 生产资料个人所处的社会阶层,取决于他能让属于...

Continue Reading →

几句话说清楚1:为什么CPU L1缓存容量始终很小

问题CPU缓存是影响软件性能的关键因素之一。在做性能调优时,经常关注的一个指标就是缓存的命中率(hit rate)。缓存之所以不会达到100%的命中率,是因为缓存容量有限,不能将内存中的全部数据都同时放入其中。只能将当前最热,相邻最近的数据存入,同时还受多核CPU中缓存同步机制的影响。奇怪的是,CPU的制程、晶体管数量、核心数量一直都在增加,但L1缓存的容量始终维持在一个相当低的水平。为什么...

Continue Reading →

© 2020 DecodeZ All Rights Reserved. 本站访客数人次 本站总访问量
Theme by hiero