性能优化

与金山陈飞舟学习性能优化

2010年04月21日 1、性能优化的关键是要“测量”,找出耗时的点来优化; 2、实用优化工具:IPP(英特尔 高性能多媒体函数库),ICC(Intel 编译器),Intel vTune(性能分析器),RDTSC(测试CPU 时钟周期数和时间的工具) 3、避免频繁的文件锁操作,对文件的加锁、解锁,各消耗1千个时钟周期;文件的打开和关闭也非常消耗资源 4、HP DL380服务器远好于DL180服务器,DL180服务器的主板等都是一般的。 5、压缩速度最快:LZO > gzip > 7zip 6、file mapping(大内存机器)完全操作内存,提高文件存取速度,且不用考虑何时写入磁盘,系统自动的; 7、计费类系统使用Oracle数据库 8、PHP容易内存泄露(php-fpm中有处理N个请求后自动重启进程的设置) 9、PHP会把跟MySQL的连接保持住,PHP与MySQL的连接管理比较麻烦,需要合适的中间件(连接池)或换Oracle; 10、用Oracle,连接管理中间件已自带,很多问题自身有解决方案 11、利用存储过程把连接变成无状态的,这样就不用做会话保持了 12、MySQL典型的架构是读写分离,要用64位系统 13、CPU密集型的服务器,要关闭CPU的超线程和节能模式 14、超线程对运算型(加减乘除)CPU密集型程序有好处,而对逻辑型CPU密集型程序用处不大 15、核心交换机最好使用Cisco,其实际性能比标称值稍大;如果使用华为,则可考虑 H3C 55XX系列,51XX不行。 16、金山没有使用网络文件系统,建议最好自己开发适合自己的,自己完全掌握 17、MySQL双机最好使用程序自动判断(超时),没有很好的自动切换方案 18、SQL SERVER有支持的硬件自动切换设备,但是要买高端的,因为中端的经常切换不了 19、EMC磁盘阵列柜,可以设置8个自动备份点(该点的数据是全的,对审计非常方便),还可以自动远程备份,网络不好自动重试保证数据完整性(Oracle的远程备份对带宽质量要求高) 20、IBM/HP 服务器给金山最大的好处是 提供了硬件监控集中管理软件,用于监控带管理卡的服务器;如发现内存校验错误是,说明内存要坏了,可以提前有准备的主动更换 21、金山后来只买IBM/HP服务器了,因为联想等服务器会使用一些质量很一般的配件(如硬盘插拔弹片,松了导致系统认不到硬盘) 22、使用IPP,来利用CPU的一些新指令集,如SSE4支持对xml解析、视频编码指令集等。 23、既然使用Memcached,就可以自己实现一个更高效和简单的,如KEY/VALUE数组,用二分法。 (描述不一定准确,其主要目的是在满足需求的情况下实现简单化,避免使用复杂的调用方式) … 继续阅读

与金山陈飞舟学习性能优化

1、性能优化的关键是要“测量”,找出耗时的点来优化;

2、实用优化工具:IPP(英特尔 高性能多媒体函数库),ICC(Intel 编译器),Intel vTune(性能分析器),RDTSC(测试CPU 时钟周期数和时间的工具)

3、避免频繁的文件锁操作,对文件的加锁、解锁,各消耗1千个时钟周期;文件的打开和关闭也非常消耗资源

4、HP DL380服务器远好于DL180服务器,DL180服务器的主板等都是一般的。

5、压缩速度最快:LZO > gzip > 7zip

6、file mapping(大内存机器)完全操作内存,提高文件存取速度,且不用考虑何时写入磁盘,系统自动的;

7、计费类系统使用Oracle数据库

8、PHP容易内存泄露(php-fpm中有处理N个请求后自动重启进程的设置)

9、PHP会把跟MySQL的连接保持住,PHP与MySQL的连接管理比较麻烦,需要合适的中间件(连接池)或换Oracle;

10、用Oracle,连接管理中间件已自带,很多问题自身有解决方案

11、利用存储过程把连接变成无状态的,这样就不用做会话保持了

12、MySQL典型的架构是读写分离,要用64位系统

13、CPU密集型的服务器,要关闭CPU的超线程和节能模式

