1. 您的位置:首页 > 站群资讯 >内容

网站建设_nginx性能调优(性能调优从哪几个方面入手)

性能调优攻略性能优化是一个大话题。在《由12306.cn谈谈网站建设性能技术》中,我从商业和设计的角度讨论了一些可用的技术及其优缺点。今天,我想从一些技术细节来谈论性能优化,主要是一些代码级的技术和方法。这篇文章的内容是我的经验和知识,不一定正确。我希望你能纠正和补充它。

在开始这篇文章之前,你可以看一下Coolshell发布的《代码优化概要》。本文主要告诉您,要优化——,您必须首先找到性能瓶颈!但在谈论如何定位系统性能的瓶子之前,请让我谈谈系统性能的定义和测试,因为没有这两样东西,下面的定位和搜索引擎优化就无法讨论网站建设

一、系统性能定义

让我们来谈谈系统性能是如何以及是什么。这个定义非常关键。如果我们不知道什么是系统性能,那么我们就无法定位它。我见过很多朋友认为这很容易,但是当你仔细问的时候,他们没有一个系统的方法,所以在这里我想告诉你如何系统地定位性能。总的来说,系统性能是两件事:

1.吞吐量,吞吐量。也就是说,每秒可以处理的请求和任务数。

2.延迟,系统延迟。也就是说,系统在处理请求或任务时的延迟。

一般来说,系统的性能受这两个条件的制约。例如,我的系统可以承受一百万个并发,但是系统的延迟超过2分钟,所以这一百万个负载是没有意义的。系统延迟非常短,但是吞吐量非常低,这也是没有意义的。因此,一个好系统的性能测试必须同时受到这两个条件的影响。有经验的朋友必须知道这两件事之间的关系:

吞吐量越大,延迟越差。由于请求量太大,系统太忙,响应速度自然会很低。

延迟越好,支持的吞吐量就越高。因为延迟很短,处理速度很快,所以可以处理更多的请求。

二、系统性能测试

经过以上描述,我们知道要测试系统的性能,我们需要收集系统的吞吐量和延迟。

首先,您需要定义延迟的值。例如,网站系统的响应时间必须在5秒之内(对于一些实时系统,可能需要将其定义得更短,例如在5毫秒之内,这是根据不同的服务定义的)

其次,开发性能测试工具,一个用于制造高强度吞吐量,另一个用于测量延迟。对于第一个工具,你可以参考“十个免费的网络压力测试工具”。您可以测量代码中的延迟,但这将影响程序的执行,并且只测试程序的内部延迟。真正的延迟是在整个系统中计算的,包括操作系统和网络的延迟。您可以使用Wireshark来掌握网络数据包并对其进行测量。请考虑如何使用这两种工具。

最后,开始性能测试。您需要不断提高测试的吞吐量,然后观察系统的负载。如果系统能够承受,请观察延迟值。通过这种方式,您可以找到系统的最大负载,并且可以知道系统的响应延迟。

多说一点,

关于延迟,如果吞吐量很小,这个值估计非常稳定。当吞吐量越来越大时,系统的延迟会出现非常严重的抖动。因此,当我们测量延迟时,我们需要注意延迟的分布,也就是说,有些百分比在我们允许的范围内,有些百分比超出了,有些百分比是完全不可接受的。或许,平均延迟符合标准,但只有50%在我们可接受的范围内。这也说不通。

关于性能测试,我们还需要定义一个时间段。例如,它在一定的吞吐量下持续15分钟。因为当负载到达时,系统将变得不稳定,一两分钟后,系统将稳定。此外,在这种负载下,您的系统也有可能在最初几分钟内表现正常,然后变得不稳定甚至崩溃。因此,这将需要一些时间。该值称为峰值限值。

性能测试也需要浸泡测试,即在一定的吞吐量下,系统可以连续运行一周甚至更长时间。该值称为系统正常运行的负荷极限。

性能测试中有很多重要的事情,比如突发测试。我们不能在这里详细讨论,但是我们只讨论一些与性能调优相关的事情。总之,性能测试是一项微妙而又累人的任务。

第三,定位性能瓶颈

通过以上准备,我们可以测试系统的性能。在调优之前,让我们来谈谈如何找到性能瓶颈。我见过很多朋友认为这很容易,但是当你仔细问的时候,他们没有一个系统的方法。

3.1)检查操作系统负载

首先,当我们的系统有问题时,我们不应该急于调查我们的代码,这是没有意义的。我们首先需要看到的是操作系统的报告。查看操作系统的CPU利用率、内存利用率、操作系统的输入输出、网络的输入输出、网络链接的数量等等。Windows下的Perfmon是一个非常好的工具,在Linux下有很多相关的命令和工具,比如SystemTap、潜伏细胞、vmstat、sar、iostat、TOP、tc

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。如若转载,请注明出处:http://www.botadmin.cn/changjianwenti/23841.html