数据中心管理人员要学会解读性能问题的征兆,确定什么因素在引起问题。
服务器反应迟缓让每个人都抓狂——最终用户们焦急地等微软PowerPoint文件打开,高级主管们希望能立马收到电子邮件,身为数据中心管理人员,你必须听取和解决他们抱怨的这些问题。
在如今越来越虚拟化的环境下,服务器性能问题比以往任何时候都要来得常见、严重。咨询公司GlassHouse Technologies的虚拟化服务主管Erwin Vollering说:“在物理环境下,每台服务器都有其各自的SCSI控制器、磁盘、内存和处理器等部件。而现在,你在一个物理主机上的共享环境中运行10至15台服务器,这些服务器同时处理同样的任务,使用同样的资源,一旦物理主机出现故障,统统崩溃。”
那么,你如何着手诊断这些问题,以便解决问题、继续恢复运行?下面几个贴士可以帮你轻松入手。
确保引起问题的是服务器
ExtraHop公司的首席执行官兼创始人Jesse Rothstein表示,许多似乎来自服务器层面的性能问题常常是由网络、数据库和存储系统等层面的问题引起的。Rothstein说:“最终,你需要通盘考虑和分析这些问题,不过实际做起来很棘手。”
Fluke Networks公司的全球产品营销经理Dan Klimke说:“要是出现了延迟问题,我们需要看一下这个延迟最先出现在服务器,还是出现在网络或客户端层面。跟踪分析症状需要耗费很多时间。”
IT部门经常把多台服务器连接起来,为最终用户提供资源(如应用程序)。Klimke说:“你可能有一台基于Web的前端服务器与应用服务器进行对话,而该应用服务器与数据库服务器进行对话,所有这些服务器通过某种网络连接起来。所以在排除故障时,第一步就是确保问题确实来自某台服务器,而不是来自网络。”
搞定繁琐累赘的应用程序
某个应用程序引起服务器反应迟缓或干脆停机,这完全有可能。Klimke说:“应用程序可能过于‘繁琐累赘’(chatty)——也就是说,这类应用程序写入时不是使用含有大量数据的大型帧、发送数量比较少的帧,而是使用最小的帧,因而到头来只好来回频繁地发送大量数据,才能完成较大的帧所能完成的任务;相比之下,使用大型帧速度快得多、效率高得多。”
比如说,来自应用程序的某个命令可能发送到服务器,导致服务器出现问题。Klimke说:“看一下进入到服务器的实际数据流量,就能查出数据包进入到哪个环节,服务器停机之前什么命令发送到了服务器。这势必需要查看网络连接上的实际数据流量,还需要能解读就在服务器停机之前发送过去的命令和帧。”
清理肮脏的网络
Rothstein表示,肮脏的网络是指数据包出现丢失、重新排序或碎片的网络,它会拖累服务器的性能,因而引起服务器性能下降、服务器负载加大。
他解释:“大多数人没有认识到,像TCP堆栈这些网络协议堆栈既有快速路径,又有慢速路径。快速路径很高效,针对它所要传送的数据包进行了优化,可以按顺序传送下一个数据包。但是如果你无序传送数据包,或者无意中将数据包由第四层往下传送到第三层,服务器和操作系统就会耗费大量的资源,用于重新组装那些IP碎片,或者重新排序或重新组装TCP片段。”
虚拟化可能会使这个问题复杂化。Rothstein说:“你的虚拟机管理程序是个调度程序……跨所有运行中的不同虚拟机和访客操作系统共享处理器时间;如果从一个虚拟机切换到另一个虚拟机,难免会出现延迟。要是配置有误,网络数据包就会出现延迟,以至于被底层网络堆栈丢弃;一旦你达到引爆点,性能衰减不仅仅显而易见,还会带来灾难性后果。”
使用监控工具
Rothstein表示,无论是执行SNMP轮询来记录服务器健康指标的自动化第三方工具,还是比较简单的免费开源工具,你都要充分利用监控工具。
Vollering表示,如果你在使用虚拟化服务器,监控工具显得尤为重要。他表示,VMware、微软和思杰这三大虚拟化技术提供商都提供优秀的监控工具。他说:“这些工具可以告诉你什么方面在给你的环境施加压力,无论是处理器使用率、内存使用率还是磁盘使用率。”
Vollering表示,即使那些工具可供使用、部署到位,但是许多公司还是往往要么不知道自己可以使用它们,要么不知道如何使用。此外,这些工具会带来洪水般的信息和警报。他说:“你可能得花一整天的时间来查阅各种图表。”
那么,怎样才能最有效地利用这些工具呢?Vollering说:“仔细阅读使用手册,针对自己的环境合理配置工具。那样一来,要是出现了警报,你就知道需要探究警报,而不是由于工具仍采用默认的阈值进行配置而面临洪水般的警报。”
最佳贴士:
检查服务器的物理资源
CDW公司的内部解决方案架构师Kelly Sather表示,一旦你查明了某个性能问题来自服务器层面,就要仔细检查这台问题服务器的物理资源。他说:“最好的情况是,只要添加另一个处理器或添加更多内存这么简单。”
Fluke Networks公司的全球产品营销经理Dan Klimke补充说:“务必要看一下你的处理器利用率是不是因许多进程而过高。我们发现,许多问题的出现完全归因于磁盘塞满了。”
最基本的贴士:
确保服务器胜任工作
Sather表示,就因为你的硬件与新安装的或升级的应用程序兼容,并不意味着这个应用程序就会顺利运行。他说:“你服务器中的资源需要与它要处理的负载相称。比如说,有人向迁移到Exchange 2010,于是迁离在配备 24GB内存的双处理器双核系统上顺畅运行的旧版本Exchange。但是由于Exchange 2010是更耗费资源的系统,他们事后才发现该系统在旧硬件上无法运行。”
另外两个贴士:
校正和调整负载
多个虚拟服务器带来的负载可能远远超出物理服务器的处理能力范围。咨询公司GlassHouse Technologies的虚拟化服务主管Erwin Vollering说:“你要知道自己的局限性。如果你在处理月度财务合并数字的同时拍摄快照,你的存储系统就无力同时处理所有那些事务。”
实时迁移虚拟机
CDW公司的内部解决方案架构师Kelly Sather表示,随着工作负载加大、虚拟机数量激增,你可能会发现需要把一个引起问题的虚拟机迁移到另一个主机上,或者把“正常的”虚拟机卸载到另一个主机上,以便为需要资源的虚拟机腾出资源。VMware的vMotion和微软的Hyper-V(以及其他技术)都让你可以将虚拟机实时迁移到其他主机上,根本不需要连接到最终用户。