SharePoint 2010 中沙盒解决方案的资源使用率限制
本主题介绍了 Microsoft SharePoint Foundation 对沙盒解决方案施加的系统资源使用率限制。
在 SharePoint Online 中提供
沙盒解决方案受三种资源使用率限制的约束,可根据 (1) 应用限制的实体类型和 (2) 因超出限制而受到处罚的实体类型对这些限制进行分类。SharePoint Foundation 解决方案监视基础结构将自动实行处罚。此外,服务器场管理员可出于任意原因手动阻止管理中心应用程序内的任何沙盒解决方案。
SharePoint 2010 中沙盒解决方案的资源使用率限制类型
以下是资源使用率限制的三种类型。
-
每个请求(请求 遭到处罚):对于完成沙盒解决方案所需的时间有一个硬性限制。默认情况下,此时间限制为 30 秒。如果沙盒解决方案超出了该限制,则将终止处理请求的应用程序域(而非沙盒工作进程)。此限制是可配置的,但只能通过针对对象模型的自定义代码进行此操作。沙盒解决方案无法访问对象模型的相关部分,因此,任何沙盒解决方案都无法更改此限制。
-
每个请求(进程 遭到处罚):有一组适用于请求的附加资源限制(共 15 条)。如果请求超出其中某个限制,则将终止进程(以及进程中运行的所有沙盒解决方案,包括运行良好的沙盒解决方案)。此外,可以通过 SharePoint Management Shell 或针对对象模型的自定义代码来配置这些限制。
-
每天/每个网站集(网站集的整组沙盒解决方案遭到处罚):每个网站集均受可配置的日常资源点 的最大数目的限制。这些点基于某种专有算法进行累计,该算法会考虑网站集中安装的沙盒解决方案对 15 类资源的使用。当一个网站集超出其允许的最大点数(默认情况下,该数设置为 300)时,该网站集中的所有沙盒解决方案都将终止,且在剩余时间内再也无法运行。网站集管理员可在网站集的解决方案库中查看网站集的沙盒解决方案在当天使用的资源点总数(以及 14 天的平均值)。还将显示每个解决方案使用的资源点数。它们可在同一库中停用和移除任何沙盒解决方案。服务器场管理员可在管理中心应用程序中基于每个网站集,配置每个网站集允许的总点数。可通过 SharePoint Management Shell 或针对对象模型的自定义代码来配置分配给每类资源的各个单元的点数。
度量的资源
下表列出了所监视的 15 项系统资源。
-
“最小阈值”列指定在将资源聚合到汇总之前须达到的默认最小资源数。但是,如果该列中的值为 0,则意味着将聚合任何数量(虽然很小)。
-
“绝对限制”列指定将导致立即终止进程的默认数量。请注意,对于某些资源,此列中的值为 1。这意味着,甚至于一个资源实例也将导致立即终止进程。
-
“每点的资源”列指定默认情况下,将导致向“每天/每网站集”总计中添加附加点的资源数量。
资源
|
备注
|
最小阈值
|
绝对限制
|
每点资源
|
AbnormalProcessTerminationCount
|
提供此“资源”是为了对因其他某些原因而终止的沙盒解决方案施加附加处罚。具体而言,向“每天/每网站集”总计添加 1 个点。因此,此“资源”处罚表示当 (1) 超出某个其他度量的绝对限制且立即关闭沙盒进程时或当 (2) 因请求所花的时间过长而导致关闭处理请求的应用程序域时的情况(请参阅上面的每个请求(请求遭到处罚))。因此,该行的“最小阈值”列和“绝对限制”列不适用。
|
0
|
1
|
1
|
CPUExecutionTime
(按秒度量)
|
只要将此资源的绝对限制设置为高于上述每个请求(请求遭到处罚)限制,则该限制将不适用。通常,管理员希望使该限制的值较高一些,以便在较慢请求导致整个沙盒工作进程(包括该进程中运行良好的沙盒解决方案)终止之前终止该请求。
|
0.1
|
60
|
200
|
CriticalExceptionCount
|
关键异常包括:
|
0
|
3
|
10
|
IdlePercentProcessorTime
|
此度量仅适用于当前未处理任何请求的沙盒工作进程。此类进程将不会占用过多的处理器时间。当“绝对限制”列中的值为 10 时,意味着如果某个此类进程占用了 10% 以上的处理器时间,则将终止该进程。从不使用“每点的资源”值。但是,当终止该进程时,AbnormalProcessTerminationCount 将适用,并向天资源计数中添加一个资源点。
|
0
|
10
|
100
|
InvocationCount
|
|
0
|
100
|
100
|
PercentProcessorTime
|
|
0
|
100
|
85
|
ProcessCPUCycles
|
|
10,000,000,000
|
100,000,000,000
|
100,000,000,000
|
ProcessHandleCount
|
|
500
|
5000
|
10,000
|
ProcessIOBytes
|
|
0
|
100,000,000
|
10,000,000
|
ProcessThreadCount
|
|
10
|
200
|
10,000
|
ProcessVirtualBytes
|
|
100000000
|
4,000,000,000
|
1,000,000,000
|
SharePointDatabaseQueryCount
|
对 SharePoint 内容和配置数据库进行的查询。
|
0
|
100
|
400
|
SharePointDatabaseQueryTime
按秒度量
|
对 SharePoint 内容和配置数据库进行查询所花的时间。
|
0.1
|
60
|
20
|
UnhandledExceptionCount
|
|
0
|
3
|
50
|
UnresponsiveprocessCount
|
|
0
|
1
|
2
|
重要资源使用率 API
可通过使用 SharePoint Foundation 对象模型更改这些值。以下是用来执行此操作的关键 API。
通过将特定资源度量的名称或 GUID 用作索引,可获取对该度量的引用。例如,以下代码行可将 SharePointDatabaseQueryTime 度量的绝对限制降低为 30 秒。
SPUserCodeService.Local.ResourceMeasures["SharePointDatabaseQueryTime"].AbsoluteLimit = 30.0;
SPUserCodeService.Local.Update();
以下代码可将每个请求(请求遭到处罚)限制的值增加到 40 秒。
SPUserCodeService.Local.WorkerProcessExecutionTimeout = 40;
SPUserCodeService.Local.Update();
重要信息 |
为了使更改生效,必须在运行 Microsoft SharePoint Foundation 沙盒代码服务的所有服务器上重新启动该服务。
|