背景说明
- 随着公司业务的发展,需要在ARM环境上面进行性能测试.
- 为了进行ARM环境的验证,需要一些组件进行资料收集.
- 比较好的方式是使用nmon或者是rstatd进行性能参数收集.
- 为了方便部署,想着能够打包成rpm包进行处理.这里进行一下简单的总结
获取资料
wget http://sourceforge.net/projects/nmon/files/makefile
wget http://sourceforge.net/projects/nmon/files/lmon16j.c
wget https://sourceforge.net/projects/rstatd/files/rstatd/4.0.1/rpc.rstatd-4.0.1.tar.gz
ARM上面进行编译
- 注意arm上面进行便宜需要安装一些其他的头文件信息
yum install rpcgen ncurses-devel -y
yum 打包安装 不带 devel的仅是使用的软件
带devel 后缀的rpm包能够便于进行依赖打包处理
在开发机器上面可以进行安装,生产机器上面可以不安装
安装nmon
- 注意在银河麒麟飞腾机器上面可以进行一下简单的处理文件为:
- 注意需要修改
FILE
变量的内容,与当前目录下下载的nmon的c文件一致.
- 注意需要
cc -o
后面描述好 -D arm64
- 注意
nmon_arm64_kylin
应该就可以直接用. 其他的可以不用惯
# NOTE: link the curent working copy of the code to lmon.c for compiling
CFLAGS=-g -O3 -Wall
LDFLAGS=-lncurses -lm
FILE=lmon16j.c
nmon_arm64_kylin: $(FILE)
cc -o nmon_arm64_kylin $(FILE) $(CFLAGS) $(LDFLAGS) -D arm64
- 执行
make
以及 make install
就可以在当前目录出现一个二进制文件
- 二进制文件为:
nmon_arm64_kylin
- 注意 其实
make
就已经将文件生成了 make install
更多的是将二进制文件挪到prefix
目录中
安装rstatd
- 解压缩文件
- 直接进入该目录执行
./configure
- 然后执行
./make
- 就会发现有一个
rpc.rstatd
文件产生
- 对
rpcbind
的策略我不太熟悉 可以简单验证为:
启动服务:
./rpc.rstatd
查看端口信息
rpcinfo -p
查看 rstatd 对应的 port 信息进行查看
lsof -i:$port
如果存在进程并且command 为 rpc.statd 说明正常
rpm打包
- 安装
rpm-build
以及搭建好目录
- 将
nmon
以及rpc.rstatd
放置到 /root/rpmbuild/SOURCES/nmon
目录下
- 给文件添加 777 的可执行权限
- 在
/root/rpmbuild/SPECS/nmon.spec
增加如下内容进行简易打包
#DEFINES
%define _binaries_in_noarch_packages_terminate_build 0
%global __os_install_post %{nil}
Name: nmon
Version: 16j
Release: 1%{?dist}
Summary: Rpm package for nmon ...
Group: nmon
License: GPL
URL: https://www.jinanxiaolaohu.com/
Source0: nmon/
BuildArch: aarch64
Autoreq: no
%changelog
* Sat Jan 01 2021 jinanxiaolaohu
Initial Version ...
%description
Rpm package for nmon
%install
app_dir=%{buildroot}/opt
mkdir -p $app_dir
echo pwd
echo %{SOURCE0}/nmon/
cp -r %{SOURCE0}/nmon/ $app_dir/
%files
%defattr(777,root,root)
/opt/nmon
%dir
/opt/nmon
cd /root/rpmbuild/SPECS/
rpmbuild -bb nmon.spec
注意会在 /root/rpmbuild/RPMS/aarch64/ 下面有一个 rpm包
迁移到其他机器上面就可以使用了.
安装验证
[root@jinanxiaolaohu ~]# rpm -ivh nmon-16j-1.ky10.ky10.aarch64.rpm
Verifying... ################################# [100%]
准备中... ################################# [100%]
正在升级/安装...
1:nmon-16j-1.ky10.ky10 ################################# [100%]
[root@jinanxiaolaohu ~]# cd /opt/nmon/
[root@jinanxiaolaohu nmon]# ll
总用量 732
-rwxrwxrwx 1 root root 444504 1月 31 10:39 nmon
-rwxrwxrwx 1 root root 168288 1月 31 10:39 rpc.rstatd
-rwxrwxrwx 1 root root 128616 1月 31 10:39 rsysinfo