.. _build_pcm: ================ 编译Intel PCM ================ 编译 ======== - clone CPM代码仓库以及子模块: .. literalinclude:: build_pcm/build_pcm :caption: 编译CPM的简单步骤 在CentOS 7,2平台编译 ====================== 生产环境使用了古老的(类)CentOS 7.2环境,在这个旧OS中编译会比较折腾(无力吐糟) - 默认CentOS 7使用的CMaker版本是 2.8.12.2 ,CPM编译时会提示要求 CMake 3.5或更高版本,所以要从 `cmake官方下载 `_ 最新版本自己 :ref:`upgrade_cmake_on_centos7` - Intel PCM使用了 `simdjson(Github) `_ ,而 ``simdjson`` 需要使用现代化的编译器(LLVM clang 6 or better, GNU GCC 7.4 or better, Xcode 11 or better) ,所以需要 :ref:`upgrade_gcc_on_centos7` - 编译步骤同上 文件打包 ======== 为了方便安装,根据 ``make install`` 列出文件,记录到 ``files.txt`` 中,然后执行以下命令打包成 ``cpm.tar.gz`` (参考 `Tar archiving that takes input from a list of files `_ ,此外同时打包 :ref:`pcm-exporter` 的 ``/etc/systemd/system/pcm-exporter.service`` ): .. literalinclude:: build_pcm/tar_pcm_tar :caption: 根据文件列表打包pcm安装文件 然后在目标服务器上只需要执行以下命令就能快速运行 ``pcm-exporter`` 服务: .. literalinclude:: build_pcm/deploy_pcm :caption: 快速部署自己编译的pcm-exporter 也可以通过类似 :ref:`homebrew` 方法执行脚本安装: .. literalinclude:: build_pcm/install_pcm.sh :language: bash :caption: 快速在被监控节点部署安装 Intel PCM 的脚本 ``install_pcm.sh`` .. literalinclude:: build_pcm/curl_install_pcm :language: bash :caption: crul 执行安装 脚本 ``intall_pcm.sh`` 问题排查 ========== 遇到一个问题,使用 :ref:`pcm-exporter` 中 :ref:`systemd` 配置方式启动 ``pcm-sensor-server`` 失败: .. literalinclude:: build_pcm/systemd_start_pcm-server_fail :caption: 使用 systemd 启动自己编译的 pcm-sensor-server 失败 我发现是参数 ``--real-time`` 导致,原因未明,通过取消该参数恢复 参考 ====== - `Intel Performance Counter Monitor (Intel PCM) (GitHub) `_