Knowledgebase: Pre-Sales
How to Allocate Memory Resources to FileCatalyst Direct Products
Posted by Aly Essa, Last modified by Aly Essa on 04 August 2016 11:03 AM

Overview

All of our FileCatalyst Products are installed with default memory limits, including both initial reserve and maximum memory. However, these can be configured to fit your specific needs and environment.  This article will go through the configuration process for each FileCatalyst Product for Windows, Linux, and Mac OSX

NOTE:  

  • For all environments:
    If you are using a 32-bit Operating System or Java 32-bit, the maximum memory you can define for JAVA is limited to 1.5GB of memory.  64-bit Operating Systems running 64-bit Java do not have such memory limitations.
  • It is also recommended (but not required) to set the minimum and the maximum memory to the same value, as this allows JAVA to allocate a single continuous block of the memory from the OS on startup.

 

Environment

FileCatalyst Direct Suite v3.4 and later.

 

Resolution

FileCatalyst Direct Server:

  1. Windows

    1. Stand-alone:  When running FileCatalyst Server stand-alone (directly launching the executable), the FileCatalyst Server will run using a maximum of 1024 MB of memory.  This cannot be modified since the values are embedded inside the FCServer.exe binary.

    2. Service:  When running FileCatalyst Server as a Windows Service, you can configure the application to use either a smaller or larger memory footprint based on your needs:
      1. Stop FileCatalyst Server Service.
      2. Open the fcconf.conf found in the application installation directory (by default C:\Program Files\FileCatalyst Server\fcconf.conf) in a text editor.
      3. Locate the following entries in the file:

        # Initial Java Heap Size (in MB)
        wrapper.java.initmemory=1024
        # Maximum Java Heap Size (in MB)
        wrapper.java.maxmemory=1024

      4. Enter the desired variable Initial and Maximum Memory.

    3. Save the file.
    4. Start FileCatalyst Server Service.

  2. Linux

    1. Stand-alone:  Linux installations include basic startup scripts (fc_server.sh, fc_server_console.sh) which can be modified to use more memory.  
      1. Here is a sample from a launch script with 1GB minimum and 4GB maximum memory (non-continuous block):

        java -Xms1024 -Xmx4096M -jar FileCatalystServer.jar -systray


      2. To run with 4GB of RAM, modify the script to look like the following:

        java -Xms4096M -Xmx4096M -jar FileCatalystServer.jar -systray


    2. Service:  When running FileCatalyst Server as a Linux/Solaris Service, you may configure the application to use a different memory footprint by editing wrapper.conf:
      1. Stop FileCatalyst Server Service.
      2. Edit wrapper.conf found in the application installation directory (by default /opt/utechsoft/server/conf/wrapper.conf) using vi or another text editor.
      3. Enter the memory values you require for the following fields:

        # Initial Java Heap Size (in MB)
        wrapper.java.initmemory=1024
        # Maximum Java Heap Size (in MB)
        wrapper.java.maxmemory=1024

        Choose your values for minimum and maximum memory and enter it.

      4. Save and close the wrapper.conf file.
      5. Start up FileCatalyst Server Service.

  3. MacOSX

    1. Stand-alone:  MacOSX configurations are managed by an Info.plist file residing inside the FileCatalystServer.app package which tells the system the parameters needed to start the application.
      1. To access the Info.plist, select the FileCatalystServer.app icon and right-click.
      2. Select Show Package Contents.
      3. Edit the info.plist with a text editor.
      4. To increase the memory used edit  the following line:

        <string>-Xms1024M -Xmx1024M</string>

      5. Save the file and close the editor.

    2. Service:  The service script (fc_service) supplied for MacOSX service installations creates an Info.plist file as part of its service registration.  You can modify the fc_service script to change the memory constraints before registering the application as a service (or to re-register the service after memory settings have been modified):
      1. Select the FileCatalystServer.app icon and right-click it.
      2. Click on  Show Package and navigate to Contents/Resources/Java/ folder.
      3. Edit the fc_service script memory values:

        <string>-Xms64M</string>
        <string>-Xmx1024M</string>

      4. Save the file and close the editor once the changes have been made.
      5. Run the script to register the service for the FileCatalyst Server through System Preferences.

