专业的网站开发建设公司做网站之前要准备什么
news/
2025/9/23 2:07:37/
文章来源:
专业的网站开发建设,公司做网站之前要准备什么,wordpress child theme,wordpress链接尾缀一、 什么是性能调优#xff1f;
这个系统好慢、网站又打不开了#xff0c;太卡了#xff0c;又没响应了#xff0c;相信大家都遇到过用户的这种抱怨#xff0c;此时#xff0c;说明我们的应用系统出现了性能问题#xff0c;那么怎么办呢#xff0c;首先想到的应该是优…一、 什么是性能调优
这个系统好慢、网站又打不开了太卡了又没响应了相信大家都遇到过用户的这种抱怨此时说明我们的应用系统出现了性能问题那么怎么办呢首先想到的应该是优化一下性能优化的目标是以用户的期望为依据因为优化性能没有固定的标准也很难知道优化的极限在哪里。因此我们的目标往往是符合用户的期盼即可也就是说用户觉得系统的使用满足自己的需求就算达到了优化的目的。
性能调优就是对计算机硬件、操作系统和应用有相当深入的了解调节三者之间的关系实现整个系统包括硬件、操作系统、应用的性能最大化并能不断的满足现有的业务需求。
二、为什么需要性能调优
为什么需要性能调优其实说到底就两原因一是为了获得更好的系统性能就是你现有的系统运行的还不错但优化一下可以运行的更好。二是通过性能调优来满足不断增加的业务需求。
通过性能调优可以用更少的硬件资源支撑更大量的业务发展从而达到节省硬件投资的目的。同时可以在资源有限不能扩容的情况下提升系统的响应能力从而为用户带来更好的使用体验。
三、什么地方需要性能调优
在进行调优的开始我们需要明白哪些方面需要调优这里我们先从大的方面总结一下主要包括硬件、操作系统、应用程序这三大块这里的应用程序是指apache、nginx、Mysql、redis等这些应用其实还有一个很重要的方面就是业务程序本身的优化而这个方面需要开发人员根据业务需求进行性能调优而对于我们运维人员来说接触的比较少而已。
下面我们就重点说一下硬件、操作系统、应用程序这三大块在进行性能优化时需要关注的一些细节和具体的优化思路。
首先硬件优化主要是对硬件选型、例如CPU、内存、磁盘、网卡等进行合理的选型和配置。
其次操作系统优化主要包含了操作系统的系统参数、内核参数、进程参数、文件系统、磁盘IO等方面进行合理的配置。
最后应用程序优化主要包含对应用软件例如apache、nginx、redis、Mysql、keepalived、kafka等进行参数方面合理的配置和整合。
下面展开来进行介绍一下这三个方面优化包含的内容。
1、硬件优化
这应该是优化的第一步在上线一个业务系统之前首先需要进行的工作就是硬件的采购那么硬件采购的标准是什么呢当然是业务系统的运行特点和对资源的占用情况例如我们要上线一套redis集群那么很明显redis是内存数据库特点是占用内存会非常大所以进行采购的时候要重点考虑的硬件资源就是内存第一内存要大第二内存资源要可扩展。由于redis对磁盘读、写并不会很频繁同时占用的磁盘空间也不会太大所以对磁盘的采购可以不需要太大的磁盘空间普通的SAS磁盘即可如果资金充裕那么也可以采购SSD磁盘。最后至于CPU和网卡一般的双路CPU加上千兆网卡即可满足要求无需特殊配置。
那么如果我们要上线的是一套数据库系统又该怎么对硬件进行选型呢这还要从要上线的业务系统的特点入手数据库系统的特点是比较耗费CPUSQL硬解析完全靠CPU)也比较耗费内存大量sql查询和缓冲的时候对数据安全性要求很高。从这个特点入手对于数据库服务器无论你使用的是MySQL、SQLServer还是Oralce一般情况下我们认为它需要配置足够快的CPU足够大的内存足够稳定可靠的硬盘同时硬盘需要做RAIDRAID10最好。
我们为什么说需要根据具体的应用来选型呢一方是什么样的应用需要什么样的硬件配置还有点很重要就是节约成本钱得要在刀刃上不该花的钱我们不能乱花也是为公司节约成本实现资源利用最大化。
当然有些朋友说了硬件没什么选型的买最好最高的硬件配置肯定没问题是的确实如此但是成本是任何公司都需要考虑的过高的硬件配置会导致资源浪费所以合理、专业的硬件选型是最能体现运维价值的事情。
上面说的这些是业务上线前的硬件选型优化此外硬件优化还包含业务上线后的硬件扩展优化由于我们业务做的越来越好项目创建初期可能没有完全考虑到会有这么大的性能需要访问量所以可能会出现现有的硬件不能满足业务需求此时我们就需要更换或扩展更好的CPU、更大的内存和更快的磁盘。因此硬件的可扩展性也许需要考虑到的特别是在业务上线前的硬件选型一定要考虑到后期硬件的扩展性这样在后期可以根据业务量的提升进行实时扩展。
2、操作系统优化
操作系统介于硬件和应用之间起到一个承上启下的作用相关的系统参数设置关系到内存、IO的调用机制、文件系统的使用效率、进程调度的优先级因此操作系统优化是整个调优过程中最重要的一个方面。 本专栏重点介绍基于Linux操作系统的性能优化具体的优化包含如下几个方面 操作系统安装优化 进程管理调优 内存资源调优 IO调度调优 文件系统调优 网络传输调优 性能调优需要在深刻理解硬件资源、操作系统和应用程序的基础上进行。很明显操作系统位于中间地带必须掌握Linux是如何处理任务以及与硬件资源进行交互的下图展示了Linux的内部结构以及与硬件的协助机制。 上图中在最底层是硬件设备Hardware接着在硬件设备之上是Firmware表示固化到硬件中的程序然后是driver即为设备驱动程序设备驱动程序是一种特定形式的软件程序旨在实现与硬件设备的交互。没有所需的设备驱动程序相应的硬件设备将无法工作。
接着就是操作系统层面的组成部分了首先是系统内核kernel在内核基础之上是系统库、共享库等系统运行必须的库文件Libraries在最上层就是系统中运行的应用程序Applications也就是我们在系统中安装的各种应用软件例如MySQL、Samba、FTP等。
了解这个架构非常重要因为它展示了操作系统的组成以及和硬件之间的依赖关系例如网卡driver如果出现bug那么就会影响操作系统中网络的正常运行。例如在平时运维过程中经常出现网卡驱动出现bug导致网卡突然down掉最后升级网卡驱动问题才得到解决。
由此可知操作系统优化是一个从底层硬件到上层软件应用逐级优化的过程。
3、应用程序
应用程序优化是针对具体的应用进行有目的的优化优化的依据就是应用系统目前出现的问题最直观的表现是从日志中发现异常然后根据日志中的异样进行综合判断得出优化结论。
这其中最容易忽略的方面是代码优化很多技术人员在应用系统出现性能瓶颈时第一想到的是硬件不够了网络带宽不足了或者内存不足了等等外在原因而很少从代码层面考虑是否是代码出现了一些问题呢所以当应用系统出现性能瓶颈时第一步就应该是分析相关的代码找出相应的瓶颈再来考虑具体的优化策略。有一些性能问题完全是由于代码写的不合理通过直接修改一下代码就能解决问题的比如for循环次数过多、作了很多无谓的条件判断、相同逻辑重复多次等。
在排除代码层面的问题后就需要考虑架构层面、参数配置层面等方面的问题这里以数据库调优为例当数据库有性能瓶颈的时候第一想到的应该是SQL调优先检查是否有不合理的SQL在运行这里以MySQL为例最常见的方式是用自带的慢查询日志或者开源的慢查询系统定位到具体出问题的SQL然后使用explain、profile等工具来逐步调优最后经过测试达到效果后上线。
接着还需要从架构层面进行调优例如数据库的架构是否合理架构层面的调优包括读写分离、多从库负载均衡、水平和垂直分库分表等方面架构层面的调优一般改动较大但是改动频率没有SQL调优高此外还需要的调优手段有连接池调优、数据库参数调优等总之调优是一个有点到面逐渐深入的过程。
最后通过一个对MySQL数据库进行调优简单总结一下需要关注的方面有哪些 MySQL安装编译优化 MySQL配置文件优化 MySQL存储引擎优化 优化表类型MyISAM或InnoDB 查询缓存优化 SQL语句优化 锁机制优化 MySQL服务器优化操作系统参数、存储盘换SSD等 看到了吧调优真是一个大话题随便一个方面都能发现有很多要优化的内容。
通过上面的对硬件、操作系统、应用程序的具体优化思路的介绍相信大家对性能优化有了更深层次的了解下面我们来说一个重要的问题什么时候来进行性能优化
四、什么时候需要进行调优
记得国外有位大师说过一句经典的话在没有遇到性能问题的时候去优化那就是灾难。所以当你系统没有问题的时候千万不要盲目的去进行调优因为那真的没有必要而如果发现了性能问题开始优化的第一步就是找到性能慢的关键原因优化必须针对最痛的那个点与其花80%努力去提升那20%的性能不如花20%的努力去优化那影响了80%效率的问题点。所以优化时机和找到优化的通点同样重要。
一般调优分为两个时间段分别是业务上线前这个时间点要做的是基础的优化或者叫通用的优化包括操作系统优化和应用环境优化等例如添加时间同步ntpserver、配置ulimit优化系统资源参数等这些参数属于通用配置所以在服务器安装完成后就可以进行优化配置了。
第二个优化阶段是业务系统上线后在上线前我们已经做过基本的性能优化可以解决大部分的性能问题但毕竟上线前的所以测试都是模拟测试并进行相关的性能优化与上线后的真实环境还是有相当大的区别所以业务上线后还需要根据实际情况根据业务系统日志提示结合具体的用户量进行第二个阶段有针对性的调优。
五、如何进行性能调优
上面说了那么多我们还不清楚如何进行调优这里说到重点了要开始进行性能调优具体步骤大致如下 确定性能指标 验证性能指标 找出性能瓶颈 解决性能问题 检验调优效果 1、确定性能指标
上面我们已经介绍了我们优化的目的是为了获得更好的性能那么性能指标是什么呢?我们怎么来衡量一个业务系统的性能指标呢这里以一个网站系统为例对网站平台的性能指标主要有五个分别是
吞吐量 是指单位时间内系统能处理的请求数量体现系统处理请求的能力这是目前最常用的性能测试指标。系统吞吐量几个重要参数 QPS、TPS、并发数、响应时间。
QPS: 即Queries Per Second意思是“每秒查询率”表示每秒钟能处理多少次请求注意这里是处理完。具体是指发出请求到服务器处理完成功返回结果。
TPS 即Transactions Per Second意思是”每秒处理的事务数“也就是每秒钟能处理完的事务次数。注意这里”事务“的含义一个事务是指一个用户向服务器发送请求然后服务器做出反应的过程。用户在发送请求时开始计时收到服务器响应后结束计时以此来计算使用的时间和完成的事务个数。由此可知一个事务可能会对应多个请求。
并发数 系统同一时间处理的请求数或事务数。主要指系统可以同时承载的正常使用系统功能的用户的数量。与吞吐量相比并发用户数是一个更直观但也更笼统的性能指标。
RT 即Response Time表示响应时间一般取平均响应时间。客户端发一个请求开始计时到客户端接收到从服务器端返回的响应结果所经历的时间响应时间由请求发送时间、网络传输时间和服务器处理时间三部分组成。也叫Think Time。
了解了QPS、TPS、并发数与响应时间的概念之后下面看看他们之间的联系。 QPS 并发量 / 平均响应时间 并发量 QPS * 平均响应时间
注意平均响应时间位是秒这里有个关键的点就是QPS一定是跟并发量联系在一起的离开并发数谈QPS是没意义的。
了解这些指标对于调优至关重要这些指标确定之后下面就以这个标准作为调优的依据。
2、通过测试验证性能指标
测试系统的性能需要我们收集系统的QPS/TPS、并发数、响应时间这几个重要的指标。具体步骤是 确认QPS/TPS、并发数、响应时间这几个值 找到或开发相应的性能测试工具 开始进行性能测试 反馈结果并提交测试报告 如果测试结果没有达到我们预期的目标下面就需要查找性能瓶颈并进行性能优化。
3、通过性能分析工具找出性能瓶颈
通过上面的性能测试如果发现网站没有达到我们预期定义的性能目标这时需要做的就是对现有的服务器进行监控包括硬件与软件的监控为性能调优提供有效的性能监控数据。那么用什么工具能找出性能瓶颈呢首先是硬件方面的工具常用的命令如下 用vmstat、htop、iostat工具检测CPU瓶颈 用free、vmstat、smem工具检测内存瓶颈 用iostat、iotop工具检测磁盘I/O瓶颈 用netstat、mtr、traceroute工具检测网络连通性以及带宽瓶颈 然后重点关注Linux操作系统方面主要关注的方向如下 系统进程状态 文件系统状态 SWAP、物理内存状态 系统内核参数状态 应用程序资源状态如MySQL、Nginx等) 通过性能监控工具结合操作系统运行状态基本可以判定是哪里出现了问题。那么接下来就可以进行调优了。
4、开始性能调优解决性能问题
在进行调优的时候要遵循如下步骤 如果你没有彻底弄懂某个系统参数千万不要对这个参数进行随意的改动不然你会很难受。 每次只对一个目标参数进行调试或CPU、或内存、或磁盘不要一次调整多种参数。 每次改动尽量少的参数设置推荐每次修改一个设置。 性能已达到要求时就不要在随意改动并且做好参数的状态监控。** 上面每个步骤都很重要是调优务必遵循的原则。
5、通过性能监控验证调优效果
调优参数完成后性能监控这个很重要因为通过监控可以发现和验证我们的调优是否达到了想要的效果监控包括服务器性能监控和服务的性能监控。下面我们说一说服务器有哪些性能监控指标必须要监控的指标有如下几个 CPU使用率 CPU负载 内存使用率 磁盘I/O 网络流量 磁盘空间 系统进程 通过对系统这些软、硬件指标的监控我们就可以核验之前做的调优设置是否生效是否达到了理想的效果。 更多Linux、云计算、云原生、大数据、docker、k8s知识可访问奇智云课堂
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/911075.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!