Demo Discussion
Forum Config Examples Contributions Vulnerabilities
  Discussion forum about ELOG  Not logged in ELOG logo
icon5.gif   HW Requirements to run elog / Performance issues running on ARM, posted by Tim Thiel on Wed May 9 21:48:42 2012 elogd-001.cfg
    icon2.gif   Re: HW Requirements to run elog / Performance issues running on ARM, posted by Yoshio Imai on Thu May 10 15:34:39 2012 
       icon2.gif   Re: HW Requirements to run elog / Performance issues running on ARM, posted by Tim Thiel on Thu May 10 16:35:50 2012 
          icon2.gif   Re: HW Requirements to run elog / Performance issues running on ARM, posted by Stefan Ritt on Fri May 11 13:20:35 2012 
             icon2.gif   Re: HW Requirements to run elog / Performance issues running on ARM, posted by Tim Thiel on Mon May 14 22:19:50 2012 
                icon2.gif   Re: HW Requirements to run elog / Performance issues running on ARM, posted by Stefan Ritt on Tue May 15 08:35:16 2012 
Message ID: 67268     Entry time: Wed May 9 21:48:42 2012     Reply to this: 67269
Icon: Question  Author: Tim Thiel  Author Email: tt2005@thieleng.com 
Category: Question  OS: Linux  ELOG Version: 2.9.0 
Subject: HW Requirements to run elog / Performance issues running on ARM 