14、超线程对运算型(加减乘除)CPU密集型程序有好处,而对逻辑型CPU密集型程序用处不大

15、核心交换机最好使用Cisco,其实际性能比标称值稍大;如果使用华为,则可考虑 H3C 55XX系列,51XX不行。

16、金山没有使用网络文件系统,建议最好自己开发适合自己的,自己完全掌握

17、MySQL双机最好使用程序自动判断(超时),没有很好的自动切换方案

18、SQL SERVER有支持的硬件自动切换设备,但是要买高端的,因为中端的经常切换不了

19、EMC磁盘阵列柜,可以设置8个自动备份点(该点的数据是全的,对审计非常方便),还可以自动远程备份,网络不好自动重试保证数据完整性(Oracle的远程备份对带宽质量要求高)

20、IBM/HP 服务器给金山最大的好处是 提供了硬件监控集中管理软件,用于监控带管理卡的服务器;如发现内存校验错误是,说明内存要坏了,可以提前有准备的主动更换

21、金山后来只买IBM/HP服务器了,因为联想等服务器会使用一些质量很一般的配件(如硬盘插拔弹片,松了导致系统认不到硬盘)

22、使用IPP,来利用CPU的一些新指令集,如SSE4支持对xml解析、视频编码指令集等。

23、既然使用Memcached,就可以自己实现一个更高效和简单的,如KEY/VALUE数组,用二分法。

(描述不一定准确,其主要目的是在满足需求的情况下实现简单化,避免使用复杂的调用方式)

24、使用虚拟机会有20%的CPU消耗,比如使用虚拟网卡不如使用真实网卡

25、服务器网卡比普通台式机网卡好得多,因为对数据包的处理网卡本身就完成了,普通网卡需要借助CPU

26、追求稳定性、故障率低的话,可使用小型机;小型机20、30万起价,开始配的CPU很少、可以后续加,或配满CPU、后续按需打开

27、使用高端产品来减少维护成本和故障带来的损失,也是很好的方法

28、SSD硬盘有2种,一种读性能好,一种读写性能都较好。

》关于SSD硬盘的2种类型,不确定飞舟指的哪2种,我上网查了一些资料如下:

SSD硬盘的两种类型:FLASH SSD和DDRRAM Base SSD

固态存储技术(简称为SSD),一般可以分为二种,一种是基于闪存的SSD,采用FLASH MEMORY 作为存储介质,这也是我们通常比较常见的SSD,象我们经常使用的U盘,数码相机等一些电子存储器及另外一些ATA、SCSI、FC接口的Flash Disk,统称为闪存盘;SSD的另一种是DDRRAM Base SSD,采用DDRRAM作为存储介质、仿效传统磁盘驱动器的设计、可被各种操作系统的文件系统工具进行卷设置和管理,并提供工业标准的PCI和FC接口用于连接主机/服务器或存储网络的存储设备,可分为SSD驱动器和SSD盘阵列二大块,是一种真正高性能的存储,而且它的使用寿命非常长,几乎包含所有闪存盘所拥有的优点或它所欠缺的部分,美中不足的它却需要电源保护数据安全。

基于FLASH 的SSD最大的优点就是可以移动,而且数据保护不受电源控制,能适应于各种环境,但是使用年限不高。所以闪存盘的容量一般都非常小,上G的已经算大了,目前最大的有64G的Flash Disk。适合于个人PC用户使用,但应用到企业的存储系统就无能为力了。采用FLASH内存的SSD具备相当高的数据安全性,并且在噪音、便携性等方面都有硬盘所无法媲美的优势,在航空航天、军事、金融、电信、电子商务等部门中都有广泛的使用。

而DDRRAM Base SSD相对普通HDD硬盘的最显著优势就是速度,例如一个每分钟15000转的硬盘转一圈需要200毫秒的时间,而在SSD上由于是数据是存放在半导体内存上,能够在低于一毫秒的时间内对任意位置的存储单元完成I/O(输入/输出)操作,因此在对许多应用程序来说最为关键的I/O性能指标——IOPs(即每秒多少次IO动作)上,SSD可以达到硬盘的50~800倍。

深入解析SSD中MLC与SLC的性能差异

http://www.c-ps.net/trade/content/2009/7/12073.html