分析了您之前提供的在CPU使用率高的时候抓取的w3wp进程的dump,以下是一些发现:

  • 在抓取dump文件的这个时刻,.Net的垃圾回收正在运行,在内存资源紧张时,.Net会自动启动内存垃圾回收机制,释放内存资源以供程序使用。由于垃圾回收过程需要占用较多CPU资源,这就是这段时间CPU使用率较高的原因。
  • 在这个w3wp进程使用的内存中,绝大部分都被PermissionCollection结构体占用,这个结构体是用来记录SharePoint站点中各个项目对应的权限,因此如果我们SharePoint站点中有很多独立权限的项目,这些结构体会占用较大的内存空间。有关这个结构体中的内容,您可以参考msdn文章:http://msdn.microsoft.com/en-us/library/permissions.permissions.getpermissioncollection(v=office.12).aspx
  • 在抓取dump文件的时刻,您的环境中应该有爬网正在进行,我们看到了w3wp进程中有类似如下http请求:http://apps.westrac.com.cn:80/_vti_bin/sitedata.asmx,这个Web Service请求是由爬网程序发出的,爬网程序通过这个Web Service获取 SharePoint站点中的内容以及与这些内容对应的权限,所以以上提到的PermissionCollection在多数情况下是由sitedata.asmx这个Web Service在处理爬网请求时产生的。

因此,您之前观察到的CPU和内存使用率间歇性增高的问题,与您环境中的爬网有一定关系。建议您在考虑Jinkui之前提出的减少独立权限数量和列表项目数量的同时,尽量不要把SharePoint爬网设置在高峰时间启动,以免影响SharePoint服务器的整体性能。

数据库查询语句执行时间的长短是由很多因素综合决定的,根据我们对日志的分析,更新新环境SharePoint内容数据库中两个表的统计信息并重置索引,可以较有效的提高查询速度。请您在新升级的SQL Server数据库中执行以下命令,请确定WTC_App_Center_Content是您访问慢网站使用的内容数据库:

use WTC_App_Center_Content;

go

UPDATE STATISTICS AllUserData WITH FULLSCAN

UPDATE STATISTICS AllDocs WITH FULLSCAN

ALTER INDEX ALL ON AllUserData REBUILD

ALTER INDEX ALL ON AllDocs REBUILD

由于执行这个命令时会对数据库产品性能影响,请您最好的非工作时间执行,根据数据库中数据量的大小,这个命令可能会执行较长时间。

如果我们在调整了爬网排程,更新了数据库中的统计信息后,发现新环境还是明显慢于老环境,我们可以继续抓取SQL Server的PSSDiag日志,进一步分析还有没有提升查询速度的空间。结合之前的分析,导致您环境中SharePoint访问慢的根本原因是当前站点中有独立权限项目的数量太多,导致SQL Server中的查询语句需要较多时间返回。所以这个问题的根本解决方法是根据我们官方文档中的推荐配置对您站点的内容做适当调整,具体可以参考JianKui之前的邮件。

sharepoint site performance的更多相关文章

  1. SharePoint Site Pages & Application Pages

    转:http://www.wcode.net/plus/view.php?aid=1582071 SharePoint一个很重要的概念就是Site Pages和Application Pages.接触 ...

  2. SharePoint自动化系列——通过PowerShell创建SharePoint Site Collection

    通过PowerShell创建SharePoint Site Collection,代码如下: Add-PSSnapin microsoft.sharepoint.powershell function ...

  3. Q: Why can't I access the Site Settings of my SharePoint site? 'File Not Found'

    Q: I am trying to access the Site Settings of my SharePoint site, but I get a File Not Found error, ...

  4. Development of large-scale site performance optimization method from LiveJournal background

    A LiveJournal course of development is a project in the 99 years began in the campus, a few people d ...

  5. SharePoint Site "Regional Settings"功能与CSOM的对应

    博客地址:http://blog.csdn.net/FoxDave SharePoint网站中的区域设置:"Regional Settings",可以用CSOM通过Site的一些 ...

  6. SharePoint Site "Language Settings"功能与CSOM的对应

    博客地址:http://blog.csdn.net/FoxDave SharePoint网站中的语言设置:"Language Settings",可以用CSOM通过Site的一些 ...

  7. SharePoint API测试系列——Manage SharePoint Site Policy & Expiration Email with CSOM API

    转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 对CSOM(Not SSOM) Site Policy & Expiration Emai ...

  8. 如何用ip代替机器名访问sharepoint site

    1. iis里绑定ip 2. AAM里加一条ip的记录

  9. Sharepoint学习笔记—习题系列--70-576习题解析 -(Q84-Q87)

    Question  84You are designing a Web Part for SharePoint 2010 that must be able to be used on any sit ...

随机推荐

  1. 利用MemoryAnalyzer进行OutOfMemoryError的诊断分析

    这篇帖子只介绍利用MemoryAnalyzer进行简单的JVM的堆的分析,至于JVM的内部结构是怎么样的,这里不进行分析.好吧,废话不多说:首先如果我们要分析JVM某个时刻的Heap的对象分配情况,我 ...

  2. Git----远程仓库之添加远程库02

    现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub上创建一个Git库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举 ...

  3. 实现socketChannel 通信例子

    https://blog.csdn.net/qq_33935895/article/details/79678345

  4. 迷你MVVM框架 avalonjs 沉思录 第1节 土耳其开局

    #cnblogs_post_body p{ text-indent:2em; margin-top: 1em; } 正如一切传说的开端那样,有一远古巨神开天辟地,然后就是其他半神喧宾夺主.我们对最巨贡 ...

  5. maven使用阿里云maven库

    在maven\conf\settings.xml中的mirrors添加 <mirror> <id>nexus-aliyun</id> <name>Nex ...

  6. 74. Search a 2D Matrix (Graph; Divide-and-Conquer)

    Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...

  7. java文档打包成压缩包并且下载

    需求,根据产品ID查询产品详情,产品详情会返回产品的一些文案,以及图片的url.需要做成,将文案信息记录在一个txt文档中,然后图片下载到文件夹,最后下载到本地,下载后自动删除刚才生成的文件夹以及文件 ...

  8. 7-linux-Centos7安装python3并与python2共存

    转载自:https://www.cnblogs.com/JahanGu/p/7452527.html linux-Centos7安装python3并与python2共存   1.查看是否已经安装Pyt ...

  9. SQLSERVER CROSS APPLY 与 OUTER APPLY 的应用

    日常开发中遇到多表查询时,首先会想到 INNER JOIN 或 LEFT OUTER JOIN 等等,但是这两种查询有时候不能满足需求.比如,左表一条关联右表多条记录时,我需要控制右表的某一条或多条记 ...

  10. ESXi系统命令行下启动虚拟机

    从命令行启动虚拟机: 用命令列出虚拟机的ID:vim-cmd vmsvc/getallvms |grep <vm name>注意: 第一列输出是vmid. 用命令查看虚拟机启动状态:vim ...