首页 > 其他分享 >系统调优的思路

系统调优的思路

时间:2023-11-01 10:57:31浏览次数:38  
标签:性能 系统 调优 内存 MySQL 服务器 思路 CPU

性能调优的实际内容,简单来说包括三块:硬件、操作系统、应用程序。

硬件包括:CPU、内存、磁盘、网卡、其它……,

操作系统包括 进程、虚拟内存、文件系统、网络、其它……,

应用程序我就不用说了大家都懂,常见的有Apache、MySQL、Nginx、Memcahed等。

性能调优就是对计算机硬件、操作系统和应用有相当深入的了解,调节三者之间的关系,实现整个系统(包括硬件、操作系统、应用)的性能最大化,并能不断的满足现有的业务需求。这就是我们说的性能调优
下面我们来说一说为什么需要性能调优,其实说到底就两原因:一是为了获得更好的系统性能(就是你现有的系统运行的还不错,但优化一下可以运行的更好)。二是通过性能调优来满足不断增加的业务需求。为了更直观的帮助大家来理解为什么要性能调优?我们分别从三个方面来说:
硬件选型(根据服务器应用类型来选购服务器)
操作系统发行版本 (选择发行版本)
应用程序 (Nginx、MySQL等)

负载均衡:性能要求相对较低,因为只负责转发数据,但要保证选一性能突出的网卡即可。(推荐配置:CPU E5620 x 1 内存 8G 硬盘 500G(RAID5))
Web 服务器:一般只处理一些静态页面或者图片等,因此要求也不是很高,主流的服务器都可以。(推荐配置:CPU E5620 x 1 内存 16G 硬盘 500G(RAID5))
应用服务器:一般应用程序服器,他承担网站功能的实现,在架构中占有比较重的位置,特别是网站架构中只有一台应用服务器,对CPU、内存、磁盘要求都比较高。(推荐配置:CPU E5620 x 2 内存 32G 硬盘 500G(RAID10))
缓存服务器:分为前端页面缓存与后面数据缓存,他们典型的应用分别是Varnish与Memcached,对内存的要求比较大,一般我们配置服务器时使用较大有内存。(推荐配置:CPU E5620 x 1 内存 32G 硬盘 500G(RAID10))
数据库服务器:数据服务器对CPU、内存、磁盘的要求都很高,一但某个硬件是短板都会带来性能问题。(推荐配置:CPU E5620 x 2 内存 64G 固态硬盘 500G(RAID10))
备份服务器:备份服务器一般就没有什么要求,但有点可以肯定是必须有足够大的硬盘空间。(推荐配置:CPU E5620 x 1 内存 4G 硬盘 2TB(RAID5))
监控服务器:一般也没什么需要,普通的PC服务器就可以。(推荐配置:CPU E5620 x 1 内存 4G 硬盘 500(RAID5))
其它服务器:至于其它服务器就看各位的具体需要具体分析了。

上线前(硬件选型)
上线后(硬件扩展)

3.应用程序

最后我们来说说应用程序优化,这里我们来说一下MySQL优化例子,让大家更直观的了解。

MySQL 编译安装优化
MySQL 配置文件优化
索引优化
MySQL 引擎优化
查询缓存优化
SQL 语句优化
优化表类型(MyISAM或InnoDB)
锁机制优化
MySQL 服务器优化(换SSD)
通达上面的对硬件、操作系统、应用程序的具体说明相信,大家对性能优化有了更深层次的了解,下面我们来说一个重要的问题,什么人来进行性能优化?

怎么样进行性能调优?(How)
下面进入正题了我们说一说怎么进行性能调优,具体步骤如下:

性能指标 –> 确认衡量标准
性能测试 –> 验证性能指标
性能分析 –> 找出性能瓶颈
性能调优 –> 解决性能问题
性能监控 –> 检验调优效果

1.性能指标

上面我们说了,我们优化的目的是为了获得更好的性能,那么性能指标是什么呢?我们怎么样来衡量,一般衡量一个项目(这里指的网站)的指标有三个:

吞吐量 –> 是单位时间内完成的用户或系统的请求数量。
并发数 –> 同时能接受多少用户的访问请求
响应时间 –> 用户发出请求到收到响应的时间间隔。
2.性能测试

我们做产品或者说项目(更直白的说是网站)目的是为了让用户使用,我们得先站在用户的角度分析一下,用户需要关注哪些性能。

对于用户来说,当点击一个按钮、链接或发出一个操作指令,到系统把请求处理好发给用户并用网页的形式展现出来为止,这个过程中所消耗的时间是用户对这个网站性能的直观印象。

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

在网站开发与搭建时,我们就需要考虑到如何更好地结合这两部分达到用户最佳的体验。用户关注的是用户操作的相应时间。

其次,我们站在运维的角度考虑需要关注的性能点。再次,我们得站在开发(设计)人员角度去考虑网站性能。最后,由QA测试与反馈我们网站性能。

经过上述的说明,我们来测试系统的性能,需要我们收集系统的吞吐量、并发数、响应时间这三个重要的指标。具体步骤是:

确认吞吐量、并发数、响应时间这三个值
找到或开发相应的性能测试工具
进行性能测试
反馈结果并提交测试报告
结果,有两个一种是达到我们预期的性能目标,这样我们就不需要性能优化任务完成可以交给运维上线,只需要进行相关的性能监控,方便上线后进行性能优化。

另一种是没有达到我们预期的目标,我们要查找性能瓶颈并进行性能优化。

硬件:

用vmstat、sar、iostat检测是否是CPU瓶颈
用free、vmstat检测是否是内存瓶颈
用iostat检测是否是磁盘I/O瓶颈
用netstat检测是否是网络带宽瓶

具体调优步骤

