此内容没有您所选择的语言版本。

2.2. Generating Instrumentation for Other Computers


When users run a SystemTap script, SystemTap builds a kernel module out of that script. SystemTap then loads the module into the kernel, allowing it to extract the specified data directly from the kernel (refer to Procedure 3.1, “SystemTap Session” in Section 3.1, “Architecture” for more information).
Normally, however, SystemTap scripts can only be run on systems where SystemTap is deployed (as in Section 2.1, “Installation and Setup”). This could mean that if you want to run SystemTap on ten systems, you would need to deploy SystemTap on all those systems. In some cases, this may be neither feasible nor desired. For instance, corporate policy may prohibit an administrator from installing RPMs that provide compilers or debug information on specific machines, which will prevent the deployment of SystemTap.
To work around this, you can resort to cross-instrumentation. Cross-instrumentation is the process of generating SystemTap instrumentation module from a SystemTap script on one computer to be used on another computer. This process offers the following benefits:
  • The kernel information packages for various machines can be installed on a single host machine.
  • Each target machine only needs one RPM to installed to use the generated SystemTap instrumentation module: systemtap-runtime.

Note

For the sake of simplicity, we will be using the following terms throughout this section:
  • instrumentation module — the kernel module built from a SystemTap script; i.e. the SystemTap module is built on the host system, and will be loaded on the target kernel of target system.
  • host system — the system on which you compile the instrumentation modules (from SystemTap scripts), to be loaded on target systems.
  • target system — the system for which you are building the instrumentation module (from SystemTap scripts).
  • target kernel — the kernel of the target system. This is the kernel on which you wish to load/run the instrumentation module.

Procedure 2.1. Configuring a Host System and Target Systems

  1. Install the systemtap-runtime RPM on each target system.
  2. Determine the kernel running on each target system by running uname -r on each target system.
  3. Install SystemTap on the host system. You will be building the instrumentation module for the target systems on the host system. For instructions on how to install SystemTap, refer to Section 2.1.1, “Installing SystemTap”.
  4. Using the target kernel version determined earlier, install the target kernel and related RPMs on the host system by the method described in Section 2.1.2, “Installing Required Kernel Information RPMs”. If multiple target systems use different target kernels, you will need to repeat this step for each different kernel used on the target systems.
After performing Procedure 2.1, “Configuring a Host System and Target Systems”, you can now build the instrumentation module (for any target system) on the host system.
To build the instrumentation module, run the following command on the host system (be sure to specify the appropriate values):
stap -r kernel_version script -m module_name
Here, kernel_version refers to the version of the target kernel (the output of uname -r on the target machine), script refers to the script to be converted into an instrumentation module, and module_name is the desired name of the instrumentation module.

Note

To determine the architecture notation of a running kernel, run uname -m.
Once the instrumentation module is compiled, copy it to the target system and then load it using:
staprun module_name.ko
For example, to create the instrumentation module simple.ko from a SystemTap script named simple.stp for the target kernel 2.6.18-92.1.10.el5 (on x86_64 architecture), use the following command:
stap -r 2.6.18-92.1.10.el5 -e 'probe vfs.read {exit()}' -m simple
This will create a module named simple.ko. To use the instrumentation module simple.ko, copy it to the target system and run the following command (on the target system):
staprun simple.ko

Important

The host system must be the same architecture and running the same distribution of Linux as the target system in order for the built instrumentation module to work.
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.