自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阳光梦的专栏

Linux Server

  • 博客(773)
  • 资源 (21)
  • 收藏
  • 关注

原创 (dpdk f-stack)-提升性能(耗cpu函数定位)

看进程哪个函数耗性能

2023-01-09 18:17:20 304 1

原创 (dpdk f-stack)-堆栈溢出-野指针-内存泄露(问题定位)

堆栈溢出 野指针 内存泄露问题。

2023-01-09 18:03:16 497

原创 (dpdk f-stack)-ipvs实现L3/L4层代理

L3/L4层代理参考: https://github.com/iqiyi/dpvsLVS 实现参考:https://cloud.tencent.com/developer/article/1792298LVS向Netfilter的3个阶段注册钩子函数改写数据包在 LOCAL_IN 阶段注册了 ip_vs_in() 钩子函数。在 FORWARD 阶段注册了 ip_vs_out() 钩子函数。在 POST_ROUTING 阶段注册了 ip_vs_post_routing() 钩子函数。ipvs

2022-05-14 17:33:38 665

原创 (dpdk f-stack)-dperf做压测

dperf 项目地址 https://github.com/baidu/dperf编译dpdkexport RTE_SDK=/root/dpdk-stable-19.11.10export RTE_TARGET=x86_64-native-linuxapp-gccmake install T=x86_64-native-linuxapp-gcc编译dperfcd /home/dperf-1.1.0make -j4假设fstack作为udp代理,测udp吞吐例如 1Mpps 每个包大小为

2022-05-14 16:57:08 1212

原创 (dpdk f-stack)-理解ff_api.symlist

ngx_ff_module.c中提供了被nginx中调用的socket相关API比如:socket/bind/connect/recv/send 接口的重新实现,这些socket接口底层基于FreeBSD协议栈和dpdk实现的,而非Linux协议栈。 #define SYSCALL(func) \ ({

2022-05-14 16:14:31 211

原创 (dpdk f-stack)-Nginx使用kqueue

概述kqueue 是 FreeBSD 上的一种的多路复用机制。它是针对传统的 select/poll 处理大量的文件描述符性能较低效而开发出来的。注册一堆描述符到 kqueue 以后,当其中的描述符状态发生变化时, kqueue 将一次性通知应用程序哪些描述符可读、可写。kqueue APIs - int kqueue(void) 生成一个内核事件队列,返回该队列的文件描述索。其它 API 通过该描述符操作这个 kqueue 。 - kevent() 提供三个主要的行为功能。在下面小节中

2022-05-14 15:52:52 424

原创 (dpdk f-stack)-Nginx使用kqueue

概述 kqueue 是 FreeBSD 上的一种的多路复用机制。 它是针对传统的 select/poll 处理大量的文件描述符性能较低效而开发出来的。 注册一堆描述符到 kqueue 以后,当其中的描述符状态发生变化时, kqueue 将一次性通知应用程序哪些描述符可读、可写或出错了。kqueue APIs int kqueue(void) 生成一个内核事件队列,返回该队列的文件描述索。其它 API 通过该描述符操作这个 kqueue 。 kev...

2021-09-26 17:27:38 513

转载 FreeBSD Kqueue的实现原理

FreeBSD Kqueue的实现原理_mumumuwudi的博客-CSDN博客

2021-09-26 15:38:06 176

原创 (dpdk f-stack)-通过kni与kernel上服务通信

fstack利用dpdk读取物理网卡通过kni虚拟网卡将数据包发给kernel协议栈: dpdk从物理网卡读取数据包--》将此数据包入ring--》kni_process_tx读取ring中数据包--》将数据包发给 kni虚拟网卡--》kernel协议栈将包给应用程序。fstack从kni虚拟网卡读取kernel协议栈发来的数据包再利用dpdk从物理网卡发出去: 应用程序发包给kernel协议栈--》将数据包发给 kni虚拟网卡--》ff_eth_tx_burst从kni虚拟网卡读取...

2021-06-14 12:07:37 721

原创 (dpdk f-stack)-tcp代理访问rser时本地lport选择方法