如果你不懂系统的参数,你千万不要对系统的参数进行随意的改动,不然你会后悔。
每次只对一种系统资源进行系统调试,如CPU、或内存、磁盘。
每次改动尽量少的参数设置,推荐每次修改一个设置。
分析一项系统资源时,使用多种工具,往往有意想不到的结果。
不及胜于过之(宁愿少做一点,不要做过头了,性能已达到要求就不要随意乱动,做好你的监控)。

5.性能监控

性能监控这个很重要,具体包括服务器性能监控和具体服务的性能监控。下面我们说一说具体有哪些性能监控指标:

服务器的性能监控

CPU 使用率
CPU负载
内存使用率
磁盘I/O
网络流量
磁盘空间
系统进程
服务的性能监控(MySQL)

MySQL查询吞吐率,包括Change DB、Select、Insert、Update、Delete
MySQL持久连接利用率
MySQL查询缓存空间使用率
MySQL查询缓存命中率
MySQL缓存查询数
MySQL索引缓存命中率
MySQL索引读取统计
MySQL连接吞吐率
MySQL连接缓存命中率
MySQL并发连接数,包括最大允许连接数、实际最大连接数、当前连接数、活跃连接数、缓存连接数
MySQL流量统计
MySQL表统计锁定

标签:性能,系统,调优,内存,MySQL,服务器,思路,CPU
From: https://www.cnblogs.com/kisshappyboy/p/17802520.html

相关文章

  • 记一次 .NET 某工厂无人车调度系统 线程爆高分析
    一:背景1.讲故事前些天有位朋友找到我,说他程序中的线程数爆高,让我帮忙看下怎么回事,这种线程数爆高的情况找问题相对比较容易,就让朋友丢一个dump给我,看看便知。二:为什么会爆高1.查看托管线程别人说的话不一定是真,得自己拿数据出来说话,可以用!t命令观察一下便知。0:000>......
  • 顺通数字化校园信息管理系统
    随着信息技术的不断发展,数字化校园信息管理系统正在成为现代学校管理的重要工具。顺通数字化校园信息管理系统是一种综合性的解决方案,旨在帮助学校实现信息化管理,提升了学校管理效率和教育质量。顺通数字化校园信息管理系统涵盖了教务管理、学生信息管理、教师管理、考勤管理、课......
  • elasticsearch运维调优-集群和冷热集群
    集群:node1-node3专用主节点node3仅投票节点 启动服务:./bin/elasticsearch后台启动守护进程./bin/elasticsearch推荐方式./bin/elasticsearch-d-ppid关闭进程ps-ef|grepelastic杀进程kill-9'catpid'pkill-Fpid常见问题:本地无法访问:关闭防火墙,生产环境建......
  • 铺先生:给店铺选址有哪些好思路?这些方法可以试一下
    给店铺选址有哪些好思路?很多人在给店铺选址的时候,可能都会围绕着“好”这个点进行入手,虽说不错,但是“好”不一定适合自己!这些朋友在选址思路上就已经陷入了误区!小编认为适合自己的就是“好”!下面小编就给大家提供一些选址思路,帮助大家更好的选择!1. 观察同行在给店铺选址的时候,可以......
  • BEPU物理引擎碰撞系统的架构与设计
    前面我们讲解了如何监听物理引擎的碰撞事件,在物理引擎内核中如何架构与设计碰撞规则,使得物理Entity与周围的物理环境产生碰撞时,如何灵活的控制物理碰撞,本节給大家详细的讲解BEPUphysicsint物理引擎内部是如何管理与控制碰撞规则的。本文主要讲解3个部分:(1)物理引擎碰撞计算......
  • 一款成熟的文件外发审计管控系统,应具备哪些价值?
    在信息化高速发展的时代,电子文件泄密事件层出不穷,比如文本文档、图像、音频、视频、电子表格等,都是日常会接触到的文件类型。像制造业企业,会有比较多的上下游协作交流,外发的电子文档以明文的形式提供给合作伙伴,这就导致明文电子文档在外发过程中会处于失控状态,存在着巨大的泄密风......
  • 用结构化思维解一切BUG(1):核心思路
    面对万“卷”世界,有人选择拼命学习新技术,解决眼前的、点状问题;有人提升思维层级,解决未来的、系统问题。您选择什么?背景我有10多年编程经验和研发管理经历,虽很久不写代码,但有很多人找我咨询技术问题,解决程序BUG。因为不管多么千奇百怪的技术栈,我都能帮到他们,或直接给出解题思......
  • 如何在linux系统中安装python3.8.1 并卸载 python3.6.2 更新python3引导到3.8.1
    安装python3.8.1步骤1:检查Python版本在终端中输入以下命令来检查当前安装的Python版本:python--version步骤2:安装编译Python所需的依赖项更新系统软件包,并安装构建Python所需的一些工具和库。在终端中运行以下命令:sudoaptupdatesudoapt-getinstall-ybuild-essen......
  • JVM参数调优
    配置文件在tomcat/bin目录下catalina.sh中 JAVA_OPTS="-server-Xms595M-Xmx595M-Xmn223M-XX:SurvivorRatio=10-Xss1M-XX:+UseConcMarkSweepGC-XX:+CMSClassUnloadingEnabled-XX:+UseCMSCompactAtFullCollection-XX:+ExplicitGCInvokesConcurrent-Djava.rmi.server.......
  • 磁盘管理与文件系统
    磁盘管理怎么在linux中添加使用硬盘1、分区(必须)2、格式化(安装文件系统)安装管理文件的软件协助我们处理文件3、挂载将外部硬件和内部的文件关联磁盘结构硬盘的最小存储单位为扇区512字节8个扇区组成块1、mbr(第一个扇区)主引导记录(小程序,引导硬件找到操作系统)446字节2......