Our group is interested in installing elog on a small/low-cost processing platform so that we can provide ready-to-run systems for our collaborators to use.  We selected a candidate platform form Technologic Systems, their wifibox-2 (http://www.embeddedarm.com/products/board-detail.php?product=TS-WIFIBOX-2).  This product is based on the TS7553 CPU board (http://www.embeddedarm.com/products/board-detail.php?product=TS-7553#) which has a 250MHz Cavium ARM9 CPU.

We have had good success getting the elogd executable cross-compiled for use on this platform and have a working system.  However, we are having significant issues with performance.  When we click the "New" item to enter a new event there is a noticable delay.  When clicking "Submit" there is a delay of approximately 10 seconds before the browser window displays the new event.  With the elogd running on other platforms (Virtual Machine or netbook) the delays for these actions are very small - typically less than a second or imperceptible.

So here are some specific questions:

- Is it reasonable to expect a 250 MHz ARM processor to serve an elog logbook with user acceptable performance?

- Our cfg file is attached.  Is there anything in the cfg file creating this performance problem.

- I have spent some time looking at this, and suspect that the delay is due to the cpu load of all the string manipulation and comparison operations (1200 calls to getcfg() on a submit).  Are there other candidate sources of performance issues that should be considered?

- Does anyone have any suggestions on how to improve our performance?

- Does anyone have a suggestion for an alternative small and low-cost COTS platform to use to host the elogd application?  (We would prefer to attain satisfactory performance on the Wifibox-2.)

Thanks for any help that can be offered.

Tim

 

Attachment 1: elogd-001.cfg  6 kB  | Hide | Hide all
# === CONFIG FILE GENERATION DOCUMENTATION ===
#
# === GLOBAL PARAMETERS ===
# Note: Setup CruiseId and Logbooks
# Note: Datasnap logbook not in this version
#[global]
#Main Tab = oc3334
#Group Cruise = oc3334-SE 

# === GENERAL OPTIONS ===
# Note: From general options of elogd.cfg part of administrators guide
#Comment =  oc3334_COMMENT
#Subject = oc3334 Cruise Log
#Page title = oc3334 Cruise Log
Time format = %d %b %Y %H:%M
# === LOGBOOK: Science Eventlog ===
[oc3334-SE]
# === Execute Shell Command ===
# Note: execute shell command to enter a datasnap to DS logbook at new
# Note: needs to run in background
#Execute new = $shell(/shipdata/oc3334/r2r/eventlog/datasnap/CRUISEID_ds2elog.pl &)
# === Menu: List ===
# Note: Menu list
# Note: Needs to be commented out for local copy, use on synced logbooks
# Note: Used for shore view
#Menu commands = List, Find, Help
#List Menu commands = List, Find, Help
# Note: Used on ship, config option is in ECFM  
#Menu commands = List, New, Edit, Delete, Reply, Duplicate, Find, Help
#List Menu commands = List, New, Edit, Delete, Reply, Duplicate, Find, Help

# === DISPLAY: List ===
# Note: directives related to how attributes are listed on the display page
# Note: default is ID, Date, <full attribute list>
#List display = Event, dateTimeUTC, Instrument, Action, Transect, Station, Cast, Latitude, Longitude, Seafloor, Author, Comment, Revisions
#Sort attributes = Event
# === DISPLAY: Entry ===
# Note: directives related to how attributes are configured on the data entry page 
# Note: unlock these temporarily if it is necessary to edit the fields
# Note: locked Latitude, Longitude, and Seafloor
##Locked Attributes = Revisions, Cruise, Event, R2R_Event, dateTimeUTC, GPS_Time, Latitude,  Longitude, Seafloor
# Note: unlocked Latitude, Longitude, and Seafloor
#Locked Attributes = Revisions, Cruise, Event, R2R_Event, dateTimeUTC, GPS_Time, dateTime8601
#Required Attributes = Author, Instrument, Action

# === ATTRIBUTES (GENERAL) ===
# Note: Specify the attributes for this event log
# Note: An event = Instrument + Action; e.g. event = a CTD cast is started
Attributes = Event, Instrument, Action, Transect, Station, Cast, Latitude, Longitude, Seafloor, Author, Comment, Cruise, R2R_Event, dateTimeUTC, GPS_Time, dateTime8601, Revisions 
#Attributes = Instrument, Action 

# === ATTRIBUTE: Entry Time
# Note: This attribute is generated automatically by ELOG software

# === ATTRIBUTE: Event ===
# Characteristics: Locked
# Note: UTC time-based attributes
# Note: Science event number must be unique within a cruise
# Note: YYYYMMDD.HHMMSS.###
# Note: ### starts at 001 and updates to 002 if the date part of the attribute has not changed
#
#Preset Event = $shell(date +%Y%m%d.%H%M).### 
#Subst Event = $shell(date +%Y%m%d.%H%M).###
#Preset on Duplicate Event = $shell(date +%Y%m%d.%H%M).###

# === ATTRIBUTE: Transect ===
Preset Transect = NaN

# === ATTRIBUTE: Station ===
Preset Station = NaN

# === ATTRIBUTE: Cast
Preset Cast = NaN

# === ATTRIBUTE: Latitude ===
# Characteristics: Locked
#Subst Latitude = $shell(/shipdata/oc3334/r2r/eventlog/elog/scripts/get_gps_latlon -o lat -p 55150) 
Tooltip Latitude = filled on entry

# === ATTRIBUTE: Longitude ===
# Characteristics: Locked
#Subst Longitude = $shell(/shipdata/oc3334/r2r/eventlog/elog/scripts/get_gps_latlon -o lon -p 55150)
Tooltip Longitude = filled on entry

# === ATTRIBUTE: Seafloor ===
# Characteristics:
# Subst Seafloor = $shell(/shipdata/oc3334/r2r/eventlog/elog/scripts/get_depth -o depth -p 55200)

# === ATTRIBUTE: Comment ===
Preset on Duplicate Comment =
Tooltip Comment = Enter additional information
Comment Comment = Please be brief; no commas

# === ATTRIBUTE: Cruise ===
# Characteristics: Locked
# Note: Get Cruise from Cruise_ID file when on board
Preset Cruise = oc3334 

# === ATTRIBUTE: R2R_Event ===
# Characteristics: Locked
# Note: Preset this attribute and then reset it on submit
#Preset R2R_Event = $shell(/shipdata/oc3334/r2r/eventlog/elog/scripts/r2r_event_se.oc).###
#Subst R2R_Event = $shell(/shipdata/oc3334/r2r/eventlog/elog/scripts/r2r_event_se.oc).###
#Preset on Duplicate R2R_Event = $shell(/shipdata/oc3334/r2r/eventlog/elog/scripts/r2r_event_se.oc).###

# === ATTRIBUTE: dateTimeUTC ===
# Characteristics: Locked
# Note: Preset this attribute and then reset it on submit
# Note: other event number formats
# Note: using UTC YrDay:  Preset Event = $shell(echo 'date -u +%j%y.%H%M`)
#Preset dateTimeUTC = $shell(date -u +%Y%m%d.%H%M)
#Subst dateTimeUTC = $shell(date -u +%Y%m%d.%H%M)
#Preset on Duplicate dateTimeUTC = $shell(date -u +%Y%m%d.%H%M)

# === ATTRIBUTE: GPS_Time ===
# Characteristics: Locked
#Subst GPS_Time = $shell(/shipdata/oc3334/r2r/eventlog/elog/scripts/get_gps_latlon -o gps_time -p 55150)
Tooltip GPS_Time = filled on entry

# === ATTRIBUTE: dateTime8601 ===
# Characteristics: Locked
# Note: Preset this attribute and then reset it on submit
# Note: other event number formats
# Note: using ISO 8601 YrDay:  Preset Event = $shell(echo '--iso-8601=seconds`)
#Preset dateTime8601 = $shell(date --iso-8601=seconds)
#Subst dateTime8601 = $shell(date --iso-8601=seconds)
#Preset on Duplicate dateTime8601 = $shell(date --iso-8601=seconds)


# === ATTRIBUTE: Depth ===
Tooltip Depth = filled on entry

# === ATTRIBUTE: Revisions ===
# Characteristics: Locked
# Note:  if we require logins, then revisions could be authored too using $short or $long_name
Preset on Duplicate Revisions =
Subst on Edit Revisions = $Revisions & $date

# === FLAGS ===
# sort order for event display
Reverse sort = 0

# Configure the default behavior
# Do not allow a text entry box with attachments (this is different from the Comment field)
Show text = 0

# Do not allow attachments 
Enable attachments = 0

# Suppress email notification and do not even display email notification option
Suppress default = 3
Suppress Email on edit = 3
Resubmit default = 2

# quick filter options for display
Quick filter = Author, Instrument, Action
#
#
# List of instruments created by elogcfm
#
Options Instrument = ADCP150{10}, CTD911{1}, Echosounder12{2}, Echosounder3.5{3}, Other{4}, Ship{5}, Thermosalinograph SBE45{6}, XBT{7}, MeteorologicalSensor{8}, Fluorometer{9}, 

#
# List of instrument actions created by elogcfm
#
{10} ROptions Action = start,stop,service,other
{1} ROptions Action = deploy,maxDepth,recover,abort,other
{2} ROptions Action = startLine,endLine,abortLine
{3} ROptions Action = startLine,endLine,abortLine
{4} ROptions Action = start,end
{5} ROptions Action = startCruise,endCruise,other
{6} ROptions Action = start,stop,other
{7} ROptions Action = release
{8} ROptions Action = startLine,endLine,abortLine,sampleLine
{9} ROptions Action = startLine,endLine,abortLine,sampleLine
ELOG V3.1.5-fe60aaf