服务器反应迟缓的诊断与解决


  在如今越来越虚拟化的环境下,服务器性能问题比以往任何时候都要来得常见、严重。咨询公司Glass House Technologies的虚拟化服务主管Erwin Vollering说:"在物理环境下,每台服务器都有其各自的SCSI控制器、磁盘、内存和处理器等部件。而现在,你在一个物理主机上的共享环境中运行10至15台服务器,这些服务器同时处理同样的任务,使用同样的资源,一旦物理主机出现故障,统统崩溃。"
  
  那么,你如何着手诊断这些问题,以便解决问题、继续恢复运行?

  服务器反应迟缓的诊断:

  1.确保引起问题的是服务器
  
  Extra Hop公司的首席执行官兼创始人Jesse Rothstein表示,许多似乎来自服务器层面的性能问题常常是由网络、数据库和存储系统等层面的问题引起的。Rothstein说:"最终,你需要通盘考虑和分析这些问题,不过实际做起来很棘手。"
  
  Fluke Networks公司的全球产品营销经理Dan Klimke说:"要是出现了延迟问题,我们需要看一下这个延迟最先出现在服务器,还是出现在网络或客户端层面。跟踪分析症状需要耗费很多时间。"
  
  IT部门经常把多台服务器连接起来,为最终用户提供资源(如应用程序)。Klimke说:"你可能有一台基于Web的前端服务器与应用服务器进行对话,而该应用服务器与数据库服务器进行对话,所有这些服务器通过某种网络连接起来。所以在排除故障时,第一步就是确保问题确实来自某台服务器,而不是来自网络。"
  
  2.搞定繁琐累赘的应用程序
  
  某个应用程序引起服务器反应迟缓或干脆停机,这完全有可能。Klimke说:"应用程序可能过于'繁琐累赘'(chatty)--也就是说,这类应用程序写入时不是使用含有大量数据的大型帧、发送数量比较少的帧,而是使用最小的帧,因而到头来只好来回频繁地发送大量数据,才能完成较大的帧所能完成的任务;相比之下,使用大型帧速度快得多、效率高得多。"
  
  比如说,来自应用程序的某个命令可能发送到服务器,导致服务器出现问题。Klimke说:"看一下进入到服务器的实际数据流量,就能查出数据包进入到哪个环节,服务器停机之前什么命令发送到了服务器。这势必需要查看网络连接上的实际数据流量,还需要能解读就在服务器停机之前发送过去的命令和帧。"
  
  3.清理肮脏的网络
  
  Rothstein表示,肮脏的网络是指数据包出现丢失、重新排序或碎片的网络,它会拖累服务器的性能,因而引起服务器性能下降、服务器负载加大。