给SPDiag的几点建议

应该说,SPDiag是我所知道的可以公开下载的最好的一款SharePoint troubleshooting工具。用它不但可以很直观地了解服务器场和SharePoint拓扑的状态,还可以收集和分析IIS log, ULS log和Event log。在性能分析方面,SPDiag可以收集Perfmon counter数据,并以图形化的方式展示,方便我们分析。我们能够使用SPDiag将分析结果生成报告,方便今后比对。它有数据导出功能,但是导出的数据大概只是作为一种报告吧,因为SPDiag并没有数据导入的功能。如果要对数据做离线分析,我想只有将它的项目数据库整个备份出来了。

但是我想SPDiag的开发者可能对真实的客户环境了解不深吧,以定位为一款除错工具而言,SPDiag的几个特性将限制它的使用:

  1. 首先,这款工具包含在SharePoint Administration Toolkit当中,需要被安装到需要除错的服务器场中的一台服务器上。如果是一个已经在使用中的生产环境,这意味安装这个除错工具本身可能就需要一段downtime了。在某些严格的环境中,要在服务器上安装一个软件可能要经过冗长的测试和审批程序,这无疑会增加除错的时间。
  2. SPDiag的数据是存放在数据库中的,这意味着客户需要为它配置一台单独的SQL服务器,因为使用SharePoint的数据库服务器可能会导致SharePoint环境性能下降,如果是解决性能问题,这绝对是要避免的。同样,在生产环境中增加一台SQL服务器也会需要审批,不知有多少用户愿意仅仅为了除错就增加一台新的服务器,即使是一台虚拟服务器。

有鉴于此,我想在以后的版本中,SPDiag也许可以考虑做下面的改进:

  1. 让SPDiag可以单独安装,并且最好能安装在一台服务器场外的机器上。现在SPDiag的大部分功能实际上通过Web Services和WMI也是可以实现的,既然SPDiag已经在用WMI了,何妨走的更远一点?
  2. 数据不要保存在数据库中,以文件的形式保存在磁盘上是完全可以的,这样离线分析也更方便。
  3. 在现有基础上增加更多的状态数据,比如Web数,List数,每个List的List Item数等等。