背景說明
- 隨着公司業務的發展,需要在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