OneDrive for Business Advanced Configuration and Performance Tuning

This section lists tools and techniques for monitoring resource usage and tuning the OneDrive for Business connector. Many of the methods recommended here involve the use of third party tools that are freely available for such purposes.

Tip: Substantial help for many of the tools discussed in this section is available online.
  • Analyzing applications with JMX - The Java Management Extensions (JMX) supply tools for managing and monitoring applications, system objects, devices and service oriented networks. To use JMX, you must first enable the management port in a connector seed. Once that port is eanbled, you can use a variety of JMX-compliant tools to analyze exactly what the connector is doing when in operation.

    For example, Java virtual machine (JVM), which has built-in instrumentation, can enable you to monitor and manage the performance of a connector using JMX. To enable the JMX agent and configure its operation, you must set certain system properties when you start the Java virtual machine (JVM). For detailed instruction, see the online resources for using JMX.

  • Analyzing applications with JConsole - JConsole is a graphical, JMX-compliant tool that connects to a running JVM and can therefore be used to analyze information about a connector. For more detailed instructions on using JConsole, see the online JConsole documentation.
  • Profiling applications with Visual VM - VisualVM is a another visual tool that integrates several command line Java Development Kit (JDK) tools and offers lightweight profiling capabilities such as monitoring the memory use of a connector over time. For more detail on using VisualVM, consult the online Visual VM resources.
    Note: The JMX, JConsole, and VirtualVM tools can all enable you to analyze memory allocation over time in one fashion or another. Based on such monitoring and its analysis, you can make strategic decisions regarding the adjustment of cache sizes, heap space and RAM.
  • Threading - The number of threads the connector uses for crawling can be adjusted with an eye toward memory allocation and speed. There are many variables that determine how aggressively you can talk to the associate resource server(s). You will develop a comfort level for your particular environment by adjusting the number of threads that the connector uses and monitoring its performance. Typically, using between 3 and 5 threads is sufficient for most environments. The default value for threading is 1.
  • Minimizing Error Level Logging - Another setting that can have a performance impact is error level logging. By default, error level logging is turned off. When turned on, be aware that the accumulation of large log files can cause connector performance to suffer. In most cases, you should only enable debug mode and trace level logging when doing error level logging. In other words, it is not recommended to simply let log files build over time in a production environment.
    Tip: For more detailed information about advanced logging configuration settings, see the online resources for Log4j.
  • Reducing Memory Footprint - If you are interested in reducing the memory footprint of a connector you may opt to turn off caching. However, caching can have a dramatic impact on speed. Therefore, instead of disabling cache, you can adjust values in the advanced cache settings portion of the connector seed. Conversely, if you have a lot of memory, you can opt to bump up the cache settings, increase heap size to prevent out of memory errors. Another setting to consider is to flush the cache once security updates to the resource that you are crawling have been indexed, which will help improve the overall performance of the connector.