高楼的性能工程实战课-011-打开首页--一个案例带你搞懂硬件设施的性能问题

打开首页--一个案例带你搞懂硬件设施的性能

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
    修改完成。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值