admin管理员组文章数量:1658599
打开首页--一个案例带你搞懂硬件设施的性能
1. 看架构图:如果有工具直接展示更好,如果没有工具,建议我们画一画,方便以后分析,不要自信认为自己能记住框架的所有组件。
2. 顺便看下代码逻辑,从代码中查看这个接口实现的逻辑,在做哪些动作,以及后续的链路。
3. 确定压力数据:
这里我们就要思考一下了:如果想要执行一个场景,并且这个场景可以压出打开首页接口的最大 TPS,我们应该怎么设置压力工具中的线程数、递增策略和持续执行策略呢?
可以先拿10个线程试运行一下,一个线程最大达到 TPS 40TPS
根据线程递增过程中TPS的变化趋势推测CPU使用率100%的时候,TPS最大可以达到多少 800TPS/40TPS=20 线程数
4. 通过压力工具中的曲线,判断瓶颈存在
5. 通过SkyWalking拆分了响应时间段
6. 在确定了响应时间消耗点之后,我们又开始了两个阶段的分析:
第一个阶段的证据链是从现象开始往下分析的,
因为 st cpu 是指宿主机上的其他应用的消耗导致了此虚拟机的 cpu 资源被消耗,所以,我们去宿主机上去查了其他的虚拟机。
这里我们要明确 CPU 资源应该用到什么样的程度,在发现了资源使用不合理之后,再接着做第二阶段的判断。
在第二阶段中,我们判断了 CPU 运行模式。
在物理机中,如果我们自己不做主动的限制,CPU 的消耗是没有默认限制的,所以我们才去查看 CPU 的运行模式。
【了解】cpu的运行模式
运行模式 解释
ondemand 按需调节。这是内核提供的功能,实现了动态频率调整,平时低速运行。当系统负载提高时,自动提高频率。这种模式除了不是很强大之外,似乎看不出什么缺点。如果是做性能的话,不建议用。
interactive 交互模式。以CPU负载来调整运行频率。直接上最高频率,然后慢慢降低。如果是做性能的话,不建议用。
conservative 保守模式。类似ondemand,但调整速度缓慢,可以省电。如果是做性能的话,不建议用。
smartass 聪明模式。交互模式和保守模式的升级版,在保证不太差的响应前提下,做到了更加省电。如果是做性能的话,不建议用。
performance 性能模式。只有最高频率,性能没得说,只是耗电量大。如果是做性能的话,肯定强烈建议用!
powersave 省电模式。性能差,省电, CPU可以存活时间长点。如果是做性能的话,反正不建议用。
userspace 用户控制模式。你可以自己写代码决定CPU频率。如果是做性能的话,反正不建议用。
Hotplug 热插拨模式。类似ondemand,关屏的时候,会关掉一个cpu,较省电。如果是做性能的话,反正不建议用。
~]# cpupower frequency-info
analyzing CPU 0:
no or unknown cpufreq driver is active on this CPU
CPUs which run at the same hardware frequency: Not Available
CPUs which need to have their frequency coordinated by software: Not Available
maximum transition latency: Cannot determine or is not supported.
hardware limits: Not Available
available cpufreq governors: Not Available
Unable to determine current policy
current CPU frequency: Unable to call hardware
current CPU frequency: Unable to call to kernel
boost state support:
Supported: yes
Active: yes
~]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor=================【实际运行的时候这里找不到文件】
设置物理机的cpu运行模式:
~]# cpupower -c all frequency-set -g performance
Setting cpu: 0
Error setting new values. Common errors:
- Do you have proper administration rights? (super-user?)
- Is the governor you requested available and modprobed?
- Trying to set an invalid policy?
- Trying to set a specific frequency, but userspace governor is not available,
for example because of hardware which cannot be set to a specific frequency
or because the userspace governor isn't loaded?
解决办法:
1. 在/etc/default/grub中加入 GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=disable"
2. 命令行输入:
grub2-mkconfig -o /boot/grub2/grub.cfg
或者 grub-mkconfig -o /boot/grub/grub.cfg
3. 重启机器 reboot(有些机器需要在bios里关掉超线程以及Pstate,Cstate,有些不用,可以试一试。)
4. 重启后输入命令:
cpupower frequency-info --governors
cpupower frequency-set -g conservative
5. 可以用cpupower的命令修改频率了
cpupower frequency-set -f 1.6G
修改完成。
版权声明:本文标题:高楼的性能工程实战课-011-打开首页--一个案例带你搞懂硬件设施的性能问题 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1729813524a1213621.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论