EPICS: IOC Status and Control (devIocStats) at SLAC
Description
This page is the home of the EPICS IOC status
and control device support (devIocStats, aka iocStats) at SLAC.
For the SPEAR and LCLS projects at SLAC, devIocStats is part of a larger module called
iocAdmin (IOC administration) which also provides
SLAC-unique databases, displays, and other configuration files. These files are included
as part of the distribution and can be used as reference.
devIocStats provides support for records that show the health and status of an IOC, plus a
few IOC control records. For EPICS base 3.14.11 and above, it also includes general time
records that use the general time device support provided with EPICS base (refer to the
chapter on epicsGeneralTime in the EPICS application developer's guide for more detail).
README_devIocStats
contains a comprehensive list of supported variables - the more popular ones include:
- number of file descriptors currently in use
- size of largest free block
- estimated percent CPU usage by tasks
- number of suspended tasks
- number of file descriptors currently in use
- number of current CA clients
- number of current CA connections
- number of records on the IOC
- EPICS environment variables
- restart control
Please email any comments and bug reports to
Stephanie Allison
who is responsible for coordinating development and releases.
History and Acknowledgement
The devIocStats module originated as
vxStats from APS and was enhanced
to include many more variables by SNS. At this point, only the VxWorks operating system was
supported. SNS also created a separate, but very similar, module called "linuxStats" for linux
soft IOCs. The SNS vxStats software was then enhanced at SLAC by Till
Straumann and Ernest Williams to support both the RTEMS and VxWorks operating systems and
reorganized by Stephanie Allison to split the OS-independent parts from the OS-dependent parts and
to merge in linuxStats to support both linux and solaris. Ralph Lange then cleaned up the logic and
file structure and added more functionality for posix IOCs and support for Linux and Solaris.
And yet others in the EPICS collaboration have provided support for Windows and Mac.
Other sites have also taken either the APS or SNS software and made their own enhancements,
particularly SLS to add many more variables in a module called
IOCMON
and CHESS which made changes for linux and RTEMS. The changes by SLS have NOT yet been merged into
this module and need to be evaluated for RTEMS. The RTEMS implementation by both SLAC and CHESS
have been merged into this module and are the best of both.
Installation and Building
EPICS base must be built first.
The
macro substitution and include (MSI) tool must also be built first.
After base and msi are built and the tar file has
been installed:
cd configure
vi RELEASE Define the path for EPICS_BASE, comment out all other lines
vi CONFIG_SITE Define MSI
cd ..
make
If you wish to build the testIocStatsApp test application that comes with this module, define the
path for the sequencer in the configure/RELEASE file, uncomment testIocStatsApp
in the top level Makefile, and make again. iocBoot/ioctestRTEMS and iocBoot/ioctestSoft have example
startup files for running the testIocStats IOC.
Where to Find it
You can clone the software from GitHub:
epics-modules/iocStats.
RELEASE_NOTES are provided for each tag.
The latest version of software has been tested with EPICS base R3.14.11 on
RTEMS 4.9.4 and 4.10.1, VxWorks 5.4.2, Linux RHEL4 (32 bit), Linux RHEL5 (64 bit),
and Solaris 10. Testing on VxWorks 6 and Windows have been done by others. Some functions
work for Mac OS.
Snapshots of Example EDM Displays
- RTEMS ioc_stats.edl:
- Soft ioc_stats_soft.edl:
- VxWorks ioc_stats_vxworks.edl:
- VxWorks System Pool ioc_stats_clust.edl:
- EPICS Enviroment Variables ioc_stats_epics_env.edl:
- EPICS Releases ioc_stats_release.edl:
- Alarm Limits ioc_stats_limits.edl:
- Scan Monitor ioc_stats_scanmon.edl:
RTEMS at SLAC |
EPICS at SPEAR |
SSRL Home |
SLAC Home
Contact: Stephanie Allison
Last Modified: April 24, 2015