技术开发 频道

SharePoint 2010:Office与IT人员碰撞

  性能控制

  性能是MOSS 2007的瓶颈之一,如打开页面速度慢,查询很长时间没有结果,在SharePoint 2010 有了改善并提供了两种工具:节流和列表控件来进行性能控制。这两种工具可配置,以帮助在高峰使用次数的增加服务器性能和服务器资源保护。节流控制服务器资源,大列表设置限制列表资源查询访问的性能。

  通过节流设定,SharePoint服务器2010年为管理员提供了一种方法来确定在哪一级,服务器将进入节流模式。每5秒钟,一个作业运行,检查服务器资源配置水平相比。默认情况下,服务器的CPU,内存,在队列请求,并要求等待时间进行监测。经过三个不成功的检查后,服务器进入节流模式,并把这种状态保持到一个成功的检查已经完成。从理论上说,服务器响应节流请求后,可以防止丢失任何用户当前的工作。任何新的HTTP GET和搜索机器人的请求将生成一个503错误信息,并会在事件查看器中记录。

  通过管理中心或者Windows PowerShell 命令,可以把节流配置到每一个Web 应用上。例如可以使用PowerShell命令行:

  Get SPWebApplicationHttpThrottlingMonitor

  Set SPWebApplicationHttpThrottlingMonitor

  在一个SharePoint 列表中,可以支持的记录数高达50W条,但是随着列表记录的增加,查询的性能越来越低,SharePoint 2010提供了多种不同的设置,对一个大列表运行查询进行限制。这些设置可配置为每个Web应用程序,可以设置的内容有:

  返回结果记录数,默认值5000;

  对网站管理员的警告基本,显示在列表设置里,默认值是3000;

  管理员查询结果显示记录数,默认是20000;

  unique scopes最大数,默认值是50000;

  查询可以包含每一列,默认显示6列;

  远程BLOB数据存储(RBS)

  在SharePoint 2010中,对于文档库、列表里的二进制大文件(BLOB)存储在数据库之外,例如文件系统,这样就可以使用SQL Server对存储的文件来进行再生产。RBS是完全可拔插的结构,这样第三方能够创建和使用自己的RBS提供者和消费者。例如第三方备份厂商可以创建自己的RBS备份恢复的提供者和消费者,这也是易于扩展的一个表现。

  备份恢复

  我们刚刚提到第三方可以使用RBS来创建和使用自己的备份恢复功能,在管理中心也提供了备份恢复功能,和以前版本相比,现在的备份恢复功能可以针对不同级别来规划和实施。例如可以针对整个服务器场进行备份和恢复、针对场的配置信息进行恢复、针对站点集进行备份恢复、针对子站点的备份恢复、针对列表的备份恢复。

  备份恢复有三种途径:使用管理中心的备份恢复功能、使用Windows PowerShell、使用Stsadm命令行。

  企业级搜索功能

  在MOSS 2007全文检索的基础上,SharePoint 2010的搜索功能更加强大,在搜索的用户界面上提供了可视化的搜索界面;在搜索内容上,可以对服务器场、网站、列表进行搜索,还可以对组织机构中的人员和专家进行搜索,并对人员和专家建立联系;对搜索过滤功能有了增强,可以在上下文环境中进行搜索;在搜索范围上,可以使用网页、桌面、移动设备进行搜索。

  不仅如此,SharePoint 2010是一个功能强大的搜索平台,您可以利用常见的内置工具构建自定义搜索解决方案与搜索引擎应用程序,如利用无需编码解的决方案满足各种搜索需求,应用场景如创建360°客户视图,创建自定义搜索解决方案,来扩展诸如CRM和ERP系统等企业应用程序的用途,方便信息融合和信息导航;构建由搜索驱动的应用程序,以综合利用结构化和非结构化的内容。

  Windows PowerShell 管理

  Windows PowerShell 是新的脚本工具,在SharePoint 2010中为管理员提供了管理功能。如我们在性能控制和RBS中都可以使用PowerShell。管理员使用PowerShell 主要是通过Cmd.exe 和Stsadm.exe这两个命令来执行的,如图4所示:

  图4 使用PowerShell 命令

  案例与应用

  网站管理员需要在5500个网站上激活某一功能,通过使用PowerShell 来运行Stsadm命令,可以使用以下脚本:

foreach ($site in (get-spsite -limit 5000000 -Webapplication $WebApp))

  { Write
-Host "Activating feature " $solutionName "on" $site.url "...";

  Write
-Host stsadm "-o activatefeature -url" $site.url "-filename" $featureFileName;

  stsadm
-o activatefeature -url $site.url -filename $featureFileName

  
if( $lastexitcode -ne 0 )

  { Write
-Host "Something went wrong activating the site feature. Exit code: " $lastexitcode "`n" -ForegroundColor Red;

  $failure
= $true;

  $
error.Clear();

  }

}

 但是,在实际测试中,这段脚本如果要跑完,需要12个小时以上的时间,有没有改进的办法呢?对于复杂任务的处理,PowerShell可以使用Cmdlet,使用Cmdlet的脚本如下:

Get-SPSite –Limit ALL –WebApplication $WebAppNameorUrl |%{ Enable-SPFeature $FeatureIdOrName –url $_.Url }

 

    经过验证,使用Cmdlet后,其执行时间仅仅有1个小时就足够了。给我们的启发是,只要能够使用Stsadm的地方,都可以使用PowerShell,而且后者的效率更高。

0
相关文章