Manage the Media Processor

In this section:

Install the Media Processor

Installing the EchoSystem Media Processor consists of three phases:

  1. Download the Installer
  2. Run the Installer for Windows or Linux
  3. Register the Processor

Linux Environments

Please note that the Linux Media Processor may require additional installation steps depending on your ESS version. More information can be found here: Run the Linux Installer.

Download the Installer

The Media Processor installer is downloaded from the EchoSystem Server (ESS). Installers are provided for both Windows and Linux. Once the installer runs, it installs the Media Processor and automatically starts the service. You are guided through a wizard during installation.

  1. Login to the ESS.
  2. Navigate to the Downloads tab. The Software Installer Downloads page appears.

  3. Download the installer by clicking the appropriate link. You must run the installer locally. Save the file to the target computer.

Run the Windows Installer

  1. Log in as an Administrator.
  2. On the Media Processor computer, double-click the saved installer file. The installation file is uncompressed and runs automatically.
  3. The installation begins. Select the desired locale from the list. Click OK.
  4. The installer introduction screen opens. Quit all other programs before continuing. Click Next.
  5. Read the license agreement and select the radio button to accept the terms. Click Next.
  6. Select the directory location for the install folder. You may navigate to a directory location of your choosing by clicking Choose. You may return to the default folder setting by clicking Restore Default Folder. The default folder location is C:\Program Files\Echo360\Client. Click Next.
  7. Select the installation directory. This should be a volume with at least 20 GB of dedicated space. Click Install.
  8. The pre-installation summary screen identifies the installation folder, product and disk space required. Click Install.
  9. The MAC address of the Media Processor is displayed for reference when registering the Processor. Make a note of it.
  10. The installation runs. The Install Complete screen shows the installation directory location.
  11. Click Done.

The Media Processor service starts automatically.

Run the Linux Installer

5.5 GA release only

Please note that the 5.5 GA release of EchoSystem requires the XVFB binary to be installed prior to an installation or upgrade of the Linux Media Processor when on a Headless Linux Graphics Environment. More information on XVFB can be found here: https://en.wikipedia.org/wiki/Xvfb. If you attempt to proceed with the installation you will receive the following error message:

"The installer detected missing runtime libraries that are necessary to continue. Please install the required libraries and run the installer again."

To install these libraries, use the following commands: 

RHEL/CentOS
sudo yum install xorg-x11-server-Xvfb
Ubuntu
sudo apt-get install xvfb

This requirement has been removed as of 5.5 Service Pack 1. If you upgrade from a 5.4 version of the ESS to 5.5 Service Pack 1 or later, this requirement is not necessary.

5.5 GA release only

Please note that the 5.5 GA release of EchoSystem requires the OpenGL libraries to be installed prior to an installation or upgrade of the Linux Media Processor. If you attempt to proceed with the installation you will receive the following error message:

"The OpenGL Libraries are missing, and are required to use the Echo360 migration tool."

To install these libraries, use the following commands:

64-bit Systems

sudo yum install mesa-libGL.i686 mesa-libGLU.i686

32-bit Systems

sudo yum install mesa-libGL mesa-libGLU

This requirement has been removed as of 5.5 Service Pack 1. If you upgrade from a 5.4 version of the ESS to 5.5 Service Pack 1 or later, this requirement is not necessary.

  1. On the Media Processor computer, open a terminal prompt. 

  2. If you are installing on a 64-bit system running either RHEL Server release 6 or newer, or CentOS 6.5 or newer, then the required 32-bit compatibility libraries must be installed first. RHEL 6 and CentOS 6 and newer releases for 64-bit systems no longer ship with these libraries by default. The Media Processor installer for 64-bit Linux will display an error if it detects that required libraries are missing. From a terminal prompt, type this command:

    yuminstall glibc-2*.i686 libstdc++-4*.i686

  3. Navigate to the directory containing the downloaded installer file. Type these commands.

    sudo chmod +x EchoSystemProcessorForLinux<bit number>_<release number>.bin
    sudo ./EchoSystemProcessorForLinux<bit number>_<release number>.bin

  4. The installation begins. Choose the desired locale by typing your selection.
  5. The installer introduction text appears. Quit all other programs before continuing. Click Enter.
  6. Read the license agreement through. Click Enter to continue. When you reach the end, type Y to accept the terms of the license agreement.
  7. Enter the directory location for the install folder (absolute path), or click Enter to accept the default (/usr/local/echo360/client).
  8. The pre-installation summary screen identifies the ESS install location, and the disk space required. Click Enter to continue.
  9. The installation runs. The "Installation Complete" text appears and the Media Processor service starts.
  10. Click Enter to exit the installer.

Register the Media Processor

The EchoSystem Media Processor begins communication with the ESS immediately after installation.

