Samba and Application Response Measurement (ARM 4.0)

Sven Kubiak sk at
Mon Mar 3 20:47:18 GMT 2008

Project Description:
We are developing a Samba performance monitoring tool, named ISIS
(Integrated Samba Inspection Service). ISIS observes global system
utilization and process performance data and correlates it with Samba
specific usage information such as established client connections or opened
files (ISIS-Homepage:
However, the measurement of (interesting) end-to-end transaction response
times is currently not feasible. Hence, we started to "arm" Samba
according to ARM 4.0 as provided by the Open Group under The Application Response
Measurement (currently ARM 4.0) standard allows a comprehensive end-to-end
management capability that includes measuring application availability,
application performance, application usage, and end-to-end transaction
response time. ARM is part of Tivoli, WebSphere and many other

Current Activities:
Now we are looking for measuring points in Samba for the placement of ARM
transactions which come typically as pairs of calls that measure the
current system time (in micro seconds), We provide an example (as modified
Samba source code) that demonstrates the usage of ARM with Samba.

We used the current stable Samba release 3.0.28 on Ubuntu 7.10 (Kernel 2.6.22).
We added an ARM transaction to the open_file function in smbd/open.c and added
two lines of code in the file. You'll find patches for both files

To compile ARM and Samba you'll need to copy the compiled ARM Folders
sdk4/c/arm4sdk and sdk4/libarm from the ARM4-SDK into the source folder of
samba. In addition the ARM4 header files from /sdk4/c/include have to be
placed in an arm4 folder in the Samba source folder. The ARM4-SDK can be
found here:

ARM can log transactions either to stdout or a log file. To use a log file
you'll have to define an environment variable, depending on your Linux
distribution, as follows: ARM4_LOGFILE = "/PATH/TO/LOGFILE/arm4.log".
Once samba is installed, ARM will log the transaction specified in the
Samba code to the log file, when opening a file via the Samba server.
An ARM example log file can be found here:

Request for Comments:
We hope for comments on all aspects of the project. In particular, we
appreciate any hint with respect to technical issues. (we are new in the
Samba sources). Please help to identify the most important measure points
in the Samba sources. If you have any further questions, do not hesitate to
contact us.

With best regards,
Sven Kubiak (Developer ARM and Samba)
sven.kubiak at

Milen Tilev (Developer Samba-Monitoring and ISIS)
milen.tilev at

Bruno Müller-Clostermann (Coordination)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: samba_arm_makefilein.patch
Type: application/octet-stream
Size: 761 bytes
Desc: samba_arm_makefilein.patch
Url :
-------------- next part --------------
A non-text attachment was scrubbed...
Name: samba_arm_open.patch
Type: application/octet-stream
Size: 2124 bytes
Desc: samba_arm_open.patch
Url :

More information about the samba-technical mailing list