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

2016-09-08 16:12:57 大一互联 24

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

许多似乎来自服务器层面的性能问题常常是由网络、数据库和存储系统等层面的问题引起的。最终,你需要通盘考虑和分析这些问题,不过实际做起来很棘手。

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

大多数人没有认识到,像TCP堆栈这些网络协议堆栈既有快速路径,又有慢速路径。快速路径很高效,针对它所要传送的数据包进行了优化,可以按顺序传送下一个数据包。但是如果你无序传送数据包,或者无意中将数据包由第四层往下传送到第三层,服务器和操作系统就会耗费大量的资源,用于重新组装那些IP碎片,或者重新排序或重新组装TCP片段。
  虚拟化可能会使这个问题复杂化。虚拟机管理程序是个调度程序,跨所有运行中的不同虚拟机和访客操作系统共享处理器时间;如果从一个虚拟机切换到另一个虚拟机,难免会出现延迟。要是配置有误,网络数据包就会出现延迟,以至于被底层网络堆栈丢弃;一旦你达到引爆点,性能衰减不仅仅显而易见,还会带来灾难性后果。
  4.使用监控工具
   无论是执行SNMP轮询来记录服务器健康指标的自动化第三方工具,还是比较简单的免费开源工具,都要充分利用监控工具。

83f5bde58e67d676b03c4ad5e63cd477.jpg

服务器反应迟缓的最佳解决方式:   
  1.检查服务器的物理资源
  一旦查明了某个性能问题来自服务器层面,就要仔细检查这台问题服务器的物理资源。最好的情况是,只要添加另一个处理器或添加更多内存这么简单。务必要看一下处理器利用率是不是因许多进程而过高。我们发现,许多问题的出现完全归因于磁盘塞满了。
  2.校正和调整负载
  多个虚拟服务器带来的负载可能远远超出物理服务器的处理能力范围。如果你在处理月度财务合并数字的同时拍摄快照,你的存储系统就无力同时处理所有那些事务。
  3.实时迁移虚拟机
   随着工作负载加大、虚拟机数量激增,可能会发现需要把一个引起问题的虚拟机迁移到另一个主机上,或者把"正常的"虚拟机卸载到另一个主机上,以便为需要资源的虚拟机腾出资源。




文章转载请注明www.bigone.com.cn  广东idc 大一互联
我们专业提供广州各大运营商机房服务器托管租赁等IDC机房业务!
您可以选择电信/双线/BGP多线/等多家运营商线路运行您的业务!
文章如有侵权,请及时联系我们删除!
销售电话:020-83560263    销售手机:
13760852008