【IT168 应用技巧】当你听到"性能瓶颈"这个术语时,映入脑海的主要热点词汇就是中央处理器,内存,硬盘和网络。这些都是探寻性能瓶颈问题的主要方面,但是他们并非性能问题产生的唯一方面。本文针对六个其他潜在的诱因深入探讨令人难以捉摸的性能瓶颈。
请注意本文所列的各项排名不分先后。
1.中央处理器
中央处理器是计算机的大脑,是进行计算和指令运行的所在。
中央处理器可以处理数百万条计算和指令,但是当所运行的计算数量超出了中央处理器的容量就会导致性能问题。中央处理器所承受的计算负载数量超过75%时就将让整个系统运转缓慢。当系统负荷在短期内达到100%时,中央处理器需要一些空间来应付爆炸性的高峰。中央处理器负荷是导致性能瓶颈的主要途径。
2.内存
内存的经验法则就是"越来越大"。当性能问题指向内存时,解决性能平静的共识就是增加更多的内存。不过这种做法只在短期内是有效的。因内存导致的性能瓶颈通常源于设计欠缺的软件(内存缺口)或者其他由内存反映出来的系统漏洞。解决内存性能问题的关键是在再增加更多的随机存储器之前找到性能症状的根源。
3.存储
硬盘速度,RAID型号,存储类型和控制器技术组合在一起构成了我们大家所熟知的硬盘输入/输出。硬盘输入/输出对于系统管理员和用户来说是引发性能担忧的常见源头。性能上经常会遭遇实践和物理上的限制,即使是使用最好的硬盘技术也是如此。当将硬盘上的工作负载合并和分离时都要使用最好的解决方案。本地存储比速度最快的存储区域网络还要快,因此就像可调节的存储方案一样充满吸引力。
4.网络
网络也是导致性能瓶颈方面备受诟病的来源,但是很难被发现。除非出现网络硬件故障,比如交换机端口损坏,电缆受损,网络卡啸叫或者路由器配置问题等,否则你会去从别的方面去寻找网络性能瓶颈的原因。明显能感觉到的网络运行缓慢经常会被归咎于其他九个导致性能瓶颈的原因。
5.应用软件
虽然没有那个应用软件编程人员愿意承认这一点,但编码匮乏的应用软件经常会以硬件问题的表象出现。当应用软件运行时对系统影响巨大,当应用软件关闭时问题消失,这就说明应用软件存在问题。当发生性能问题时,在系统管理员和编程人员之间会产生拉锯战。每一方都想把过错推给另一方。在对硬件性能瓶颈纠结过很久后,大家发现明智的回答就是:应用软件。
6.木马病毒
病毒,特洛伊木马和间谍软件在可察觉的性能瓶颈中占据很大比例。当性能瓶颈屡屡抬头时,用户经常会抱怨网络,应用软件或者他们的计算机。那些性能杀手在一个或者多个服务器系统,用户的工作组或者两者中存在。病毒感染是如此普遍以至于你必须对他们施加多层防御措施。反病毒,反间谍软件,本地防火墙,网络防火墙和常见的补丁将帮助用户保护系统和预防由此导致的性能瓶颈。
7.工作负载
智能工作负载管理能帮助用户预防与匮乏的平衡工作负载或者存在不足的负载平衡规划相关的性能问题。向集群增加系统能缓解这种压力,但是在虚拟环境中完成这件事要比物理环境容易一些。最好的解决方案是测算所有系统的容量和性能,留意向你报告的数量。迁移工作负载,增加系统并对性能保持密切关注。
8.硬件故障或者过时
硬件使用的时间越长,出现故障的可能性就越大。一些硬件组件已经是风烛残年,还有一些硬件经常出现故障和难以捉摸的罢工。导致系统重启,数据丢失或者性能瓶颈的硬件由于他们无法预料的的特性而经常让系统管理员为之抓狂。预防这种悲剧发生的最好办法是保证硬件的时时更新,使用冗余硬件和认真监控你的系统。
9.文件系统
你知道你的文件系统会对性能造成深远影响吗?事实确是如此。某些文件系统,比如JFS使用的中央处理器很小。XFS有着很高的可扩展性和高性能。NTFS是有着高性能的可恢复文件系统。最新的EXT4文件系统可以有效的支持非常大型的文件。每个文件系统都有一个用途,使用与应用软件不对路的文件系统就会导致灾难性后果。充分考虑你的文件系统并从中选择最适合你工作内容的解决方案。没有可以适用于所有文件系统的功能较多钥匙。
10.技术
你为基础架构选择的技术在性能中扮演着重要的角色。举例来说,如果你的服务主要面向虚拟基础架构技术,那么你所遭遇的性能问题与相对的物理系统是不同的。有一些工作负载是适用于虚拟技术的。举例来说,LAMP(Linux, Apache, MySQL, PHP)工作负载就比KVM的本地速度执行起来要更快更好。不过,集装箱式虚拟化(OpenVZ, Parallels, Solaris Zones)则以适用于任何工作负载的本地性能速度见长。