Linux性能调优用这个“必杀技”,稳了!
“这个系统好慢、网站又打不开了,太卡了,又没响应了!”相信大家都遇到过这种抱怨,这是应用系统出现了性能问题,需要性能调优。
性能调优,要求对计算机硬件、操作系统和应用有相当深入的了解。
调节三者之间的关系,实现整个系统(硬件、操作系统、应用)的性能最优化,不断满足现有的业务需求。
为什么性能调优?
说到底就俩原因:
获得更好的系统性能
满足不断增加的业务需求
通过性能调优,可以用更少的硬件资源,支撑更大量的业务发展,从而达到节省硬件投资的目的。
同时,可以在资源有限,不能扩容的情况下,提升系统的响应能力,从而为用户带来更好的使用体验。
性能调优三大系统
我们重点说一下在进行性能优化时,硬件、操作系统、应用程序这三大系统,需要关注的一些细节和具体的优化思路:
硬件优化。主要是对硬件选型,例如 CPU、内存、磁盘、网卡等。
操作系统优化。主要包含了操作系统的系统参数、内核参数、进程参数、文件系统、磁盘 IO 等。
应用程序优化。主要包含对应用软件优化,例如:Apache、Nginx、Redis、MySQL、Keepalived、Kafka 等。
下面展开介绍这三大系统优化。
硬件优化
在上线一个业务系统之前,首先需要进行硬件采购。硬件采购的标准是业务系统的运行特点和对资源的占用情况。
举例一:如果我们要上线一套 Redis 集群
Redis 是内存数据库,特点是占用内存会非常大。采购的时候要重点考虑的硬件资源就是内存,第一内存要大,第二内存资源要可扩展。
Redis 对磁盘读、写并不会很频繁,同时,占用的磁盘空间也不会太大。对磁盘的采购,可以不需要太大的磁盘空间,普通的 SAS 磁盘即可。
举例二:如果我们要上线的是一套数据库系统
数据库系统的特点是比较耗费 CPU,也比较耗费内存,对数据安全性要求很高。
无论你使用的是 MySQL、SQL Server 还是 Oralce,都需要配置足够快的 CPU,足够大的内存,足够稳定可靠的硬盘,同时硬盘需要做 RAID,RAID10 最好。
操作系统优化
操作系统介于硬件和应用之间,起到一个承上启下的作用。
相关的系统参数设置关系到内存、IO 的调用机制、文件系统的使用效率、进程调度的优先级。
我会在专栏《Linux 性能调优攻略》重点介绍基于 Linux 操作系统的性能优化,具体的优化包含如下几个方面:
操作系统安装优化
进程管理调优
内存资源调优
IO 调度调优
文件系统调优
网络传输调优
下图展示了 Linux 的内部结构以及与硬件的协助机制,非常重要。
最底层,是硬件设备(Hardware);往上是固化到硬件中的程序(Firmware);接着是设备驱动程序(Driver),是一种特定形式的软件程序,实现与硬件设备的交互。
操作系统层面的组成部分,首先是系统内核(Kernel),在内核基础之上是系统库、共享库等系统运行必须的库文件(Libraries)。
最上层是系统中运行的应用程序(Applications),就是我们在系统中安装的各种应用软件,例如 MySQL、Samba、FTP 等。
由此可知,操作系统优化是一个从底层硬件到上层软件应用,逐级优化的过程。
应用程序优化
最直观的表现是从日志中发现异常,然后根据日志中的异样进行综合判断得出优化结论。
最容易忽略的是代码优化,有些性能问题完全是代码不合理。比如,for 循环次数过多、作了很多无谓的条件判断、相同逻辑重复多次等。
在排除代码层面的问题后,就需要考虑架构层面、参数配置层面等方面的问题。
架构层面的调优包括读写分离、多从库负载均衡、水平和垂直分库分表,还需要的调优手段有连接池调优、数据库参数调优等。
最后,通过一个对 MySQL 数据库进行调优,简单总结一下需要关注的方面有哪些:
MySQL 安装编译优化
MySQL 配置文件优化
MySQL 存储引擎优化
优化表类型(MyISAM 或 InnoDB)
查询缓存优化
SQL 语句优化
锁机制优化
MySQL 服务器优化(操作系统参数、存储盘换 SSD 等)
看到了吧,性能调优真是一个大话题,随便一个方面,都有很多要优化的内容。
长按订阅↓
Linux性能调优用这个“必杀技”,稳了!相关推荐
- linux性能调优命令精华
linux性能调优命令精华 2010年07月18日 linux性能调优命令精华 时间:2010-6-23 一. 查看硬盘读取速度 命令:hdparm -t /dev/sda5 打印:Timing bu ...
- 运维基础(9)Linux性能调优三大系统
这个系统好慢.网站又打不开了,太卡了,又没响应了!"相信大家都遇到过这种抱怨,这是应用系统出现了性能问题,需要性能调优. 性能调优,要求对计算机硬件.操作系统和应用有相当深入的了解. 调节三 ...
- 关于Linux性能调优之内存负载调优
写在前面 整理一些Linux内存调优的笔记,分享给小伙伴 博文没有涉及的Demo,理论方法偏多,可以用作内存调优入门 博文内容涉及: Linux内存管理的基本理论 寻找内存泄露的进程 内存交换空间调优 ...
- Linux性能调优的优化思路
Linux操作系统是一个开源产品,也是一个开源软件的实践和应用平台,在这个平台下有无数的开源软件支撑,我们常见的有apache.tomcat.nginx.mysql.php等等,开源软件的最大理念就是 ...
- linux性能调优看这篇就懂,[转载]Linux性能调优
译注:本文译自linuxforums.org上的一篇文章<Linux Performance Tuning>(原文作者Fernando Apesteguia发表于2006年)翻译此文仅为英 ...
- Linux性能调优工具-9张图-包你用到爽!抓紧收藏吧
这里包含Linux 性能资料的工具图.这些使用大字体可以用作海报幻灯片.也可以将它们打印出来贴在办公室墙上.它们展示了:Linux 可观察性工具. Linux 静态性能分析工具. Linux 基准测试 ...
- Linux性能调优集合
1.性能调优:CPU 关系型数据库严重依赖底层的硬件资源,CPU是服务器的大脑,当CPU开销很高时,内存和硬盘系统都会产生不必需要的压力.CPU的性能问题,直观来看,就是任务管理器中看到的CPU利用率 ...
- linux 分析磁盘性能,03.分析性能瓶颈 - 3.4.磁盘瓶颈 - 《Linux性能调优指南》 - 书栈网 · BookStack...
磁盘瓶颈磁盘瓶颈性能调优选项 磁盘子系统通常是服务器性能的最重要方面,是瓶颈问题的高发部件.但是,磁盘问题表现的有时候并不是那么直接,比如说可能是内存不足.如果CPU周期浪费在等待I/O任务完成,应用 ...
- linux性能调优原创翻译系列
Linux进程管理: 进程是可以运行在处理器CPU上的一个可执行的实例.进程完成工作需要所有linux内核需要的资源. 所有的在linux操作系统上运行的内存都是由task_struct 体系来管理的 ...
最新文章
- OpenGL 漫反射辐照度 	Diffuse irradiance
- ansible(自动化运维中)——ansible常用模块
- iOS开发UI篇—懒载入
- [转载] Java之继承
- 风变的python课程怎么样_风的解释|风的意思|汉典“风”字的基本解释
- JEECG 智能开发平台二次开发帮助文档
- IO流 (一) ----- 基本概念和FIle类
- 【Luogu2394】yyy loves Chemistry I(浮点数精度)
- sap字段及描述底表_SAP各模块字段与表的对应关系.
- 在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构
- 策略模式【设计模式学习-02】
- 一台计算机固定一个ip地址,两台电脑如何分享一个固定的IP地址
- 剪枝算法实现一字棋-C++
- 公司职员薪水管理系统(List)
- HTML5酷炫动画集锦
- Sniffing_Spoofing Report
- Torch7系列教程之Torch深度学习库教程(一)
- adb关闭系统自动更新
- 将.npy文件转化为灰度图像
- 无法安装 cloudera-manager-agent
热门文章
- python函数定义和其四种参数_python入门第九课:函数的定义及多种参数传递方式...
- 【题型探究】公约数之和
- python使用opencv查找轮廓_(八)OpenCV-Python学习—轮廓查找,绘制和拟合
- 实施自动化测试的六个目标和意义
- soj 4539 贪心+优先队列
- 给2019前端的5个建议
- js过滤HTML标签以及空格
- 学习笔记TF064:TensorFlow Kubernetes
- LeetCode 36 Valid Sudoku(有效数独)(*)
- ASP.NET返回上一页面的实现方法