CPU与内存子系统性能调优

调优思路
性能优化的思路如下:

如果CPU的利用率不高,说明资源没有充分利用,可以通过工具(如strace)查看应用程序阻塞在哪里,一般为磁盘,网络或应用程序自己的业务逻辑有休眠或信号等待,这些优化措施在其它章节描述。
如果CPU利用率高,可以选择更好的硬件,优化硬件的配置参数来适配业务场景,或者通过优化软件来降低CPU占用率。
根据CPU的能力配置合适的内存条,建议内存满通道配置,发挥内存最大带宽:一颗鲲鹏920处理器的内存通道数为8,两颗鲲鹏920处理器的内存通道数为16;建议选择高频率的内存条,提升内存带宽:鲲鹏920在1DPC配置时,支持的内存最高频率为3200MHz。
介绍
top是最常用的Linux性能监测工具之一。通过top工具可以监视进程和系统整体性能。

命令参考举例:

命令

说明

top

查看系统整体的CPU、内存资源消耗。

top执行后输入1

查看每个CPU core资源使用情况。

top执行后输入F,并选择P选项

查看线程执行过程中是否调度到其它CPU core。

top -p $PID -H

查看某个进程内所有线程的CPU资源占用。

安装方式
系统自带,无需安装。

使用方法
使用top命令统计整体CPU、内存资源消耗。
在这里插入图片描述

CPU项:显示当前总的CPU时间使用分布。
us表示用户态程序占用的CPU时间百分比。
sy表示 内核态 程序所占用的CPU时间百分比。
wa表示等待IO等待占用的CPU时间百分比。
hi表示硬中断所占用的CPU时间百分比。
si表示软中断所占用的CPU时间百分比。
通过这些参数我们可以分析CPU时间的分布,是否有较多的IO等待。在执行完调优步骤后,我们也可以对CPU使用时间进行前后对比。如果在运行相同程序、业务情况下CPU使用时间降低,说明性能有提升。

KiB Mem:表示服务器的总内存大小以及使用情况。
KiB Swap:表示当前所使用的Swap空间的大小。Swap空间即当内存不足的时候,把一部分硬盘空间虚拟成内存使用。如果当前所使用的Swap空间大于0,可以考虑优化应用的内存占用或增加物理内存。
在top命令执行后按1,查看每个CPU core的使用情况。
通过该命令可以查看单个CPU core的使用情况,如果CPU占用集中在某几个CPU core上,可以结合业务分析触发原因,从而找到优化思路。
在这里插入图片描述

选中top命令的P选项,查看线程运行在哪些CPU core上。
在top命令执行后按F,可以进入top命令管理界面。在该界面通过上下键移动光标到P选项,通过空格键选中后按Esc退出,即可显示出线程运行的CPU核。观察一段时间,若业务线程在不同NUMA节点内的CPU core上运行,则说明存在较多的跨NUMA访问,可通过NUMA绑核进行优化。

在这里插入图片描述

在这里插入图片描述

使用top -p $PID -H命令观察进程中每个线程的CPU资源使用。
“-p”后接的参数为待观察的进程ID。通过该命令可以找出消耗资源多的线程,随后可根据线程号分析线程中的热点函数、调用过程等情况。

在这里插入图片描述
三、介绍
Perf工具是非常强大的Linux性能分析工具,可以通过该工具获得进程内的调用情况、资源消耗情况并查找分析热点函数。

命令参考举例:

命令

说明

perf top

查看当前系统中的热点函数。

perf sched record – sleep 1 -p $PID

记录进程在1s内的系统调用。

perf sched latency --sort max

查看上一步记录的结果,以调度延迟排序。

安装方式
以CentOS为例,使用如下命令安装:

yum -y install perf

使用方法
通过perf top命令查找热点函数。
该命令统计各个函数在某个性能事件上的热度,默认显示CPU占用率,可以通过“-e”监控其它事件。

Overhead表示当前事件在全部事件中占的比例。
Shared Object表示当前事件生产者,如kernel、perf命令、C语言库函数等。
Symbol则表示热点事件对应的函数名称。
通过热点函数,我们可以找到消耗资源较多的行为,从而有针对性的进行优化。
在这里插入图片描述

收集一段时间内的线程调用。
perf sched record命令用于记录一段时间内,进程的调用情况。“-p”后接进程号,“sleep”后接统计时长,单位为秒。收集到的信息自动存放在当前目录下,文件名为perf.data。
在这里插入图片描述

解析收集到的线程调度信息。
perf sched latency命令可以解析当前目录下的perf.data文件。“-s”表示进行排序,后接参数“max”表示按照最大延迟时间大小排序。
在这里插入图片描述
四、优化方法:
原理
局部性原理分为时间局部性原理和空间局部性原理:

时间局部性原理(temporal locality):如果某个数据项被访问,那么在不久的将来它可能再次被访问。
空间局部性原理(spatial locality):如果某个数据项被访问,那么与其地址相邻的数据项可能很快也会被访问。
CPU将内存中的数据读到CPU的高速缓冲Cache时,会根据局部性原理,除了读取本次要访问的数据,还会预取本次数据的周边数据到Cache里面,如果预取的数据是下次要访问的数据,那么性能会提升,如果预取的数据不是下次要取的数据,那么会浪费内存带宽。

对于数据比较集中的场景,预取的命中率高,适合打开CPU预取,反之需要关闭CPU预取。目前发现speccpu和X265软件场景适合打开CPU预取,STREAM测试工具、Nginx和数据库场景需要关闭CPU预取。

修改方式
按照进入BIOS界面的步骤进入 BIOS ,然后在BIOS的如下位置设置CPU的预取开关。
在这里插入图片描述

在这里插入图片描述

  • 24
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的体育馆管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本体育馆管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效,达到事半功倍的效果。此体育馆管理系统利用当下成熟完善的SpringBoot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线选择试题并完成答题,在线查看考核分数。管理员管理收货地址管理、购物车管理、场地管理、场地订单管理、字典管理、赛事管理、赛事收藏管理、赛事评价管理、赛事订单管理、商品管理、商品收藏管理、商品评价管理、商品订单管理、用户管理、管理员管理等功能。体育馆管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:体育馆管理系统;SpringBoot框架;Mysql;自动化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值