「技术干货」一篇最通俗易懂的性能调优总结,这篇就够了

2022-12-22 1447阅读

温馨提示:这篇文章已超过600天没有更新,请注意相关的内容是否还可用!

首先,什么是性能调优?

「技术干货」一篇最通俗易懂的性能调优总结,这篇就够了
(图片来源网络,侵删)
「技术干货」一篇最通俗易懂的性能调优总结,这篇就够了
(图片来源网络,侵删)

在谈性能调优之前,先说说计算机的架构。

「技术干货」一篇最通俗易懂的性能调优总结,这篇就够了

如上图所示,简单来说,包括硬件、操作系统、应用程序三部分。 性能调优其实就是调整这些内容,包括硬件、操作系统、应用程序。 其中,这三个方面包括了多项内容。

硬件包括:CPU、内存、磁盘、网卡等...,操作系统包括进程、虚拟内存、文件系统、网络等...,应用我就不多说了,大家懂的,常见的有 Apache、MySQL、Nginx、Memcahed 等。

嵌入式进阶教程分类整理,阅读起来非常方便。 由于内容较多服务器 64g内存,这里先截取一部分。

「技术干货」一篇最通俗易懂的性能调优总结,这篇就够了

需要的朋友可以私信领取[kernel]

那么什么是性能调优呢?

性能调优是对计算机硬件、操作系统和应用程序有相当深入的了解,调整三者之间的关系,最大限度地发挥整个系统(包括硬件、操作系统、应用程序)的性能,不断满足现有的业务需求. 这就是我们所说的性能调优,客官,你明白吗?

第二,为什么需要性能调优?

下面说说为什么需要性能调优。 其实归根结底有两个原因:一个是为了获得更好的系统性能(就是你现有的系统运行的很好,但是如果你优化它可以运行得更好)。 二是通过性能调优满足不断增长的业务需求。 为了帮助大家更直观的理解为什么需要进行性能调优? 我们从三个方面来谈谈:

1、硬件选择

无论是租用服务器还是自己购买服务器,都会遇到一个问题,我们选择什么样的硬件配置服务器。

一般我们是根据应用类型来选择服务器,因为一种硬件配置不可能满足所有的应用需求,因为每个应用的具体需求都不一样。 我们来看看项目实施中的应用类型:

现在大家都知道什么是硬件性能调优了。 根据你的具体应用具体分析,尤其是像MySQL这样的服务器,对CPU、内存、磁盘的要求都比较高。

因此,我们必须选择合适的硬件配置来进行硬件性能调优。 这是网站架构或项目实施首先要解决的问题!

2. 操作系统

有一本书叫《Linux性能调优》(Linux Performance Tuning)。 这本书是老外写的,作者是Fernando Apesteguia。

为什么我们需要性能调优? 他的结论是这样的:

“当一个发行版被打包并运送给客户时,它被设计成与市场上的大多数计算机完全兼容。它是一个相当混合的硬件集合(硬盘驱动器、视频卡、网卡等)。

所以Red Hat、SUSE、Mandriva、Ubuntu等一些发行厂商选择了一些保守的设置来保证安装成功。 “

简单地说,您的操作系统已经运行良好,但您可以对其进行调整以获得更高的性能。 例如,如果您有一个高性能磁盘,但您的操作系统中的某些选项和参数默认情况下未启用,则您无法实现这些高级功能来提高硬盘性能。

我还要说的是操作系统发布版本的选择。 RedHat或CentOS等操作系统常用于项目实施或网站架构,主要为企业应用开发。

Ubuntu等操作系统对桌面有更好的支持,所以在选择发布版本时要小心。 (CentOS在企业中用的比较多)还有一点就是我们一般不会选择最新的release版本,因为刚出来的release版本bug相对较多,所以先不要当“小白鼠”。

比如:CentOS 7刚刚发布,等一段时间稳定后就可以使用了。 目前我们可以选择CentOS 6.4或者6.5。

(不过新版本也有很多好处,新版本增加了很多新特性,也去除了一些已知的bug。对于一些不重要的应用,可以尝试使用新的操作系统)

3.申请

最后,我们不得不说说应用。 我们简单看一下Apache的MPM配置文件:

预叉模型:

 
StartServers 8 
MinSpareServers 5 
MaxSpareServers 20 
ServerLimit 256 
MaxClients 256 
MaxRequestsPerChild 4000 
 

从上面的配置文件可以看出,Apache启动时启用了8个进程,最少5个进程,最多20个进程。 每个进程限制请求数为256个,最多可以接受4000个请求。 限号自动销毁。

工人模型:

 
StartServers 2 
MaxClients 150 
MinSpareThreads 25 
MaxSpareThreads 75 
ThreadsPerChild 25 
MaxRequestsPerChild 0 
 

再看,worker模型的配置文件默认启动2个进程,每个进程可以接受150个请求,每个进程最小线程数25,最大线程数75,默认线程数25 . 每个线程可以接受的请求没有限制为0。

好了,看了上面的配置文件,可以看出默认的Apache配置文件设置比较保守,只适用于一些中小型网站。 如果想获得高性能的Apache服务器,就必须进行性能调优,包括apache的编译。 选项、配置文件优化等,具体调优这里就不细说了。

