I recently realised my Lab’s Office Online Server is broken, and it looks to have been down since these (November) Windows updates were applied on December 11th:
(I’m running with the US date format MM/DD/YYYY for the time being).
This machine is running Windows Server 2016 and Office Online Server 2016 under Hyper-V. It has 4 virtual cores and 2G RAM.
Symptoms include:
- users not being able to share PowerPoint files in meetings:
Some sharing features are unavailable due to server connectivity issues.
or
PowerPoint Online stopped responding. Please try refreshing the page.
- … and this glaring error – Event 3 – in the Windows / Application Event Log, which started appearing the day the updates referenced above were applied:
WebHost failed to process a request. Sender Information: System.ServiceModel.ServiceHostingEnvironment+HostingManager/63835064 Exception: System.ServiceModel.ServiceActivationException: The service '/pptc/Viewing.svc' cannot be activated due to an exception during compilation. The exception message is: Memory gates checking failed because the free memory (52883456 bytes) is less than 5% of total memory. As a result, the service will not be available for incoming requests. To resolve this, either reduce the load on the machine or adjust the value of minFreeMemoryPercentageToActivateService on the serviceHostingEnvironment config element.
I noticed 6 different variations on Event 3, each reporting different affected components:
- The service ‘/dss/DocumentSessionService.svc’ cannot be activated due to an exception during compilation.
- The service ‘/ppte/Editing.svc’ cannot be activated due to an exception during compilation.
- The service ‘/pptc/Viewing.svc’ cannot be activated due to an exception during compilation.
- The service ‘/wvc/Conversion.svc’ cannot be activated due to an exception during compilation.
- The service ‘/diskcache/DiskCache.svc’ cannot be activated due to an exception during compilation.
- The service ‘/farmstatemanager/FarmStateManager.svc’ cannot be activated due to an exception during compilation.
After enough of those, the system will throttle the alarms and drop an event 28 into the log:
In order to prevent event log flooding, no further service activation failures due to InsufficientMemoryExceptions will be logged for the next '01:00:00'.
Sender Information:
System. ServiceModel.ServiceHostingEnvironment+HostingManager/45653674
Process Name: w3wp
Process ID: 9312
(“w3wp” is an IIS worker process).
Quite surprisingly, despite all the above, the standard test of browsing to https://<WAC-OOSFQDN>/hosting/discovery SUCCEEDS!
The fix?
Well, when an error says “insufficient RAM” and you’re running a server on 2G, the course of action is apparent. I upped it to 4G, but alas, same problem: still with the event 3’s and still can’t add a PPTX into a meeting.
I didn’t screen-grab Task Manager, but even with 4G the machine was running @ 97% memory use – and the bulk of that was IIS.
Anyway, now with 8G of dedicated RAM it’s behaving fine – still Unhealthy of course, but that’s a story for my next post.
More reading / References
If you’re shopping for some supporting documentation to help guide the resource allocation, you might like me find it’s thin on the ground (when you’re shopping for a config specific to its use in SfB). Here’s the best I can find:
Plan Office Online Server: “Office Online Server uses the same minimum hardware requirements as SharePoint Server 2016.”
Hardware and software requirements for SharePoint Server 2016:
Installation scenario | Deployment type and scale | RAM | Processor | Hard disk space |
Single server role that uses SQL Server | Development or evaluation installation of SharePoint Server 2016 with the minimum recommended services for development environments. Use the Single-Server farm role that will let you choose which service applications to provision. For additional information on Single-Server farm role, see Overview of MinRole Server Roles in SharePoint Server 2016 | 16 GB | 64-bit, 4 cores |
80 GB for system drive 100 GB for second drive |
Single server role that uses SQL Server | Pilot or user acceptance test installation of SharePoint Server 2016 running all available services for development environments. | 24 GB | 64-bit, 4 cores |
80 GB for system drive 100 GB for second drive and additional drives |
SharePoint server in a multiple server farm | Development or evaluation installation of SharePoint Server 2016 with a minimum number of services. | 12 GB | 64-bit, 4 cores |
80 GB for system drive 80 GB for second drive |
SharePoint server in a multiple server farm | Pilot, user acceptance test, or production deployment of SharePoint Server 2016 running all available services. | 16 GB | 64-bit, 4 cores |
80 GB for system drive 80 GB for second drive and additional drives |
As per my highlighting, I think a bare minimum of 12G should be your starting position in order to be considered compliant with Microsoft’s recommendations.
If you happen to find any better clarity around the use of OOS in an SfB environment, please drop the details in a comment below.
Revision History
3rd January 2019: This is the initial post.
– G.