性能优化是任何系统架构师和运维人员头疼且痴迷的问题。从数据库、服务器、存储、网络、应用系统等诸多系统层面,都存在进行优化的空间和探讨的余地。各种前辈也从系统开发过程流程、方法论、部署原则、监控测试和后期运维等诸多方面,进行了若干年的探讨。
在各种优化流派中,起码有一条是得到了广泛共识:系统优化工作绝对不存在“金手指”和“万灵药”。按照现在比较官方的说法:优化是一项涉及多领域、多学科,需要各方面人才合作才能做好的一项系统工程。
落实在数据库和Linux操作系统方面,这个问题就变的比较复杂。首先,无论是Linux还是运行其上的应用程序,CPU、网络、存储IO等多个方面共同配合。一个方面的短板就会造成整体的“木桶效应”。其次,根据系统用途的差异,每个应用系统优化的方面是不同的。比如:数据库服务器优化的重点就是IO读写速度;一些Web应用服务器优化的重点是提升吞吐量。最后,系统的各种优化方面是相互制约、相互协助的关系。单靠一方面强大的系统,整体是不会有很好的表现的。
1、Tuned优化
对一般新手而言,Linux应用环境优化是很困难的。领域多,范围广:CPU、存储、缓存策略、内存管理等涉及的参数。Linux内部虽然有默认设置值,可以应对大多数的情况场景,但是针对一些特殊场景,例如高性能、高并发和高可用的系统,就需要我们进行调整。这种工作对于初学者而言,是比较困难的。
红帽Linux针对这种情况,综合多年的性能优化分析经验,将若干典型的优化场景转化为优化Profile。普通用户借助tuned和ktune特性工具,可以自由切换系统到不同的Profile模式,应用优化参数模式。同时,一些高级用户可以以这些Profile作为一个工作起始点,修改或者添加一些优化功能点,构建适合自己特性的优化Profile。
另外,Profile的组织方式非常简单,以一个目录的形式进行组织。如果需要进行迁移,只要将目录转移到一个新服务器目录,就可以实现优化策略迁移。
目前,Tuned优化Profile提供了如下几种策略:
Profile名称
应用场景
default
默认的节能(power-saving)配置。对系统影响最小的power-saving配置,只启动了CPU和磁盘的tuned机制;
desktop-powersave
针对桌面系统设计的节能Profile,对SATA适配器、CPU、网络和磁盘插件应用ALPM策略
server-powersave
针对服务器设计的节能Profile,对SATA适配器、禁用CD-ROM轮询、启动CPU和磁盘插件应用ALPM策略;
laptop-ac-powersave
针对运行于插入电源笔记本电脑应用,中等影响的节能策略,启用SATA的ALPM省电策略,启用WIFI省电策略,CPU、网络和磁盘插件收到节能影响;
laptop-battery-powersave
针对运行于插入电池笔记本电脑应用。激活应用所有的节能配置。对CPU、网络和IO方面,有延时缺点。
throughput-performance
禁用节能配置,启用sysctl模块设置来提升性能,改善网络和IO配置,切换到deadline switch;
latency-performance
禁用节能配置,启用sysctl模块设置来提升性能,主要在网络IO方面提升;
在/etc/tune-profiles目录中,我们可以找到对应的配置文件夹。
[root@SICS-MIGPC-DB tune-profiles]# ls -l
total 68
-rw-r--r-- 1 root root 25 Apr 7 16:37 active-profile
drwxr-xr-x 2 root root 4096 Apr 3 13:11 default
drwxr-xr-x 2 root root 4096 Apr 3 13:11 desktop-powersave
drwxr-xr-x 2 root root 4096 Apr 3 13:11 enterprise-storage
drwxr-xr-x 2 root root 4096 Apr 3 13:42 enterprise-storage-no-thp
-rw-r--r-- 1 root root 9779 Jul 24 2013 functions
drwxr-xr-x 2 root root 4096 Apr 3 13:11 laptop-ac-powersave
drwxr-xr-x 2 root root 4096 Apr 3 13:11 laptop-battery-powersave
drwxr-xr-x 2 root root 4096 Apr 3 13:11 latency-performance
drwxr-xr-x 2 root root 4096 Apr 3 13:11 sap
drwxr-xr-x 2 root root 4096 Apr 3 13:11 server-powersave
drwxr-xr-x 2 root root 4096 Apr 3 13:11 spindown-disk
drwxr-xr-x 2 root root 4096 Apr 3 13:11 throughput-performance
drwxr-xr-x 2 root root 4096 Apr 3 13:11 virtual-guest
drwxr-xr-x 2 root root 4096 Apr 3 13:11 virtual-host2、Tuned和Ktune服务结构