Vues :

Question:
How to improve the performance of the DocuWare Desktop?


Solution:
The DocuWare Desktop Apps have good default settings for most scenarios of their usage. We continuously evaluate and optimize them. For really heavy usage, like importing thousands of documents per hour, DocuWare Desktop Apps need some fine tuning.
This article will help you to get the most out of DocuWare Import. Generally, we recommend using the latest DocuWare Version and/or to install the latest available HotfixPack.

  1. DocuWare Desktop Architecture Overview:

    DocuWare Desktop is split into two main parts - client and server side. On the client side you install the DocuWare Desktop Apps whereas on the server side you install the DocuWare Desktop Server components.
    The DocuWare Desktop Apps and the DocuWare Job Server communicate via http(s) only. In the DocuWare Desktop Service, which is the main framework of the Desktop Apps all documents that are processed are covered in jobs.
    These jobs exist for reliability reasons not only in memory, but they are also persistent in a database (file). Although this decreases performance a bit, documents are the highest priority value. So, we designed our software that it may crash, or the service killed at any time without losing a document.

    The DocuWare Desktop Apps (DocuWare Desktop Service) and the DocuWare Job Server will automatically share their Jobs folder (Job temp. files), if installed on the same machine. This has the advantage that a file transfer from Docuware Desktop Service to Docuware Job Server is much faster. DocuWare Job Server will simply take the files from the same folder, which enhances performance. After the document is successfully stored, the DocuWare Job Server gives feedback to the Docuware Desktop Service. Only then the job is marked as successful in the history, removed from the temp folder and a notification triggered.

    If you run DocuWare Import on the server and all monitored folders are local and accessible by the user running DocuWare Desktop Service (local system), the DocuWare Desktop Apps doesn't have to be started.
    DocuWare Import will continue to work also when the DocuWare Desktop Apps are not started or there is no user logged on to the server. It is only necessary that DocuWare Desktop Service is running.

     
  2. Provide enough resources
    Running OCR and processing thousands of documents requires a bit more resources. So, make sure you are providing these resources.
    If you are running DocuWare Import on a dedicated server following resources are recommended:
    - CPU Cores: 4 (3,2 GHz)
    - RAM: 8 GB

    If you are running DocuWare Import together with the other DocuWare Services on the server following resources are recommended:
    - CPU Cores: 8 (3,2 GHz)
    -  RAM: 16 GB
    Check also the system requirements of your used DocuWare version:
    System requirements (6.7)
    System requirements (6.8)
    System requirements (6.9)
    System requirements (6.10)
    System requirements (6.11)
    System requirements (6.12)

     
  3. Use a fast HDD or a Solid State Drive
    DocuWare Desktop works heavily with the hard disk. One of the easiest performance tweaks is the setup of a SSD for the %ProgramData%\DocuWare\Jobs\ folder.

     
  4. Stop Influence from Real-Time Antivirus Protection
    There is a lot of security software available and most of them protect the system by real-time scanning of file changes. This can slow down the system especially if files are checked which are no threat as e.g. database files
    Please exclude the following file locations and URL from real-time watching:
       - %ProgramData%\DocuWare\*
       - %TEMP%\DocuWare\*
       - %LOCALAPPDATA%\DocuWare\*
       - DocuWare HTTP Base URL: e.g. http://<servername/IP>/DocuWare/*

     
  5. Import from local folders
    If large amounts of small files are imported from a remote location (i.e. network share) the performance will significantly decrease. It is better to have shared but local folders, which are monitored by DocuWare Desktop (Service)!
     
  6. Reduce Unnecessary Overhead of OCR or Barcode Recognition
    One of the most expensive tasks in document processing is optical character recognition (OCR) and barcode recognition. For on-premises systems we have introduced an option to do as little of these tasks as possible. This option is available for Docuware Import configurations. It is not supported for Printer Configurations, because the automatic configuration identification requires all information to decide which configuration to select. For DocuWare Cloud this option is not available at all.
    For activating the performance enhancement, check the option ‘Run automatic text and barcode recognition only if required ’ on the General page of an Import configuration.
  7. Tweak the Desktop Apps Parameters
     
    If you are running a DocuWare version 6.9 or higher you can easily tweak the parameters described below by simply adding so called Individual Overrides files. (This Feature is available starting with DocuWare 6.9)
    1. Download the files DocuWare.DesktopService.exe.config.overrides and DocuWare.Desktop.exe.config.overrides: DWDesktop_Overrides_ImportServer.zip
    2. Stop the DocuWare Desktop Apps and DocuWare Desktop Service.
    3. Copy the files into the DocuWare Desktop Apps program path
      x86: C:\Program Files\DocuWare\Desktop\
      x64: C:\Program Files (x86)\DocuWare\Desktop\
    4. Start the DocuWare Desktop Service and the DocuWare Desktop Apps again. The new settings are active immediately.

 ​Using Individual Overrides files these settings will remain active also after an upgrade!
 

For the DocuWare version 6.7 and Docuware version 6.8 please perform these changes manually:

  1. Increase Concurrency of Job Processing
    The jobs can be processed in parallel. On DocuWare Desktop Service the default setting allows two jobs concurrently. On DocuWare Job Server up to 8 jobs can be processed concurrently by default.
    This setting can be changed, but it is advisable to not choose values higher than twice the real core count of the system. For example, on an Intel i7 machine you shouldn’t specify more than 8 jobs. It will become even slower otherwise.
    This setting can be found in DocuWare.DesktopService.exe.config in section <appSettings> in the program files folder of DocuWare Desktop.

    <appSettings>
       ...

          <add key="ConcurrencyMaximum" value="8"/>
       ...
    </appSettings>
  2. Enlarge Pipeline of Import Jobs
    You may have recognized that DocuWare Import doesn’t fill all files of an import folder at once into DocuWare Desktop Service. You will see that there are still a lot of files in the watched folder and the number of documents, being imported stay more or less on the same level. This level is set by default to 10 in the DocuWare version 6.8 or 5 in the DocuWare version 6.7. The queue level is not checked continuously. So, it can take a few seconds until new documents are allowed to be imported. In very fast systems this can slow down the system tremendously. Depending on performance of the tasks it can be useful to raise the value up to 100. Much higher values will slow down the system a little.
    This setting can be found in DocuWare.DesktopService.exe.config in section <appSettings> in the program files folder of DocuWare Desktop.

    <appSettings>
       ...

          <add key="EnqueueLimit" value="50"/>
       ...
    </appSettings>
     

    In the DocuWare version 6.7 the name of the key was ‘HotfolderEnqueueLimit ’.
     
  3. Change Notification Level
    By default for every Job a tray notification will be shown (default value is "Info") where the DocuWare Desktop Apps are installed. This tray notifications will reduce the performance. To lower the CPU/RAM load it is possible to change the tray notification level.
    This setting can be found in DocuWare.Desktop.exe.config in section <appSettings> in the program files folder of DocuWare Desktop  

    <appSettings>
       ...

          <add key="TrayNotificationLevel" value="Warning"/> <!-- allowed values : Nothing, Error, Warning, Info -->
       ...
    </appSettings>