Daily reflection|腾讯云测评第一阶段汇报
小组汇报
1.groupA
总体思路:结论-猜想-验证
tencent方面点评讲解:
vector:
1.缓存命中率:unixbench是哪一个cache
2.基础分析的正确性:
运行的时候和查的不一样,真假的参数,不一定是真实情况
eg.超线程开没开
other:
1.amd的芯片结构,8个core共享l3,用了一个内存总线,干扰不到旁边的core,极限带宽50G
跨ccx性能
2.io密集型:实际是内存io密集型。写到磁盘有很多路径,裸io?要监控io层面的
v:现象-验证
应用层面验证超线程: 开了超线程:4x1.4 非4x2(与单个分数对比比例)
使stream配置成尽可能命中L3的大小。
查看栈顶也需要必须只查看L3。
v:根据的依据
如何得到母机实际分配的配置?答:没有办法!只能猜想-求证。例如:看读不用存储的时间
v:复盘
从繁杂的信息里提取出正确,有用的信息来将之后的结果串联起来
v:不太推荐自己做场景验证:是否真正的评测了你想要评测的?
外:业界内的benchmark,通用的benchmark
v:所谓场景,即真正场景,去使用真正的软件去测试(mongoDB,雅虎wireCSB)
用合适的模型去验证业务场景
题外话:Redis为什么做成单线程?
v:分析某一项是否对业务有价值例如上下文对业务到底有什么影响?差的地方到底会影响什么业务,是否值得被重点谈及
v:用BCC,perf查证过程是否符合预期
1.查看汇编指令
2.perf kernel的函数调用情况
v:SA3对网络,软硬中断做了优化。
是否离散到了各个CPU
DPDK: offlad CPU负荷到网卡
v:网络中断! 黑书目录
v:分析可以自己制造工具去验证猜想
cpu intel 的熔断的黑盒测试思路
2.groupB
1.排除抖动?稳定有10%变化。
尽管有抖动,但是也是稳定性的考量因素,为什么会稳定?
2.mbw——思路,128MB内存对齐的问题 o-2优化
有一个猜测:memcpy函数与L2cache的值的大小有关?
看到的一定是实际L2CHAE的值吗?——利用定向命中,验证运行时是否调用了L2cache
工具问题的真实还是准确性?以及使用cvm的优化技巧,阿里云CVM最佳实践。intel熔断时间的分析
dumb怪异数据,没有解释。工具有可能有问题。
3.perf,bcc分析工具的使用
接近内核操作,perf查看内存操作函数的占比。
利用 perf -g-a
per,bcc解释原因。top down,自顶向下拆解问题,拆解成四五个点,利用perf分析。
4.上下文切换的理解
原理,以及跟它什么有关系。redis。
进程优先级(绑核)只允许在里面调度。双向信息:自我挖掘的能力。
英文goolgle一下。
搜paper2020,研究怎么绑核
5.stream:
pmu是不是正如你所想?反编译的工具去作证?汇编
o几的优化o0,o3都要测。
实际上,循环展开和内存没有什么影响。
可以查看一下simd指令,
6.ppt制作,结果的展现:
要统一的纬度对比,二维的表格,方便展现差异。耗时访问的散点图,
图的度量以及坐标范围要一致方便看差异,以免误导
差异点都要有东西。
7.上下文切换
测试上下文切换的具体耗时。
unixbench的指令。
8.其他
指令集:不影响编译器判断,就不会有什么很大的差异
阿里云腾讯云采用的都是红暴:qm虚拟化技术
虚拟化开销是公平的。
点评以及下一阶段部署
1.内行平常的知识我们可能没有学习到,应该善于自己搜寻答案,而不是等着喂饭
2.提供的数据基础是否正确,有可能母机给子机提供的都是虚假的,抱着怀疑的态度面对所有数据,对问题的分析新的探寻。深入一两个点,花力气去探究
3.CPU硬件的知识
业务场景开始->影响点->特定工具测试->先去了解工具,再去测试->对于数据的处理(数学运用)->特异点的具体分析(内核,应用层面)
4.去知道自己想到得到什么,再去做事情->基础知识,特定知识微效!!!
5.技能型?知识型?去努力推进进度,去知道自己不知道,即学即用
6.next
- NUMA绑核
- 测试绑核和不绑核的上下文切换
- 增加一个机型Intel SA3,要测网络,分析dump等问题
- 网卡上的优化
- 要集群测试,要有不同的选择,click house的集群能力是差的,MySQL一定要经过大厂的改进才能有好集群
- 买它有什么优点?如买它解决集群
- 用什么测评工具(发现一些可能需要付费但是有用的工具)去解决问题
个人感悟以及我学到了什么
这一次,也算是阶段性工作的收尾,最近其实也有好多事情,要期末考试,4个大作业,考六级,找实习,准备考研等等很多很多的选择和信息涌入我的脑子。每周的组会像是一个ddl去督促我去完成这样的一个测评项目,开始我对于这个项目的期待承接在对腾讯公司的好奇,好奇这样一个互联网的大厂是怎么运作一个项目的,以及也是想尝试测评这一份工作,感觉确实很有趣,虽然我这次表现的不是很好,我负责是内存拷贝速率(带宽)测试用的是mbw工具,首先对于数据的分析没有分析出来,重点的分析部分很草率,这非常让人质疑工具的真实性,像v说的那样,我还负责了ppt,但是ppt也被说了一顿,(没错,我承受了80%的伤害),首先是对比不够明显直观以及可能样式比较复杂等等吧。
不知道是我比较乐观还是咋地,就是对于v和其他人指出的问题,我的第一反应其实是有种顿悟的感觉,就是虽然犯错了,但是我从这里面确实学到了我之前没有想到以及至少他们认可了这个问题点,就是没有解决但是可以继续解决下去,还是有一种收获满满的感觉,我也知道自己的实力还不够,就是对很多基础知识例如计组(服务器测评用的比较多的),遇到问题其实但就知识点来讲可能只需要在网上查找一下就可以,但是当你深入分析,确实发现一个全局观其实还是很重要的,也就是所谓的基础知识吧。对组长和自己的组员我都从他们身上学习到了技巧也好,一些风格也好,对我的技术上面的成长也算小小提升了一个台阶。
每一次去腾讯都感觉收获很多,就像我准备去考研,我是觉得,考研能够让我多出一些时间去成长,找到自己想要的东西(因为我现在还不够清晰,然后我这个性格又会在不清晰的时候犹豫不决),后面去腾讯汇报,看到周围去腾讯实习的人也好,发现其实在大厂的公司里,看到很多很优秀的人,对一个人影响也是很大的,他们也有规划以及对新人的整个技术体系,全方位的素养也好,例如v的书单。不管怎么样,至少有一点是共识,那就是不断的学习进步,吸收知识看书也好,看paper也好,都啊哟吸收归纳和反思,并且坚持(不要像我一样好久没写博客QAQ)
感觉大三上到大三下是我很纠结,也可能是大学生涯的一个转折点,选择点吧。像v说的那样,知道自己不知道什么比不知道自己不知道什么更好。加油吧。世界上有这么多优秀的人,优秀的想法,自己要努力希望自己能一步一步看到这个世界不一样的一面!
备忘录:我暂时不太明白的地方:
- cpu拓扑结构???
- NUMA绑核
- 网络需要用两台机器控制变量去测试嘛?
- smid指令
- CPU的熔断具体过程,分析流程
- PMU,PERF,BCC指令
- 内存分析,根据熔断过程,写程序保证命中哪一个cache验证原因在哪里
- 操作系统好好看看,计组
链接: [smid指令](https://www.google. com/search?q=simd%E6%8C%87%E4%BB%A4&oq=simd&aqs=chrome.1.69i57j0i512l8j46i512.2607j0j15&sourceid=chrome&ie=UTF-8).
https://www.cnblogs.com/ncdxlxk/p/10126418.html
链接: linux下把进程/线程绑定到特定cpu核上运行.