Linux系统性能调优

发表于:2021-6-16 09:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:失°疯_失她じ    来源:CSDN

  性能调优思路
  调优思路与方法
  #procfs
  persist in  /etc/sysctl.conf or /etc/rc.d/rc.local
  sysctl operates against a subset of /proc/sys
  #sysfs
  persist in /etc/rc.d/rc.local
  Finding writable files
  find /proc/sys -perm/200 -type f > /tmp /tunables
  性能优化需求的提出
  性能优化需求的提出现象:
  1、前台访问很慢,请帮忙分析一下;
  2、用户对性能很不满意,再不解决就要投诉或退货;
  3、数据库负载很重,请帮忙分析一下;
  4、某某功能打开需要1分钟,请帮忙分析一下。
  进一步深挖问题:
  5、系统性的问题?比如CPU利用率,swap利用率或者IO过高导致的整提性能下降;
  6、功能性问题? 整体性能良好,个别功能时延很长;
  7、新出问题? 什么时候开始的,之前系统有哪些改动?(升级或者管理的资源大量增加);
  8、不规律问题?时快时慢,没有特定规律。
  还有性能快慢的衡量标准是什么?原来是多少秒,现在是多少秒,目标是多少秒?只有上述问题得到了准确的回答,优化工作才能开始。
  Linux性能分析的目的
  1、找出系统性能瓶颈(包括软硬件瓶颈);
  2、提供性能优化的方案(升级硬件?改进系统结构?);
  3、达到合理的硬件和软件配置;
  4、使系统资源使用达到最大的平衡。
  性能分析的步骤
  1、需要系统监控工具和性能分析工具
  #对资源的使用状况进行长期的监控和数据采集(nagios、cacti、ganglia、zabbix)
  #使用常见的性能分析工(vmstat、top、htop、iotop、free、iostat等等)
  # 实战技能和经验积累。
  2、出现性能问题的可能原因
  # 应用程序设计的缺陷和数据库查询的滥用最有可能导致性能问题
  # 性能瓶颈可能是因为程序差/内存不足/磁盘瓶颈,但最终表现出的结果就是CPU耗尽,系统负载极高,响应迟钝,甚至失去响应,宕机了。
  # 物理内存不够实惠实用交换内存,实用swap会带来磁盘io和cpu的开销。
  # 可能造成CPU瓶颈的问题: 频繁执行perl、php、java程序生成动态web;数据库查询大量的where字句、order、by/group by排序.....
  #可能造成内存瓶颈的问题: 高并发用户访问,系统进程多,java内存泄漏......
  #可能造成磁盘IO瓶颈的问题:生成cache文件,数据库频繁更新,或者查询大表....
  影响Linux性能的因素
  系统硬件资源
  1、CPU
  cpu是操作系统稳定运行的根本,CPU的速度与性能在很大程度上决定了系统整体的性能,因此,cpu数量越多、主频越高,服务器性能也就相对越好。
  2、内存
  内存的大小也是影响linux性能的一个重要因素,内存太小,系统进程将被阻塞,应用也将变得缓慢,甚至失去响应;内存太大,导致资源浪费。Linux系统采用了物理内存和虚拟内存两种方式,
  虚拟内存虽然可以缓解物理内存的不足,但是占用过多的虚拟内存,应用程序的性能将明显下降,要保证应用程序的高性能运行,物理内存一定要足够大。
  可能出现内存性能瓶颈的应用有redis内存数据库服务器、cache服务器、静态服务器等,对于这类应用要把内存大小放在主要位置。
  3、磁盘I/O性能
  磁盘的I/O性能直接影响应用程序的定能,在一个有频繁读写的应用中,如果磁盘I/O性能得不到满足,就会导致应用停滞。好在现今的磁盘都采用了能多方法来提高I/O性能,比如常见的磁盘
  raid技术。raid0、1、5、0+1等。
  4、网络带宽
  网络带宽也是影响性能的一个重要因素,低速的、不稳定的网络将导致网络应用程序的访问阻塞,而稳定、高速的网络带宽,可以保证应用程序在网络上畅通无阻的运行。幸运的是现在的网络一
  般都是千兆带宽或光纤网络。带宽问题对应用程序性能造成的影响也在逐渐降低。
  组建网络时,如果局域网内有大量数据传输需求(Hadoop大数据业务、数据库业务),可采用千兆、万兆网络接口,针对每个服务器,如果每个单网卡效率不够,可采用双网卡绑定技术,提高网
  卡数据传输带宽和性能。
  系统性能分析工具
  性能调优分析工具
  tuned工具
  centos安装方法:
  # yum -y install tuned
  # rpm -ql tuned  //检索tuned在什么位置
  # cd /usr/lib/tuned
  tuned功能:
  balanced :负载均衡   hpc-compute    network-throughput :网络吞吐量  throughput-performance:吞吐量-高性能
  desktop :桌面   latency-performance :低延时-高性能 powersave:省电模式        virtual-guest 优化虚拟化客户机
  functions  network-latency  网络低延时     virtual-host 优化虚拟化主机
  静态调优方法:
  tuned-adm list  // 列出所有的默认的调优策略
  tuned-adm active  //查看现在生效的调优策略
  tunde-adm recommand  //查看tuned目前推荐使用的策略
  tuned-adm profile 方案名称   // 修改调优方案,使用新的调优策略
  tuned-adm off   //关闭调优策略
  例:把网络调低延时
  # tuned-adm profile network-latency
  动态调优方法:
  首先要准备一块模板。
  # cp -r throughput-performance/ yzy //复制到yzy文件下,编辑yzy目录下的tuned.conf文件
  # vim tuned.conf
  iostat工具
  # iostat
  Linux 3.10.0-862.el7.x86_64 (localhost.localdomain)     2020年11月19日     _x86_64_    (4 CPU)  从左往右  内核版本   日期    框架    CPU个数
  avg-cpu:  %user   %nice %system %iowait  %steal   %idle   从左到右   //用户占用率
  0.07    0.02       0.12     0.01         0.00       99.78
  #iostat -d 1    //实时监控 -d代表disk磁盘  1为1秒 后面加一个5的话就是连续执行5次停止。 iostat -d 1 5 /dev/sda
  系统性能分析标准
  性能调优的主要目的是使系统能够有效的利用各种资源,最大化的发挥应用程序和系统之间的性能融合,是应用高雄啊、稳定的运行。但是,衡量系统资源利用率好坏的标准没有一个严格的定义,针对不同的系统和应用也没有一个统
  一的说法。因此,这里提供的标准其实是一个经验值,下面给出了判断系统资源利用状况的一般准则:
  其中:
  %user:表示cpu处在用户模式下的时间百分比(占用率)
  %sys:表示cpu处在系统模式下的时间百分比
  %iowait:表示cpu等待输入输出完成时间的百分比
  swap in:即si,表示虚拟内存的页导入。即从swap disk交换到ram。
  swap out:即so,表示虚拟内存的页导出,即从ram交换到swap disk。
  磁盘调度算法
  deadline 最终期限 500ms 下一个IO 更适合小IO
  AS 猜想时间 6ms 500ms 下一个IO是否连续 大IO
  cfq 完全公平原则 默认 不好也不坏

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号