阿里资深软件测试工程师总结的这几点,让小白轻松搞懂性能调优( 二 )
2.操作系统
有本书叫《linux Performance Tuning》(Linux 性能调优)这本书是老外写的,作者是 Fernando Apesteguia。
为什么我们需要性能调优?他得出的结论是这样的:
“当一个发行版打包发送到客户手中的时候,它是为了完全兼容市场中大部分计算机而设计的 。这是一个相当混杂的硬件集合(硬盘,显卡,网卡,等等) 。
所以Red Hat,SUSE,Mandriva,Ubuntu和其他的一些发行版厂商选择了一些保守的设置来确保安装成功 。”
简单说,你的操作系统已经运行得不错了,但是你可以调节它获得更高的性能,比如你有个高性能的磁盘,但你的操作系统中一些选项参数默认没有启动,就不能实现这些高级功能来提高硬盘性能 。
还有我想说就是对操作系统发行版选择的问题,RedHat或CentOS这些操作系统在项目实施或网站架构中用的比较多,主要针对企业应用而开发的操作系统 。
而Ubuntu之类的操作系统对桌面支持的比较好,所以选择发行版本时得注意 。(一般企业中用的比较多的是CentOS)再有就是我们一般不要选择最新的发行版,因为刚出来的发行版相对来说bug还比较多,不要先当“小白鼠”了,
比如:刚刚出来CentOS 7 等过一段时间稳定了再使用,目前我们可以选择 CentOS 6.4 或 6.5即可 。
(但新版本也有很多好处,新版本中加入了很多新功能,去掉一些已知bug,对于一些不重要的应用,可尝试使用新的操作系统)
3.应用程序
最后,我们得来说说应用程序了,我们先来简单看到一下Apache的MPM配置文件:
prefork 模型:
大家可以从上面的配置文件中可以看出,apache 开始启动时启用 8个进程,最小 5个进程,最大20个进程,每个进程限制请求数为256个,最多可以接受请求 4000个,超过这个限制数自动销毁 。
worker 模型:
再看一下,worker模型的配置文件,默认启动2个进程,每个进程可以接受的请求为150个,每个进程中最小线程数25个,最大线程数为75个,默认线程数25个,每个线程可以接受的请求没有限制为0 。
好了,大家看完上面的配置文件,可以看出默认的Apache配置文件,设置的比较保守,只适于一些中小网站,想要获得高性能的Apache服务器还必须进行性能调优,包括apache编译选项,配置文件优化等,具体的调优我们在这里先不细说 。
通过我们上面的讲解,我们分别从硬件、操作系统、应用程序,这三个方面入手和大家谈谈为何需要性能调优,相信大家已经知道并了解,相信大家都迫不及待了吧 。
嘿嘿,我们先不急还有很多问题没有说清楚,下面我们和大家来说说,什么时候需要性能调优?
什么时候需要性能调优?
(when)
一般分为两个时间段:
上线前(基本优化)
上线后(持续优化)
为什么这样说呢,一般我们在项目实施到项目上线这段时间,不但要准备硬件服务器、安装操作系统、环境搭建,还有个很重要的问题就是进行性能优化,包括操作系统优化和应用环境优化等,我称上线前的优化为基本优化也称为经验优化 。
根据你做过的项目和你工作中的经验对上线前的服务器或架构进行基本的性能优化来满足业务需求 。
再有就是项目上线后的优化,在上线前我们已经经过基本的性能优化,解决大部分的性能问题,但毕竟上线前的所以测试都是模拟测试并进行相关的性能优化,与上线后的真实环境还是有相当大的区.
我们首先要做的就是对上线后的项目进行性能监控包括服务器性能监控和服务器性能监控 。
服务器性能监控包括:
CPU使用率、CPU负载、内存使用率、磁盘I/O、磁盘空间使用率、网络流量、系统进程等,服务性能监控包括apache、nginx、mysql 。
以上架构中所有的服务都需要进行性能监控,一旦发现有问题我们都得去进行性能优化,在这个过程中我称为持续优化也称为监控优化 。下面我们来具体地说一下,具体什么地方需要性能调优?
什么地方需要性能调优?
(where)
在上面我们说性能调优只说一些大的方面,包括硬件、操作系统、应用程序这三大块 。
其实还有一块就是程序本身的优化,开发人员根据需求开发出来的程序本身就需要性能优化,但对于我们运维人员来说接触的比较少而已 。
下面我们就来看看这三大块:
硬件 (CPU、内存、磁盘、网卡)
操作系统(进程、文件系统、内核 ……)
推荐阅读
- 黑东革阿里的功效有哪些
- 野生东革阿里作用有哪些
- 买服务器买阿里云还是腾讯云?我更推荐阿里云
- 阿里架构师整理的 Netty 学习笔记之:Java NIO 网络编程
- 软件测试之如何避免漏测
- 阿里飞猪推荐算法探索实践
- 为什么阿里巴巴强制不要在 foreach 里执行删除操作
- 阿里P8面试官:如何设计一个扛住千万级并发的架构?
- 东革阿里和玛咖哪个好呢
- ChartCube - 阿里出品的免费在线图表制作工具,简单好用还漂亮