in_pcbconnect_setup{ ... if (lport == 0) { struct ifaddr *ifa; struct ifnet *ifp; struct sockaddr_in ifp_sin; unsigned loop_count = 0; bzero(&ifp_sin, sizeof(ifp_sin)); ifp_sin.sin_addr.s_add...

2021-06-14 11:43:33 647

原创 (dpdk f-stack)-理解ff_api.symlist

#源码文件 IPFW_XMOD_SRCS_F=$(notdir $(wildcard $(TOPDIR)/xdja/xmod/ipfw_Xmod_*[!H].c)) IPFW_XMOD_SRCS_H=$(notdir $(wildcard $(TOPDIR)/xdja/xmod/ipfw_Xmod_*H.c)) cJSON.c #xmod相关代码 NETIPFW_SRCS+= $(IPFW_XMOD_SRCS_F) \ DH_mem.c \ ...

2021-06-14 11:02:43 539

原创 (dpdk f-stack)-实现L4代理功能

FreeBSD提供了IPFW机制,可以注册我们的hook函数来对数据包做改写操作;实现tcp/udp代理思路: 我们的hook函数中利用数据包匹配代理规则,对数据包做改写操作; dpdk收到包后,首先由我们的hook函数负责处理(可能改写ip/tcp头部信息),完事交由FreeBSD协议栈处理(交给上层应用处理,或者路由转发处理); nginx上层发包经过FreeBSD协议栈后,最终调用dpdk接口将数据包从网卡发送前也需调用我们hook函数(可能改写ip/tcp头部信息),完事交...

2021-06-14 10:36:14 785

原创 (dpdk f-stack)-整体框架

f-stack上nginx代理整体框架如下:

2021-06-14 09:17:00 1003

原创 (dpdk f-stack)-多进程模型

rte_eal_init: //对于fstack的 primary 和 secondary 进程,在 rte_eal_init 中不会执行函数pthread_create创建线程 RTE_LCORE_FOREACH_SLAVE(i) { /* * create communication pipes between master thread * and children */ if (pipe(lco...

2021-06-14 08:38:57 1454

转载 go调用so

https://blog.csdn.net/u013474436/article/details/105246605

2021-05-11 17:13:37 1163

原创 (dpdk f-stack) top-工具代码分析

命令工具大体原理: nginx每个worker进程都有一个独立的FreeBSD栈,执行main_loop--process_msg_ring,此函数处理流程: 1)从msg_ring[proc_id].ring[0]中出队列,取出msg; 2)判断是FF_SYSCTL类型,然后执行ff_sysctl函数获取或设置FreeBSD内核的状态参数; 3)最后再把结果msg入队列msg_ring[proc_id].ring[msg->msg_ty...

2021-04-17 08:12:13 398

原创 (dpdk f-stack) VMware跑 f-stack

目的:VMware虚拟机上跑fstack实现nginx web反向代理。网卡可以配置为e1000或者vmxnet3: 修改虚拟机安装目录下 xxxx.vmx 配置文件:修改文件:DPDK-FWD.vmxhpet0.present = "true"numa.vcpu.maxPerVirtualNode = "1"ethernet1.virtualDev = "vmxnet3"#e1000e只支持网卡单队列,vmxnet3支持网卡对队列...

2021-04-17 07:54:54 724 2

原创 (dpdk f-stack) 为何使用巨页

什么是页表:我们知道,在linux操作系统中,CPU在执行一个进程的时候,都会访问内存。但CPU并不是直接访问物理内存地址,而是通过虚拟地址空间来间接的访问物理内存地址。所谓的虚拟地址空间,是操作系统为每一个正在执行的进程分配的一个逻辑地址,在32位机上,其范围从0 ~ 4G-1。操作系统通过将虚拟地址空间和物理内存地址之间建立映射关系,让CPU间接的访问物理内存地址。通常将虚拟地址空间以512Byte ~ 8K,作为一个单位,称为页,并从0开始依次对每一个页编号。这个大小通常被称为页面

2021-04-17 07:36:04 579

原创 (dpdk f-stack) -网卡多队列

网卡是如何将网络中的报文分发到不同的队列呢?常用的方法有微软提出的RSS与英特尔提出的Flow Director技术,前者是根据哈希值希望均匀地将包分发到多个队列中。后者是基于查找的精确匹配,将包分发到指定的队列中。 1、RSS(Receive-Side Scaling,接收方扩展)RSS就是根据如下“关键字”通过哈希函数计算出哈希值,再由哈希值对网卡队列数求余确定数据包放到哪个队列。关键字是如何确定的呢?哈希函数一般选取...

2021-04-17 07:25:40 996

转载 win10备份还原

https://jingyan.baidu.com/article/4ae03de3fb35e83eff9e6b91.html

2020-06-04 19:23:59 239

原创 flask-rest-前后端分离

项目:https://github.com/JulienBalestra/vue-flask创建rest api:https://github.com/flask-restful/flask-restful其他参考: https://www.cnblogs.com/vovlie/p/4178077.htmlhttps://blog.miguelgrinberg.com/post/des...

2019-02-24 11:38:52 1125

原创 (dpdk f-stack) SPDK-高效磁盘io读写

磁盘性能指标--IOPS:IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。 随机读写频繁的应用,如小文件存储(图片)、OLTP数据库、邮件服务器,关注随机读写性能,IOPS是关键衡量指标。 顺序读写频繁的应用,传输大量连续数据,如电视台的视频编辑,视频点播VOD(Video On Demand),关注连续读...

2019-02-24 09:34:24 1608

转载 深入理解uwsgi和gunicorn网络模型

http://xiaorui.cc/2017/02/16/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3uwsgi%E5%92%8Cgunicorn%E7%BD%91%E7%BB%9C%E6%A8%A1%E5%9E%8B%E4%B8%8A/

2019-02-22 09:09:50 473

转载 mysql协议

https://jin-yang.github.io/post/mysql-protocol.html

2019-01-09 16:03:22 953

转载 从winpe安装系统

报错:装系统出现error cannot load file code 5555h 的解决 https://www.kafan.cn/edu/86984282.htmlhttp://udsdown.xyz/114.htmlwin10专业版激活参考: https://blog.csdn.net/erdfty/article/details/84536252最终采取从winpe安装系统...

2019-01-03 10:04:27 2956

原创 (dpdk f-stack) dpdk-网卡类型选择

http://blog.sina.com.cn/s/blog_90cfda2f0102wi9n.htmlSupported NICsAmazonena(Elastic Network Adapter)Chelsiocxgbe(Terminator 5)Cesnetszedata2(COMBO-80G, COMBO-100G)Ciscoenic(UCS Virt...

2018-12-29 22:09:08 12241 2

转载 lua常用库参考

https://blog.csdn.net/u013412772/article/details/78996849

2018-12-10 13:25:20 4541

转载 浏览器渲染原理

转载:https://coolshell.cn/articles/9666.html看到这个标题大家一定会想到这篇神文《How Browsers Work》,这篇文章把浏览器的很多细节讲得很细,而且也被翻译成了中文。为什么我还想写一篇呢?因为两个原因,1)这篇文章太长了,阅读成本太大,不能一口气读完。2)花了大力气读了这篇文章后可以了解很多,但似乎对工作没什么帮助。所以,我准备写下...

2018-11-19 13:07:15 254

转载 性能调优攻略

转载: https://coolshell.cn/articles/7490.html关于性能优化这是一个比较大的话题,在《由12306.cn谈谈网站性能技术》中我从业务和设计上说过一些可用的技术以及那些技术的优缺点,今天,想从一些技术细节上谈谈性能优化,主要是一些代码级别的技术和方法。本文的东西是我的一些经验和知识,并不一定全对,希望大家指正和补充。在开始这篇文章之前,大家可以移步去看一...

2018-11-19 13:00:47 223

转载 如何对比 F-Stack 与 Seastar 这两个网络编程框架?

https://cloud.tencent.com/developer/article/1005181

2018-11-10 19:18:06 2086

转载 制作linux包 u盘安装

一、准备内核转载:https://zhuanlan.zhihu.com/p/27009845首先要有一个能用的 Linux 宿主机,我使用的是 Ubuntu 16.04。然后安装好编译时候用到的库和软件包,由于我的 Ubuntu 16.04 是使用过一段时间的,可能有一些软件包或者库我之前已经装过了,所以没有列举出来,下面是一些我能想到的,其它我没有想到的可以直接把错误信息放进百度,查找缺...

2018-10-25 09:37:06 1259 1

转载 nginx健康检查

nginx对后端节点健康检查的方式主要有3种,这里列出:1、ngx_http_proxy_module 模块和ngx_http_upstream_module模块(自带)    官网地址:http://nginx.org/cn/docs/http/ngx_http_proxy_module.html#proxy_next_upstream2、nginx_upstream_check_mod...

2018-10-24 11:36:41 4487 1

转载 linux 4.1内核源码编译

编译环境Arch Linux on VirtualBox下载内核https://www.kernel.org/下载的内核压缩包,此时的最新内核版本为4.1:解压包# tar -xvJf linux-4.1.tar.xz在这里为了方便直接切换到su权限了,如果为普通权限,须在每条命令前加上sudo,如果sudo可用的话。(命令语句中划线的部分为文件名或目录名,...

2018-10-24 11:25:57 3023

转载 创建一个 Linux 系统的 ISO

本文主要记录了怎样自己创建一个 Linux 系统的 ISO。isolinux制作:    1、首先下载linux kernel,定制自己的kernel,用make bzImage 生成bzImage。        [root@localhost testOS]# ls boot/        bzImage  grub  initrd.gz  initrd.img    2、从U...

2018-10-23 13:32:19 3538 2

转载 使用dd命令制作USB启动盘

使用dd命令制作USB启动盘一般情况下,我会使用U盘安装Linux和其他操作系统。使用U盘安装系统需要把U盘做成启动盘。启动U盘的制作工具有很多:Unetbootin ; Win32diskimager ; Linux live usb ; USB image writer ; WinUSB ; USB startup creator ; 其他工具如果你使用的是Lin...

2018-10-23 11:19:04 11195

转载 Nginx会话保持

Nginx是一个很高效稳定的软负载均衡器,最新的版本可以负载均衡HTTP(s),TCP,UDP等多种协议的链接。一般访问量比较大一点的Web站点都会用NGINX做HTTP协议的Web负载均衡,其后端一般是多个PHP或者JAVA中间件。另外NGINX还可以和Keepalived配合防止均衡器的单点故障,这一点要强于F5,A10这一类的硬件负载均衡设备。但是F5,A10等硬件负载均衡器虽然价格昂贵...

2018-10-21 13:05:35 19782 3

转载 dpdk-多队列机制

参考: https://blog.csdn.net/wyaibyn/article/details/14109325随着网络IO的带宽的不断提升,单核CPU不能完全处满足网卡的需求,通过多队列网卡的支持,将各个队列通过中断绑定到不同的cpu核上,以满足带宽处理需求。常见Intel的网卡有82575、82576,Boardcom的57711等,下面以公司的服务器使用较多的Intel 8257...

2018-10-19 18:07:17 5471 2

原创 nginx的worker进程如何创建lua虚拟机的?

1,lua_State在Lua中的定义如下:    struct lua_State {        CommonHeader;        lu_byte status;        StkId top;  /* first free slot in the stack */        global_State *l_G;        CallInfo *ci;  /* ...

2018-10-18 21:43:34 585

转载 nginx如何结合lua的?

什么是OpenResty?        将Lua和Nginx粘合ngx_lua模块,并且将Nginx核心、LuaJIT、ngx_lua模块、许多有用的Lua库和常用的第三方Nginx模块组合而成。什么是ngx_lua及原理?        ngx_lua是Nginx的一个模块,将Lua嵌入到Nginx中,从而可以使用Lua来编写脚本,这样就可以使用Lua编写应用脚本,部署到Nginx中运...

2018-10-18 20:43:06 3069

转载 win7安装mysql

https://blog.csdn.net/yangguangzhidi/article/details/78540005?locationNum=2&fps=11、解压到D盘 路径:D:\mysql-5.7.20-winx642、配置环境变量变量名:MYSQL_HOME  变量值:D:\mysql-5.7.20-winx64path 里添加 %MYSQL_HOME%\...

2018-10-14 19:52:31 326

bcc.tar.gz bcc代码 bcc代码

bcc代码 bcc代码 bcc代码

2021-07-18

gcc 4.9

gcc 4.9 (gcc4.9.zip)

2018-10-10

LuaStudio破解版.zip

LuaStudio破解版.zip

2018-08-08

wireshark-gm-wireshark

wireshark-gm-wireshark wireshark-gm-wireshark wireshark-gm-wireshark

2018-07-25

windows程序设计(第五版)附代码

windows程序设计(第五版)附代码。这个是pdf的。 windows程序设计(第五版)附代码。这个是pdf的。 windows程序设计(第五版)附代码。这个是pdf的。

2018-03-29

缩略图OpenResty(Nginx)+Lua+GraphicsMagick

缩略图OpenResty(Nginx)+Lua+GraphicsMagick

2017-01-11

source3.x支持utf-8插件

2016-12-29

Navicat mysql 客户端

Navicat mysql 客户端

2016-09-12

CPU是否适合在VMWare上安装64位系统

CPU是否适合在VMWare上安装64位系统

2014-09-24

源码安装svn

源码安装svn

2014-06-27

hello-makefile自生成

hello-makefile自生成

2014-05-22

http-client

http-client

2014-05-16

muduo的Mutex-thread测试

muduo的Mutex-thread测试

2014-05-15

notpad++ 代码编辑

notpad++ 代码编辑

2014-05-03

Source Insight-3.5.0072破解版

Source Insight-3.5.0072破解版 便于查看编辑代码的工具

2014-04-30

UPnP详解以及代码

upnp自启动端口映射,实现直连,代码和参考文档,希望亲们用的上。

2014-04-19

摄像头调试常见问题及解决方法

摄像头调试常见问题及解决方法 希望对大家有用

2014-03-28

通过网络浏览CMOS或USB摄像头

通过网络浏览CMOS或USB摄像头

2014-03-20

imgRePacker_204

这个工具用于解压img 这个工具用于解压img

2014-03-03

linux基础.pdf

linux基础.pdf

2012-09-04

MCS-51单片机指令系统与编程

MCS-51单片机指令系统与编程

2012-03-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除