FRR编译安装打包及配置

  • FRR, SDN/VNF
  • 2,323 clicked

  本文基于官方文档进行编译安装,采用CentOS7操作系统,其中部分爬坑过程在此记录一下,本文最新状态可点击查看源站文章链接。 frr源码打包   如果需要给frr打包rpm,可以参看官方文档Packaging Red Hat。 frr二进制包直接安装   如果读者需… 阅读更多 »FRR编译安装打包及配置

DPDK编译及使用

  • DPDK, SDN/VNF
  • 3,780 clicked

  软件(虚拟)交换机性能低下的主要原因是它们未经优化或设计用于处理和交换过高速率的数据包,而DPDK(Data Plane Development Kit, 数据平面开发工具包)则专门解决这个问题。在解释DPDK如何改善这种情况之前,需要回顾常规虚拟交换机存在的局限性。犹豫虚拟交换机对高速数据包的处理缺乏优… 阅读更多 »DPDK编译及使用

编译安装VPP及运行

  • SDN/VNF, VPP
  • 3,224 clicked

本文基于VMware虚拟机环境,详细请参考本文源站地址。 操作系统:CentOS7.6 Linux version 3.10.0-957.27.2.el7.x86_64 适用VPP版本:19.08-20.05,本文示例版本19.08 操作用户权限:root 系统驱动如果支持MSI-X,就无法使用驱动uio_pci_generic… 阅读更多 »编译安装VPP及运行

Linux watch命令详解(转载)

1. 基础命令 watch可以帮你监测一个命令的运行结果,来监测你想要的一切命令的结果变化 常见命令参数

2. 常见命令展示 2.1. 每隔一秒高亮显示网络链接数的变化情况

说明: 切换终端: Ct… 阅读更多 »Linux watch命令详解(转载)

解决Go Modules模式下更新私有库问题(转载)

  在Go 1.11之后推出了依赖包管理工具Go Modules之后,Go项目可以在 GOPATH 之外的位置创建,当项目中仅使用了公有库作为依赖时,使用 go get 或 go mod 更新依赖一切如初,没有任何问题。   由于Go Modules默认使用代理去更新依赖,所以当使用了私有仓库作为依赖时,Go更新依赖的相关命令将… 阅读更多 »解决Go Modules模式下更新私有库问题(转载)

缓存数据一致性问题(转载)

1. 缓存数据不一致 数据库的瓶颈是大家有目共睹的,高并发的环境下,很容易 I/O 锁死。当务之急,就是把常用的数据,给捞到速度更快的存储里去。 这个更快的存储,就有可能是分布式的,比如 Redis,也有可能是单机的,比如 Caffeine。 但一旦加入缓存,就不得不面对一个蛋疼的问题:数据的一致性。 数据不一致的问题,人世间多… 阅读更多 »缓存数据一致性问题(转载)

系统吞吐量(TPS)、用户并发量、性能测试概念和公式(转载)

1. 系统吞度量要素 1.1. 基本概念 一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。 单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。 系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间 QPS(TPS):每秒钟request… 阅读更多 »系统吞吐量(TPS)、用户并发量、性能测试概念和公式(转载)

LRU Cache原理与实现(转载)

1. LRU原理 LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。 1.1. 实现 最常见的实现是使用一个链表保存缓存数据,详细算法实现如下: 1. 新数据插入到链表头部; 2. 每当缓存命中(即缓存数据被访… 阅读更多 »LRU Cache原理与实现(转载)

Golang单元测试gomock

1. go mock单元测试 搞单元测试,如果碰到这些情况: 一个函数,内部包含了很多并且很深的调用,但是如果单单测这个函数,其实实现的功能很简单。 一个函数,包含了其他还未实现的调用。 函数内部对数据的要求极为苛刻。 那么这时候就可以考虑使用mock来处理。 mock,简而言之就是可以通过注入我们所期望返回的数据,或者我们所期… 阅读更多 »Golang单元测试gomock