FileCatalyst HotFolder

  1. Windows

    1. Stand-alone:  When running FileCatalyst HotFolder stand-alone (directly launching the executable), the FileCatalyst HotFolder will run using a maximum of 1024 MB of memory.  This cannot be modified since the values are embedded inside the FCHotFolder.exe binary.

    2. Service:  When running FileCatalyst HotFolder as a Windows Service, you can configure the application to use either a smaller or larger memory footprint based on your needs:
      1. Stop FileCatalyst HotFolder Service.
      2. Open the fchf.conf found in the application installation directory (by default C:\Program Files\FileCatalyst HotFolder\fchf.conf) in a text editor.
      3. Locate the following entries in the file:

        # Initial Java Heap Size (in MB)
        wrapper.java.initmemory=1024
        # Maximum Java Heap Size (in MB)
        wrapper.java.maxmemory=1024

      4. Enter the desired variable Initial and Maximum Memory.

    3. Save the file.
    4. Start FileCatalyst HotFolder Service.

  2. Linux

    1. Stand-alone:  Linux installations include basic startup scripts (fc_hotfolder.sh, fc_hotfolder_console.sh) which can be modified to use more memory.  Here is a sample from a launch script with 1GB minimum and 4GB maximum memory (non-continuous block):

      java -Xms1024 -Xmx4096M -jar FileCatalystHotFolder.jar -systray


    2. To run with 4GB of RAM, modify the script to look like the following:

      java -Xms4096M -Xmx4096M -jar FileCatalystHotFolder.jar -systray

    3. Service:  When running FileCatalyst HotFolder as a Linux/Solaris Service, you may configure the application to use a different memory footprint by editing wrapper.conf.
    4. Enter the memory values you require for the following fields:

      # Java Additional Parameters
      # Initial Java Heap Size (in MB)
      wrapper.java.initmemory=1024
      # Maximum Java Heap Size (in MB)
      wrapper.java.maxmemory=1024

      Choose your values for minimum and maximum memory and enter it.
    5. Save and close the wrapper.conf file.
    6. Start up FileCatalyst HotFolder Service.

  3. Mac OSX

    1. MacOSX configurations are managed by an Info.plist file residing inside the FileCatalystServer.app package which tells the system the parameters needed to start the application.
      1. To access the Info.plist, select the FileCatalystHotFolder.app icon and right-click.
      2. Select Show Package Contents.
      3. Edit the info.plist with a text editor.
      4. To increase the memory used edit  the following line:

        <string>-Xms1024M -Xmx1024M</string>

      5. Save the file and close the editor.

    2. Service:  The service script (fc_service) supplied for MacOSX service installations creates an Info.plist file as part of its service registration.  You can modify the fc_service script to change the memory constraints before registering the application as a service (or to re-register the service after memory settings have been modified):
      1. Select the FileCatalystHotFolder.app icon and right-click it.
      2. Click on  Show Package and navigate to Contents/Resources/Java/ folder.
      3. Edit the fc_service script memory values:

        <string>-Xms64M</string>
        <string>-Xmx1024M</string>

      4. Save the file and close the editor once the changes have been made.
      5. Run the script to register the service for the FileCatalyst HotFolder through System Preferences.

FileCatalyst Central

  1. Windows

    1. From the Service Manager application (Services.msc), stop the FileCatalyst Central Service.
    2. Locate the file mawrapper.conf in the FileCatalyst Central installation and open it in a text editor.

    3. To increase the memory used, edit the following lines:

      # Initial Java Heap Size (in MB)
      wrapper.java.initmemory=256
      # Maximum Java Heap Size (in MB)
      wrapper.java.maxmemory=1024

      To maximize performance improvement we recommend that the both values be identical, which will cause Java to allocate a contiguous block of memory.

    4. Close the text editor and start the FileCatalyst Central Service.

  2. Linux
    1. Stop the FileCatalyst Central Service using:

      service fc_central stop

    2. Locate the file wrapper.conf in the FileCatalyst Central installation directory and within the /service_wrapper/common/conf directory and open it in a text editor.
    3. To increase memory used by Central, edit the following lines:

      # Initial Java Heap Size (in MB)
      wrapper.java.initmemory=256
      # Maximum Java Heap Size (in MB)
      wrapper.java.maxmemory=1024

      To maximize performance improvement we recommend that the both values be identical, which will cause Java to allocate a contiguous block of memory.

    4. Save the file and close the text editor.

    5. Start the FileCatalyst Central Service using the command:

      service fc_central start
  3. MacOSX

    1. To access info.plist, right-click the FileCatalystCentral.app icon and select Show Package Contents.

    2. Locate the Contents folder and edit the info.plist with a text editor.

    3. To increase memory used, edit the following:

      <string>-Xms64M -Xmx512M -Djava.util.logging.config.file=maLogConfig.properties</string>

    4. If FileCatalyst Central is being run as a service already, edit mawrapper.conf and modify the following lines:

      # Initial Java Heap Size (in MB)
      wrapper.java.initmemory=256
      # Maximum Java Heap Size (in MB)
      wrapper.java.maxmemory=1024

      To maximize performance improvement we recommend that the both values be identical, which will cause Java to allocate a contiguous block of memory.