The Media Processor is a managed device in the ESS. Managed devices must be registered to be configured for use with the ESS.

  1. In the ESS application, navigate to Configuration > Devices.
  2. Select the Unregistered tab. The Unregistered Devices screen opens, showing all of the unregistered devices.

  3. Highlight the media processor device. Check the MAC address shown on the screen against the MAC address you noted.
  4. Click register.
  5. Select the organization for the media processor from the drop-down list.
  6. Click register.
  7. Select the Active tab.
  8. Notice that the MAC address of the media processor is listed in the Summary column.
  9. Wait for the log upload status to change to Idle. This shows that the Media Processor has been successfully registered and is ready for media processing.

Move the Media Processor to a New Location

If your original installation had a media processor running on the same server as the ESS, you might want to move it to a new location when you are upgrading the ESS to a new release. Follow these steps.

  1. Install the media processor on the new server.
  2. Register the media processor with the ESS.
  3. Uninstall the media processor software from the ESS computer.

Configure the Media Processor

As of the release of EchoSystem 5.5, the Media Processor has been modified to perform threaded media encodes. While encoding jobs should complete faster, this changes the load characteristics on the server, therefore, the Media Processor Maximum Concurrent Jobs value must be re-tuned to the physical realities of each Media Processor host. Over the years, additional EchoSystem capabilities have increased the potential peak disk usage required per Concurrent Job.  For example, the addition of higher quality media capture and encoding settings along with the ability to migrate content to the Echo360 active learning platform. Information on where to set the number of Maximum Concurrent Jobs can be set here: Edit Device Defaults.

Please Note

Please be aware that the following guidelines regarding configuring the Media Processor only apply when using EchoSystem 5.5 Service Pack 5 and greater. This is due to the Media Processor changes that were made as a part of Service Pack 5. For more information on these changes, please see EchoSystem 5.5 Service Pack 5 (5.5.2016-03-15.x) Release Notes.

If you are on EchoSystem version 5.5 GA through 5.5 Service Pack 4, we recommend:

  • Processors with 8+ cores/CPU's should run with 2 concurrent jobs
  • Processors with less than 8 cores/CPU's should run with 1 concurrent job.

For Linux media processors, the ulimit settings for the "maximum number of open file descriptors per process" and "maximum number of processes available to a single user" on the host server must be set to at least 64K (64x1024). To view a list of the per-process resource limits currently enforced by the operating system, log on as the 'root' user and execute the command ulimit -a.  For more details, do a  man ulimit at the Unix command prompt, or see http://linux.about.com/library/cmd/blcmdl1_ulimit.htm

Understanding Limitations

When tuning a Media Processor it is important to understand there are many variables at play, including both load variables and hardware variables.

Load variables:

We need to err on the side of peak loads when making our calculations for tuning. If we do not, then processing failures may occur during peak load times. Also, ideal tuning will result in relatively efficient turn around times, especially when the server is under full concurrent Job load. 

  • The type of recordings, e.g. a Display capture is quite different to a Display + Video capture in terms of the number of media files produced simultaneously and, therefore, the load on the server is dramatically different.
  • The quality of the recording, e.g. a capture created using the Display Only (Podcast/Vodcast/EchoPlayer). Optimized for detailed PowerPoint presentations Product Group creates source and final product media files that are significantly different than a capture created using the 1080p Live Display Overflow Product Group, especially when it comes to the amount of required disk space.
  • Varied capture durations, e.g. 15 seconds vs. 1 hour vs. 4 hours.

Hardware Variables:

The server configuration and combined limitations of its CPU, disk, and RAM. 

  • CPU The main question we ask here is, how many concurrent processes and threads can be supported before performance is degraded?
    • Hyper-threading should not be included in any of the tuning calculations. For example, if you have 16 cores or CPUs total, do not double that figure to 32 because hyper-threading is enabled.
    • Unlike most servers you actually want a Media Processor showing the CPU's are saturated at times as they approach Maximum Concurrent Job capacity, otherwise, the hardware is being under-utilized.
  • Disk There are two main questions here. How much disk is required per job?  How many concurrent jobs can be performed given the available disk I/O before I/O waits become a bottleneck?
    • If a server has a spinning disk, disk I/O will become a bottleneck at a certain number of concurrent jobs, actually reducing the overall processing effectiveness of the server. The exceptions to this are:
      • If the spinning disk is a RAID 0 of two or more 10k/15k RPM disks which provide increased disk I/O and disk space
      • If the disk is SSD either single or in a RAID 0 configuration
  • RAM The question we are asking here is, how much memory does each concurrent Job require?

Calculating the number of Concurrent Jobs

