【linux】linux相关操作2(部分库编译\排查CPU及内存占用)

九、部分库编译:

zlib

  1. 下载
  2. 上传服务器
    • rz 选择文件 如 :zlib-1.2.11.tar.gz
  3. 解压
    • tar xvf zlib-1.2.11.tar.gz
  4. 进入解压后文件夹
    • cd zlib-1.2.11
  5. 编译
    • cd build
    • cmake …
  6. 生成
    • make
  7. 生成minizip
  8. 需要的lib及头文件路径
    • lib 位于 build内
    • unzip.h 等位于 contrib/minizip 内
    • 需要将minizip内的所有文件移动到zlib-1.2.11/ 路径下
    • 如果使用cmake,在CmakeList.txt 中的 add_executable()加上 ioapi.o, zip.o, unzip.o 三个文件

curl

  1. 下载
    • 官网:https://curl.haxx.se/download.html
  2. 上传服务器
    • rz 选择文件 如 :curl-7.51.0.tar.gz
  3. 解压
    • tar xvf curl-7.51.0.tar.gz
  4. 进入解压后文件夹
    • cd curl-7.51.0
  5. 创建一个编译路径
    • mkdir …/curl
  6. 编译
    • ./configure --prefix=/home/pangu/tools/curl --without-ssl
  7. 生成
    • make
    • make install

jrtplib

  1. 下载

  2. 上传服务器

    • rz 选择文件 如 :JRTPLIB-3.11.2.tar.gz
  3. 解压

    • tar xvf JRTPLIB-3.11.2.tar.gz
  4. 进入解压后文件夹

    • cd JRTPLIB-3.11.2
  5. 创建一个编译路径

    • mkdir …/jrtp
  6. 修改CMakeLists.cmake

    • cmake_minimum_required(VERSION3.0)
      
      project(jthread)
      
      set(VERSION1.3.3)
      
      #************************************staradd****************************** 
      
      SET(CMAKE_SYSTEM_NAME Linux)
      
      #Setting up the C compiler  
      
      SET(CMAKE_C_COMPILER "gcc")
      
      #Setting up the C++ compiler
      
      SET(CMAKE_CXX_COMPILER "g++")
      
      #set install path 该目录是自己设定的目录
      
      set(CMAKE_INSTALL_PREFIX "/home/pangu/tools/jrtp")
      
      set(JRTPLIB_INTERNAL_INCLUDES "/home/pangu/tools/jrtp/include")
      set(JRTPLIB_EXTERNAL_INCLUDES "/home/pangu/tools/jrtp/include")
      #************************************endadd****************************** 
      
      include(CheckCXXSourceCompiles)
      
       
      
      set(_DEFAULT_LIBRARY_INSTALL_DIR lib)
      
  7. 编译

    • cmake/
  8. 生成

    1. make
    2. make install

​ 许多库的编译都可以遵循这个规律,在没有root权限的情况下,不更改编译路径 make install 会造成访问失败的问题。

十、查看文件及通道句柄:

  1. 详细信息: ls -l /proc/[pid]/fd
  2. 句柄数: ls /proc/[pid]/fd | wc -w

十一、排查CPU及内存占用:

排查CPU占用

参考文档:(170条消息) Linux C++ 程序占cpu%问题排查_幻想之渔的博客-CSDN博客

主要流程:

扫描二维码关注公众号,回复: 15079087 查看本文章
  1. top -u pangu 后,输入大写 P 输出会按照CPU占用排序,得到进程 PID
  2. top -Hp <PID> 后,输入大写 P 得到线程CPU占用排序,得到线程 THD
  3. pstack <THD> 后,会显示出该线程的调用堆栈,给排查指明方向

排查内存占用

因为有时候在windows上可能不方便测试,或者windows的表现和linux不太一致。可能就会用到linux的内存排查工具 valgrind

参考文档:

主要使用方法:

  1. 保证当前服务器没有启动该程序;
  2. valgrind --log-file=123123.txt --tool=memcheck --leak-check=full --show-leak-kinds=all --quiet ./Pangu

猜你喜欢

转载自blog.csdn.net/Daibvly/article/details/128416686
今日推荐