SandboxSolution SharePoint2013 performance

Sandbox Solutions im SharePoint sind nach der Veröffentlichung von SharePoint 2013 abgekündigt worden. Viele Softwarehersteller stellen aber noch immer und mit Überzeugung SharePoint Solutions zur Verfügung.
Um Sandbox Solutions auf eurem System installieren zu können muss erst einmal der Dienst der diese Aufgaben erledigen soll, gestartet werden. Dies erledigt man am Besten in der Zentraladministration.
Zentral Admininistration > Dienste auf dem Server > Microsoft SharePoint Foundation Sandboxed Code Service > starten
Nun können Sandbox Solutions auf Webseitsammlungen über Lösungen / Solutions hinzugefügt und aktiviert werden.
Vorher sollten aber die Sandbox Einstellungen durchgeführt werden. Da die Standard Einstellungen bei leistungsintensiven Anwendungen evtl. nicht starten.
Der Sandbox Dienst besteht in der Standard Einstellung aus mehreren Prozessen.
1x sandbox code execution host Service
1x sandbox Code execution worker process
1x sandbox Code execution worker process Proxy
Um dies anzupassen empfehle ich den TechNet Artikel „Configure sandboxed solutions service Tiers
Um die Sandbox Solution Service Tiers anzupassen kann einfach dieses Powershell Script ausführen.
#Initialisiere den SPUserCodeService  Variable
 $uc=[Microsoft.SharePoint.Administration.SPUserCodeService]::local

#Löschen des Standard Tiers

foreach($tier in $uc.Tiers)
 {
 $tier.Delete()
 }
 $uc.Tiers.Add("Tier1")
 $uc.Tiers["Tier1"].MaximumWorkerProcesses = 5
 $uc.Tiers["Tier1"].MaximumConnectionsPerProcess = 10
 $uc.Tiers["Tier1"].MaximumAppDomainsPerProcess = 10
 $uc.Tiers["Tier1"].PriorityPerProcess = [int] ([System.Diagnostics.ProcessPriorityClass]::Normal)
 $uc.Tiers["Tier1"].ResourceMaxValue = 0.1
 $uc.Tiers["Tier1"].Update()

$uc.Tiers.Add("Tier2")
 $uc.Tiers["Tier2"].MaximumWorkerProcesses = 5
 $uc.Tiers["Tier2"].MaximumConnectionsPerProcess = 10
 $uc.Tiers["Tier2"].MaximumAppDomainsPerProcess = 10
 $uc.Tiers["Tier1"].PriorityPerProcess = [int] ([System.Diagnostics.ProcessPriorityClass]::BelowNormal)
 $uc.Tiers["Tier2"].ResourceMaxValue = 10
 $uc.Tiers["Tier2"].Update()

Sollte dann die Solution aufgrund von Einschränkungen abbrechen, können diese Werte auch angepasst werden. Welche Einstellungsmöglichkeiten es gibt, beschreibt dieser TechNet Artikel

Power Shell Script zum anzeigen von aktuellen Einstellungen
$uc=[Microsoft.SharePoint.Administration.SPUserCodeService]::Local

# Werte ausgeben
Write-Host "New worker process execution timeout is:" $uc.WorkerProcessExecutionTimeout 
Write-Host "New CPU execution timeout is:" $uc.ResourceMeasures["CPUExecutionTime"].AbsoluteLimit 
Write-Host "Current ProcessCPUCycles:" $uc.ResourceMeasures["ProcessCPUCycles"].AbsoluteLimit 
Write-Host "ProcessHandleCount :" $uc.ResourceMeasures["ProcessHandleCount"].AbsoluteLimit 
Write-Host "PercentProcessorTime :" $uc.ResourceMeasures["PercentProcessorTime"].AbsoluteLimit 
Write-Host "ProcessIOBytes :" $uc.ResourceMeasures["ProcessIOBytes"].AbsoluteLimit 
Write-Host "ProcessThreadCount :" $uc.ResourceMeasures["ProcessThreadCount"].AbsoluteLimit
Write-Host "ProcessVirtualBytes:" $uc.ResourceMeasures["ProcessVirtualBytes"].AbsoluteLimit 
Write-Host "SharePointDatabaseQueryCount :" $uc.ResourceMeasures["SharePointDatabaseQueryCount"].AbsoluteLimit 
Write-Host "SharePointDatabaseQueryTime :" $uc.ResourceMeasures["SharePointDatabaseQueryTime"].AbsoluteLimit 
Write-Host "UnhandledExceptionCount :" $uc.ResourceMeasures["UnhandledExceptionCount"].AbsoluteLimit 
Write-Host "UnresponsiveprocessCount :" $uc.ResourceMeasures["UnresponsiveprocessCount"].AbsoluteLimit 
Write-Host "IdlePercentProcessorTime :" $uc.ResourceMeasures["IdlePercentProcessorTime"].AbsoluteLimit 
Write-Host "AbnormalProcessTerminationCount :" $uc.ResourceMeasures["AbnormalProcessTerminationCount"].AbsoluteLimit 
Write-Host "CriticalExceptionCount :" $uc.ResourceMeasures["CriticalExceptionCount"].AbsoluteLimit

Power Shell zum setzen von Einstellungen

Wenn die Einstellungen gesetzt sind muss der Sharepoin Usercode Dienst unbedingt neu gestartet werden. In diesem Schritt setze ich die Werte ProcessCPUCycles und ProzessHandleCount.
 $spCodeService = [Microsoft.SharePoint.Administration.SPUserCodeService]::Local
$cycles = $spCodeService.ResourceMeasures["ProcessCPUCycles"]
 $cycles.AbsoluteLimit = 9000000000000000000000000 # Wert muss angepasst werden
 $cycles.Update()
 
$spCodeService = [Microsoft.SharePoint.Administration.SPUserCodeService]::Local
 $Process = $spCodeService.ResourceMeasures["ProcessHandleCount"]
 $Process.AbsoluteLimit = 5000000000 # Wert muss angepasst werden
 $Process.Update()

Sandbox Solutions haben nur eine begrenze Anzahl von Ressourcen die in Punkte gemessen werden. Die Aktuell verbrauchten Punkte kann man sich auf der Websitesammlungs Administration unter Lösungen anzeigen. Standardmäßig werden 300 Punkte zur Verfügung gestellt.

Will man diese Punkte für eine Webseitesammlung anpassen, kann man einfach in der Zentraladministration durchführen.

Anwendungsverwaltung > Kontingente und Sperren verwalten > Webanwendung auswählen und danach die Einstellungen speichern.

quota

Veröffentlicht von

Andreas

29 Jahre alt. Aus Oldenburg / Varel / Butjadingen. Beschäftigt sich mit Tech kram und alles was mit Rennrad und BikePolo zu tun hat.

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.