To tune a Media Processor, we need to find the Media Processor's limiting factor and tune for that. To do so, perform the following calculations, follow the notes for each, and then use the lowest result (this will provide the maximum concurrent Job capacity) as the number of Maximum Concurrent Jobs. Let's calculate the number of Concurrent Jobs using the following example specs:

Example Specifications
CPU4 x Quad Core with hyper-threading
Disk400 GB SSD with 390 GB free
RAM8 GB

CPU

Total CPU Count = the total number of CPUs or cores

Concurrent Job Count = Total CPU Count / 2

CPU Example Calculation

Total CPU Count = 4 x 4 = 16 (This does not equal 32, see the note about CPU limitations in the above section)

Concurrent Job Count = Total CPU Count / 2

Concurrent Job Count = 16 / 2

Concurrent Job Count = 8

Disk

This calculation requires the Maximum Saved Jobs Size. This information can be found

Concurrent Job Count = (Total Free Disk - Maximum Saved Jobs Size) / 60 GB

  • Round the result down
Disk Example Calculation

Concurrent Job Count = (Total Free Disk - Maximum Saved Jobs Size) / 60 GB

Concurrent Job Count = (390 GB - 20 GB) / 60 GB

Concurrent Job Count = 370 GB / 60 GB

Concurrent Job Count = 6.167

Concurrent Job Count = 6 (rounding down)

Due to the limitations noted in the section above, we need to ask: Is the disk an SSD or RAID 0 fast disk?

  • Yes: Concurrent Job Count = 6
  • No: Concurrent Job Count = 4
Since our example specs have us using an SSD, the Concurrent Job Count here is 6.

RAM

Concurrent Job Count = Total RAM / 1 GB

  • The server must have a minimum of 4 GB of RAM otherwise it is an unsupported configuration
  • Round the result to the nearest integer
RAM Example Calculation

Concurrent Job Count = Total RAM / 1 GB

Concurrent Job Count = 8 GB / 1 GB

Concurrent Job Count = 8

Understanding the Results

Once we have calculated the Concurrent Job Count for CPU, disk, and RAM we need to look at the limiting factor (the lowest result) and use that figure. Let's look at our results:

Example Results

CPU Calculation:

8
Disk Calculation:6
RAM Calculation:8

The limiting factor here is disk space, making our Maximum Concurrent Job Count = 6

Note

Notice that all of our other calculations came in at 8 (CPU and RAM). If it's practical, you could consider increasing the available disk space to 500+ GB in this situation. This would mean that the server could be configured to perform 8 concurrent Jobs. 

Now that you have the Maximum Concurrent Job Count for your Media Processor, edit the Details of your Media Processor here: Edit Device Defaults.

Additional Configuration

For Linux Media Processors

Please be aware that the ulimit settings for the "maximum number of open file descriptors per process" and "maximum number of processes available to a single user" on the host server must be set to at least 64K (64x1024). For more details, see http://ithubinfo.blogspot.com.au/2013/07/how-to-increase-ulimit-open-file-and.html. To view a list of the per-process resource limits currently enforced by the operating system, log on as the 'root' user and execute the command ulimit -a.  For more details, do a  man ulimit at the Unix command prompt, or see http://linux.about.com/library/cmd/blcmdl1_ulimit.htm.

 Click here to expand...

Due to environment variables (your OS, file system, Linux version, etc.), we cannot provide instructions for every type of scenario. These instructions assume the following:

  • That you are running CentOS (RHEL may have slightly different commands).
  • That you are using bash shell (CSH and TCSH use different commands to list the limits).
  • The user the Media Processor is running as is assumed to be 'mpuser'.
  • The 'mpuser' is an Admin user.

INSTRUCTIONS FOR MODIFYING THE USER FILE DESCRIPTOR ULIMIT:

*Establish what the max file handles for the OS in useis(depending on your OS, file system, Linux version, etc. this default value will vary):

# cat  /proc/sys/fs/file-max

*Establish what the current MP user file descriptor limit is

# su – mpuser 
# ulimit -n

*Edit /etc/security/limits.conf and add the lines below

* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535

The Soft limit is the limit applied when the user first logs into a shell and the Hard limit is the maximum limit they can request. In this case, there is no benefit to setting the soft limit lower than the hard limit.
*Check the new limit is applied to the user

# su – mpuser
# ulimit -n

This should now return the new ulimit value.

*To make this new limit active run the following command to reload the parameters from the system file.

# sysctl -p

INSTRUCTIONS FOR CHANGING THE SYSTEM MAX FILE DESCRIPTORS VALUE
*Edit /etc/sysctl.conf

#   vi    /etc/sysctl.conf

*Add or modify the following line

fs.file-max =  XXXXXX

where XXXX is the number of file descriptors desired, which should be set to 64000.
*To make this new limit active run the following command to reload the parameters from the system file.

# sysctl -p