初始化

注意务必调用

rte_metrics_init
    /* init latency stats */
/* @TODO should we remove this in product env? */
rte_metrics_init(numa);
if (rte_latencystats_init(1, NULL)) {
printf("Could not allocate latency data,\n");
}

update

/* 这个函数周期调用,比如1s调用一次,会更新latency数据并打印出之前的统计值 */   

static void print_latency(void) {
struct rte_metric_value * metrics;
struct rte_metric_value * metrics;
struct rte_metric_name * names;
int len ;
int ret;
int i,j;
len = 4;
/*
rte_metrics_get_names(NULL, 0); // 这里仅仅用来获取个数,为后续申请内存使用,若已固定知道则可以忽略。
if (len <= 0) {
printf("Get metrics count: %d error\n", len);
return;
}*/
metrics = malloc(sizeof(struct rte_metric_value) * len);
names = malloc(sizeof(struct rte_metric_name) * len);
if (metrics == NULL || names == NULL) {
printf("Cannot allocate memory\n");
free(metrics);
free(names);
return;
}
len = rte_metrics_get_names(names,len);
if (len <= 0) {
printf("Get metrics name: %d error\n", len);
return;
}
for(j = 0; j < 2; j++) {
ret = rte_metrics_get_values(j, metrics, len);
if (ret < 0 || ret > len) {
printf("Cannot get metrics values\n");
free(metrics);
free(names);
return;
}
PAL_LOG("Metrics for port %d:\n", j);
for (i = 0; i < len; i++)
printf(" %s: %"PRIu64"\n",names[metrics[i].key].name, metrics[i].value);
}
free(metrics);
free(names);
rte_latencystats_update();
}

  

DPDK latencystats库使用方案的更多相关文章

  1. DPDK LPM库(学习笔记)

    1 LPM库 DPDK LPM库组件为32位的key实现了最长前缀匹配(LPM)表查找方法,该方法通常用于在IP转发应用程序中找到最佳路由匹配. 2 LPM API概述 LPM组件实例的主要配置参数是 ...

  2. DPDK Mempool 库原理(学习笔记)

    1 前置知识点学习(了解) 从CPU到实际的存储节点,依据层级划分:Channel > DIMM > Rank > Chip > Bank > Row /Column 1 ...

  3. DPDK vhost库

    原创翻译,转载请注明出处. vhost库实现了一个用户空间的virtio net server,允许用户直接处理virtio ring队列.换句话说,它让用户可以从VM virtio网络设备读取或写入 ...

  4. 利用Cocoapods、SVN 创建私有库实现方案(yoowei)

    由于项目年后要进行组件化,考虑到如果公司内部实现一些私有的组件,不对外公开,而又想在不同项目中使用,该怎么办呢? 使用Cocoapods制作私有库就完美的解决了这个问题.下图就是使用私有库带给我们的好 ...

  5. sql2005-数据库备份方案 (转载)

    sql2005数据库备份一般情况分为二种:一是手工备份.二是自动备份.以下是二种方法的步骤: 一.手工备份 打开数据库,选择要备份数据库,右键选择[任务]->[备份],打开备份数据库页面,在[源 ...

  6. 开源方案搭建可离线的精美矢量切片地图服务-6.Mapbox之.pbf字体库

    项目成果展示(所有项目文件都在阿里云的共享云虚拟主机上,访问地图可以会有点慢,请多多包涵). 01:中国地图:http://test.sharegis.cn/mapbox/html/3china.ht ...

  7. 绝对干货!初学者也能看懂的DPDK解析

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由Willko发表于云+社区专栏 一.网络IO的处境和趋势 从我们用户的使用就可以感受到网速一直在提升,而网络技术的发展也从1GE/10 ...

  8. 阅读 DPDK 中文论文两则

    基于DPDK的高效数据包捕获技术分析与应用 本文应用场景 网络安全领域的数据包捕获技术,对系统有高性能需求,要在短时间内成功收集.分析.处理大量数据,实时捕获效率低下. 旧有传统数据包处理机制 BPF ...

  9. iOS 静态库和动态库

    这两个东西都是编译好的二进制文件.就是用法不同而已.为什么要分为动态和静态两种库呢?先看下图:

随机推荐

  1. Flume-自定义 Source 读取 MySQL 数据

    开源实现:https://github.com/keedio/flume-ng-sql-source 这里记录的是自己手动实现. 测试中要读取的表 CREATE TABLE `student` ( ` ...

  2. kotlin中抽象类

    抽象类和接口很类似,抽象类不能被实例化需要使用abstract 关键字声明,抽象类实现接口后,接口中没有函数体的函数可以不重写,接口中的这些方法就自动被继承到实现接口的抽象类中,称为抽象方法 pack ...

  3. oracle增删改查基本语法(DDL/DML)整理

    DDL:Data Definition Language(数据库定义语言)DML:Data Manipulation Language(数据库操作语言) 一.表结构操作(create table.al ...

  4. Nginx+Keepalived高可用负载均衡

    转自 https://www.jianshu.com/p/da26df4f7d60 Keepalived+Nginx实现高可用Web负载均衡 Master backup vip(虚拟IP) 192.1 ...

  5. 在linux下php挂接mysql.so扩展的方法

    第一步:进入php源码中的"ext/mysql"目录下命令:cd 第二步:在当前目录下运行phpize 命令:/usr/local/php524/bin/phpize phpize ...

  6. unity模型网址

    http://www.rr-sc.com/thread-16476562-1-1.html

  7. JavaScript快速开发

    c标签导入 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> fn函数 ...

  8. 【ABAP系列】ABAP CL_ABAP_CONV_IN_CE

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]ABAP CL_ABAP_CON ...

  9. XSSer:自动化XSS漏洞检测及利用工具

    转载自FreeBuf.COM XSS是一种非常常见的漏洞类型,它的影响非常的广泛并且很容易的就能被检测到. 攻击者可以在未经验证的情况下,将不受信任的JavaScript片段插入到你的应用程序中,然后 ...

  10. Dart学习笔记

    一.数据类型 1. 字符串 和 数字 互转 // String 转为 int '); assert(one == ); // String 转为 double var onePointOne = do ...