New version now available with the following changes:

• Import into USER namespace so the data is stored in USER so there is no need to change CACHELIB to RW.
• The RanRead processes will not start until all the processes have started so they’ll all kick off the iterations at the same time.


Try using apt-get instead of yum. e.g.

# Get basic dependencies, update OS

RUN apt-get update && apt-get install -
    rsyslog \
    which \
    tar \ 
    hostname \
    net-tools \
    wget \
 && rm -rf /var/lib/apt/lists/*


On a minimal install RHEL7.4 server, with SELinux enabled and set to enforcing, I installed TrakCare on HealthShare 2016.1.

These are the commands I ran to get TrakCare working:

CSP Gateway:

semanage fcontext -a -t httpd_sys_rw_content_t /opt/cspgateway/bin/CSP.ini
restorecon -v /opt/cspgateway/bin/CSP.ini
semanage fcontext -a -t httpd_sys_rw_content_t /opt/cspgateway/bin/CSPRT.ini
restorecon -v /opt/cspgateway/bin/CSPRT.ini
semanage fcontext -a -t httpd_log_t /opt/cspgateway/bin/CSP.log
restorecon -v /opt/cspgateway/bin/CSP.log

TrakCare web application files:

semanage fcontext -a -t httpd_sys_rw_content_t "/trak/site/env/web(/.*)?"
restorecon -Rv /trak/site/env/web/

If SELinux is enabled and the policycoreutils-python package is installed before HealthShare is installed then I did not have to run the following command.

semanage port -a -t http_port_t -p tcp 1972

To check if the superserver port is allowed you can run this:

semanage port -l | grep -w http_port_t

Hi Yuriy,

That's right, the purpose of the Random Read Tool is to simply return a metric to compare storage throughput and not to determine overall DB performance. When looking at the overall performance of the DB a lot of other factors come into play. Check out these great long read articles on understanding and analysing performance:

InterSystems Data Platforms and performance: 
Part 1: Getting started on the Journey, collecting metrics
Part 2: Looking at the metrics we collected
Part 3: Focus on CPU
– Part 4: Looking at Memory

Hi Evgeny,

Yes, you can import into an OTHERNAMESPACE and map the package to the %ALL namespace. As a test I created the %ALL namespace then imported the PerfTools.RanRead.xml into the USER namespace. Next I created a package mapping in the %ALL namespace to the PerfTools.RandRead class in the USER database. Then I ran the tool in %SYS as documented above and it tested ok.