性能调优思路
调优思路与方法
#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),我们将立即处理