通过我们上面的讲解,我们将从硬件、操作系统、应用三个方面来谈谈为什么要进行性能调优。 相信大家都已经知道并且明白了。 相信大家都已经迫不及待了。

哎,先别着急,还有很多问题没有弄清楚。 跟大家说说,什么时候需要性能调优?

第三,什么时候需要性能调优?

一般分为两个时期:

为什么这么说? 一般来说,从项目实施到项目上线期间,我们不仅需要准备硬件服务器、安装操作系统、搭建环境,还有一个非常重要的性能优化问题,包括操作系统优化和应用环境优化。 等等,我把上线前的优化称为基础优化,也叫经验优化。

根据做过的项目和工作经验,在上线前对服务器或架构进行基础的性能优化,满足业务需求。

然后是项目上线后的优化。 在上线之前,我们已经进行了基础的性能优化,解决了大部分的性能问题,但毕竟上线前的所有测试都是模拟测试和相关的性能优化。 环境还是有相当大的面积的。

我们要做的第一件事就是在上线后监控项目的性能,包括服务器性能监控和服务器性能监控。

服务器性能监控包括:

CPU使用率、CPU负载、内存使用率、磁盘I/O、磁盘空间使用率、网络流量、系统进程等服务性能监控包括apache、nginx、mysql。

上述架构中的所有服务都需要进行性能监控。 一旦发现问题,我们就必须优化性能。 在这个过程中,我称之为持续优化或者监控优化。 下面具体说一下,性能调优需要做哪些地方?

四、哪些地方需要性能调优?

上面我们只谈到了性能调优的一些主要方面,包括硬件、操作系统和应用程序。

其实还有一部分是程序本身的优化。 开发者根据需求开发的程序本身就需要性能优化,但是对于我们运维人员来说,接触的比较少。 让我们来看看这三个块:

1、硬件

硬件优化一般包括两块:

一般在构建工程时,需要根据具体应用选择硬件配置。 这方面需要一定的运维经验。 刚接触这方面的朋友可能在这方面有点欠缺,不过没关系。 做完一两个项目,硬件配置选择就好了,呵呵。

但是有个不成文的经验,硬件配置越高越好(别说我说了)。

为什么说要根据具体应用选型呢? 一方面,什么样的应用需要什么样的硬件配置,节约成本也很重要。 不该花的钱一定要花在刀片上。 ,也为公司节约成本,最大限度地利用资源。

我们上面说的是项目建设的初期阶段。 如果你幸运的话,你会从项目一开始就在这里。

一般有经验的运维工程师在硬件选型上不会有问题,所以我们在性能优化的时候不考虑硬件。 理论上我们的服务器硬件配置一般不会出现这种性能问题。 .

但是由于我们的业务越来越好,我们在项目创建之初并没有考虑这么大的性能需求(访问量)。 现在有些硬件不能满足业务需求,这时候就需要更换更好的CPU。 、更多内存和更快的磁盘。

至于如何发现硬件是性能瓶颈,这里就不细说了,我们会在后面的文章中详细说明。 最后再来看一张硬件架构图,可以帮助大家更好的理解硬件优化,如下图(Dell R 710架构):

3.申请

最后说说应用优化。 下面我们就讲一个MySQL优化的例子,让大家更直观的理解。

相信大家从通达对硬件、操作系统、应用的详细描述中,对性能优化有了更深的理解。 接下来,我们来谈谈一个重要的问题。 谁来执行性能优化?

第五,谁来进行性能调优?

说到性能优化,我们首先想到的就是运维工程师,他们是来优化的。

其实我想说,片面的性能优化不仅仅是运维工程师的事情。

其实性能优化是团队的事情。 我为什么这么说?

下面我们就来说说吧。 你觉得哪个公司需要做一个项目? 我们以最常见的电子商务商城项目为例。 公司确认,因业务需要,需要在网上建设建材商城。 该项目的具体流程是什么? 可能不是很详细,但大致流程如下:

一个具体应用的开发,需要运营部、产品部、开发部、运维部、QA(测试)、监控等各个部门的参与。

同一个项目(业务)存在性能问题。 不仅仅是运维部门需要性能调优,而是所有部门共同努力解决这个性能问题。 这是必不可少的。

可能出现在产品中服务器 64g内存,也可能出现在程序(*.php)中,也可能是业务本身的问题,也可能是运维环境搭建的问题。 但更多参与性能调优的是开发、运维、测试和监控。

六、如何进行性能调优?

让我们谈谈如何进行性能调优。 具体步骤如下:

一、性能指标

上面说了,我们优化的目的是为了获得更好的性能,那么性能指标有哪些呢? 我们如何衡量它? 衡量一个项目一般有3个指标(这里指的是网站):

2、性能测试

我们的产品或项目(更直白地说,网站)的目的是让用户使用它们。 我们首先要从用户的角度来分析,用户需要关注哪些特性。

对于用户来说,当他们点击一个按钮、链接或者发出一个操作命令,直到系统处理完请求发送给用户并以网页的形式展示出来,这个过程所消耗的时间就是用户的直观印象网站的性能。

这就是我们所说的响应时间。 当响应时间小的时候,用户体验会比较好。 当然,用户体验的响应时间包括个人主观因素和客观响应时间。

在开发建设网站时,我们需要考虑如何将这两部分更好地结合起来,以达到最佳的用户体验。 用户关心的是用户操作对应的时间。

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]