# SourceMonitor
### 1、简介
  SourceMonitor是一个linux平台资源监控库,可以用来监控CPU、内存、存储IO、网络IO等资源的使用情况。该库最突出的特点是以进程为单位对资源进行监控,而且该库提供了简单易用的接口。
  我们之所以提供一个资源监控库而非资源监控工具,主要是考虑到使用的灵活性。用户可以根据自己的需求,借助SourceMonitor库方便的搭建资源监控工具。
### 2、API介绍
SourceMonitor的工作流程如下图所示:
  ![image](https://github.com/zzpp3377/SourceMonitor/blob/master/images/API.jpg)
(1)注册监控参数:registerStatistic(StatisticT statistic)
  StatisticT是枚举类型,定义了SourceMonitor支持的监控参数。
(2)注册被监控进程:registerPid(unsigned int pid)
  pid是被监控进程的进程号。
(3)初始化:init()
  初始化并开始监控。
(4)更新:update()
  将监控参数记录到一张表中。
(5)读取监控数据:getStatistic(unsigned int pid,StatisticT statistic)
  读取进程pid的监控参数statistic。
### 3、支持的监控参数
监控参数 | 作用
----|----
CpuRatio | cpu利用率(进程占用cpu时间/墙上时间)
CpuUsrRatio | 用户态cpu利用率(进程用户态占用cpu时间/墙上时间)
CpuSysRatio | 内核态cpu利用率(进程内核态占用cpu时间/墙上时间)
CpuGstRatio | 虚拟cpu利用率(Guest time of the process)
CpuWaitRatio | 进程等待运行的时间开销(等待时间/墙上时间)
CpuIndex | 当前运行进程的cup号
MemRatio | 进程内存使用率(进程物理内存占用/总物理内存)
MemRss | 进程物理内存占用
MemVsz | 进程虚拟内存占用
MemMinfltRate | 进程发生minor faults 的频率
MemMajfltRate | 进程发生major faults 的频率
IoRdRate | 进程硬盘读速率
IoWrRate | 进程硬盘写速率
IoCcwrRate | 进程cancelled write的速率
IoDelay | 进程的block I/O延时
NetSdRate | 进程网络发送速率(包括TCP、UDP)(要求root权限)
NetRcRate | 进程网络接收速率(包括TCP、UDP)(要求root权限)
### 4、安装
ubuntu:
(1)安装SourceMonitor依赖。
sudo apt-get install build-essential libpcap-dev cmake
(2)下载SourceMonitor
git clone https://github.com/zzpp3377/SourceMonitor.git
(3)编译
cd SourceMonitor && mkdir build && cd build
cmake ..
make
sudo make install
  编译生成一个动态链接库(libSrcMntr.so)和静态链接库(libSrcMntr.a),然后安装到了/usr/lib/下。
### 5、示例
  完成安装后,可以进入SourceMonitor/example编译运行示例。
  如示例中所展示的,使用SourceMonitor仅需要#include “sourceMonitor.hpp”,然后按照API介绍中描述的方法使用接口即可。
  编译脚本SourceMonitor/example/compile.sh分别提供了SourceMonitor动态链接库和静态链接库的编译方法。
### 6、其他资源监控工具
  sysstat: https://github.com/sysstat/sysstat.git
  nethogs: https://github.com/raboof/nethogs.git
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!Linux系统是一个免费使用和自由传播的类Unix操作系统,基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统,Linux是许多企业和服务提供商的首选操作系统,用于部署Web服务器、数据库服务器、邮件服务器等。Linux系统具有高效的网络功能和稳定的性能,因此被广泛应用于服务器领域,Linux是云计算的核心组成部分,被广泛用于构建云平台和云服务。许多知名的云计算服务提供商都采用Linux系统作为其基础架构,一些游戏平台和游戏开发工具采用Linux作为支持的操作系统,例如Steam平台上的某些游戏。Linux系统在科学计算、数据分析和机器学习等领域也有广泛应用。许多知名的科学计算软件都在Linux上开发和运行,Linux系统在各个领域都有广泛的应用,其强大的功能和灵活性使得它成为许多产品和服务的基础架构。
资源推荐
资源详情
资源评论
收起资源包目录
Linux Source Monitor(CPU、Mem、IO、Net) (linux 系统资源监控库,监控进程占用的CPU、内存、磁盘IO、网络IO).zip (21个子文件)
1.1
CMakeLists.txt 84B
src
CMakeLists.txt 879B
netIoMonitor.hpp 2KB
netIoMonitorPcap.cpp 9KB
netIoMonitorType.hpp 2KB
netIoMonitor.cpp 7KB
sourceMonitor.hpp 1KB
sourceMonitor.cpp 1KB
logger
logger.hpp 3KB
loggerTest.cpp 259B
monitorImpl.hpp 4KB
monitorImpl.cpp 13KB
netIoMonitorPcap.hpp 2KB
decpcap
compile.sh 68B
decpcap.h 2KB
decpcap.cpp 10KB
pcapTest.cpp 5KB
images
API.jpg 12KB
example
compile.sh 234B
example.cpp 6KB
README.md 3KB
共 21 条
- 1
资源评论
妄北y
- 粉丝: 9812
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功