自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

秦涧泉的博客

新手上路

  • 博客(57)
  • 收藏
  • 关注

原创 python logging

总结1、getLogger()返回root2、getLogger(‘xxx’)返回并继承root3、name 默认返回 main4、from xxx import name 返回 xxx#!/usr/bin/python3'''File Name: base.pyCreated Time: 2021-05-21 14:13:01Last Modified: 2021-05-21 14:59:40Description:Version:'''import loggingpr

2021-05-28 10:09:31 185

原创 qcow2 总结

1、qcow2文件分布对内存不了解的可跳过此部分MMU虚拟地址和物理地址,TLB(Translation Lookaside Buffer) 4k一个page,需要一个地址存放,4K-->4B,4G-->4MB,100万个页, 100个进程需要400M 将页表(一级页表)分为 1024 个页表(二级页表),每个表(二级页表)中包含 1024 个「页表项」 页表一定要覆盖全部虚拟地址空间,不分级的页表就需要有 100 多万个页表项来映射, 而二级分页...

2021-05-26 11:27:28 3944

原创 存储初识

网络拓扑 + 存储技术连接方式 存储方式DAS 直接存储 不能共享 速度快 增加减少复杂 IDE: 133MB/s SATA: 500MB/s SCSI: 1GB/sNAS 网络附加存储 局域网共享 速率慢 减少浪费 一个网络 SMB NFS FTP 1Gbps / 8 = 125MB/sSAN 存储...

2021-05-11 17:19:28 129

原创 Openstack 安全组流表处理分析

1、Openstack 流表介绍# Table to decide whether further filtering is needed# 临时的,暂时的处理,决定是否需要更深处理TRANSIENT_TABLE = 60TRANSIENT_EGRESS_TABLE = 61# Tables used for ovs firewall# 出方向的基础表BASE_EGRESS_TABLE = 71# 出方向的规则表RULE...

2021-03-05 15:24:26 1231 2

转载 openstack security group 流表分析

                                                                       .

2021-03-02 16:58:25 1154

原创 dpdk的 mbuf 内存 和 vhost 多队列

缩写说明:RTE:Run-Time EnvironmentEAL:Environment Abstraction LayerPMD: Poll-Mode Driver 一、dpdk mbuf 和 mtu计算 1、ovs-dpdk内存使用方式 1)默认情况下,OVS DPDK使用共享内存模型。这意味着多个端口可以共享同一个内存池。 添加一个新端口后,它将具有给定的MTU和套接字ID。如果先前已为具有相同MTU和套接字ID的现有端口创建了内存池,...

2020-12-15 10:56:08 650

原创 ovsdb monitor

#ovs agent的 monitor调用daemon_loop #返回一个轮询管理单元 polling.get_polling_manager 根据传参minimize_polling,建立接口轮询 InterfacePollingMinimizer super(InterfacePollingMinimizer, self).__init__ #实际创建一个SimpleInte...

2020-11-30 10:59:39 421 1

原创 linux history config

/etc/profile#historyexport HIST_FILE='/var/local/history.log'USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`HISTFILESIZE=200000HISTSIZE=20000export HISTTIMEFORMAT="[%F %T ${USER_IP}]"export HISTFILE='/var/local/histor.

2020-11-12 08:41:15 111

原创 OVS WITH DPDK IN QEMU-KVM

1、libvirt创建虚拟机使用linux默认网桥virbr0<interface type='network'><mac address='52:54:00:bb:49:d6'/><source network='default'/><address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/></interface>使用ovs中的网.

2020-10-24 19:44:01 473

原创 网络是怎么连通的(三)

数据已经发出,怎么到达目的地?集线器,交换机,路由器等转发设备会根据包头信息,通过查表进行转发或抛弃信号衰减,噪声:电磁波来自网线之外的其他设备,或者从网线中相邻的信号线泄漏出来双绞线使信号线就变成了螺旋形,其中两根信号线中产生的噪声电流方向就会相反抵消每一对信号线的扭绞间隔( 节距) 都有一定的差异,正负信号抵消集线器将信号发送给所有连接在它上面的线路交换机端口的 MAC 模块不具有 MAC 地址。直接接收所有的包并存放到缓冲区中,通过查询mac表找到接口,电路交叉点交换开关开启,如果是

2020-08-05 15:09:50 155

原创 网络是怎么连通的(二)

上节讲到http请求会调用socket接口进行数据发送和接收1,协议栈上半部分是接受应用的委托,通过tcp,udp进行数据收发下半部分是通过ip协议控制网络包收发操作,ip包括arp和icmpicmp用于告知网络传送中出现错误以及各种控制信息arp用于查询ip对应的mac地址,ip下面的网卡驱动控制硬件完成实际信号传送协议栈通过套接字的控制信息来工作套接字是什么,可以说是用于通信操作的控制信息,例如ip,端口,状态,时间等创建时候分配一块内存空间,写入初始状态(监听,创建连接),把绑定.

2020-08-05 14:03:27 193

原创 网络是怎么连通的(一)

1,生成http请求web浏览器上输入“网址”,或者点击一个网页链接,产生URL样式:协议+用户名密码+服务器域名+文件路径http+user:password+www.baidu.com+dir/URL开头可能有http,ftp,file,mailto,省略文件名,服务器根据配置默认文件,多数为index或者defaultURI内容是存放网页数据的文件名或者一个CGI程序,一般get文件,post程序,还有put,delete等等操作服务器浏览器生成http请求: &lt..

2020-08-04 22:15:28 481

原创 一文掌握MAKEFILE和GCC

CC :=g++LD :=g++SRCDIR := srcBUILDDIR := buildTARGET :=bin/targetSRCEXT:=cppSOURCES:=$(shell find $(SRCDIR) -type f -name *.$(SRCEXT))OBJECTS:=$(patsubst $(SRCDIR)/%, $(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o))DEP:=$(OBJECTS:%.o=%.d)CFLAGS:=LDFLAGS.

2020-06-30 21:41:42 247

原创 fopen fclose fwrite fread

#include<stdio.h>#include<string>using namespace std; int main(void){ FILE *fp=NULL; fp=fopen("hello","w+"); if(NULL==fp) { return -1; } int temp=3333333; char s[] = "helloword"; fprintf(fp," %s %d %f %c " ,s, .

2020-06-13 18:39:03 342

原创 文件操作:open write read lseek

#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<stdio.h>#include<unistd.h>intmain(void){charbuf[100]={0};intfd,size,pur;if((fd=open("hello",O_CREAT|O_TRUNC|O_RDWR,...

2020-06-13 16:20:10 245

原创 系统的PANIC

panic并没有什么大不了的,就是禁抢占,善后,禁止了抢占实际上就禁止了调度,因为禁止抢占的情况下除非自己放弃cpu才能调度,但是我们看看那个死循环根本没有放弃cpu的意思。发生panic无非就两种情形,一个是在中断上下文,另一个是在非中断上下文。在中断上下文中 panic的话,此时的in_interrupt()一定返回真,如果此硬件中断触发了一个软中断,那么这个软中断是永远不会被执行的,因为导致 panic的中断永远不会调用irq_exit来使得in_interrupt()返回假。这就解释了为

2020-06-05 09:48:13 1809

原创 计算机的硬件速度总结

计算机的硬件速度总结CPU-3GHZ 每秒执行 3*10^9次/s,也就是1ns执行3次,时钟周期约0.3ns 光速是 3*10^8m/s=0.3m/ns 0.3ns光行走0.1m=10cm L1 cache 32k 3 cycles 1ns L2 cache 6M 14 cycles 4.7ns L3 cache: ...

2020-05-14 14:13:59 1168

原创 网络IO select epoll

int iResult = recv(s, buffer,1024); /*设置非阻塞模式,立即返回*/ int iResult = ioctlsocket(s, FIOBIO, (unsigned long *)&ul); iResult = recv(s, buffer,1024); //5种io...

2020-04-22 15:33:00 152

原创 TCP UDP

冲突域,不能同时传输数据,只能有一个在传输 广播域,广播数据必须接收,影响到了带宽 集线器,直连分线,一个冲突域,一个广播域 交换机,添加管理功能,一个接口一个冲突域 路由器,不转发广播,划分广播域 建立连接 两边都要创建一个cocket,服务端bind,listen,客户端connect connect发送一个SY...

2020-04-21 11:36:49 131

原创 linux中断

INT-中断按照CPU与中断源(把能够提出中断请求的设备和事件称为中断源)的位置关系可分为内部中断和外部中断。内部中断:也称为异常中断,属于非屏蔽中断,是处理器检测到异常情况或执行软件中断指令引起的一种中断。通常有:除法出错中断(INT0)、断点中断(INT3)、溢出中断(INT4)和单步执行中断(INT1)等。异常又分为故障和陷阱。外部中断:也称为硬件中断,是由CPU外部...

2019-08-30 18:50:54 551

原创 收发包过程

物理连接,物理标识,网络标识,端口标识,数据标识星形联结,mac地址,ip地址,服务端口,数据协议===dns请求为例应用层构造DNS包,告诉udp层数据目的8.8.8.8的端口53udp层构造udp包,数据就是dns包内容,目的端口,源端口,告诉ip层ip收到请求后,查询路由表,不在一个子网,找到默认网关,得到源ip,网关ip,构造ip包arp构造mac地址,获取网关对应mac...

2019-08-30 18:50:23 669

原创 许可证加解密

license服务器根据菜单选项制作明文,包括了: 序列号:基于硬件特殊mac计算 signature:文件利用公钥计算 功能选项:url过滤,病毒扫描,云查杀等一些特有服务功能 pem:.pem这种文件就是一个X.509的数字证书,里面有用户的公钥等信息 加解密过程:文件数据(4的倍数检查)->EVP_DecodeBlock(4:3)->...

2019-08-30 18:46:26 1197

原创 系统内存和进程内存

===系统内存===系统内存的使用情况可以用以下公式表示:MemTotal = MemFree +【Slab+ VmallocUsed + PageTables + KernelStack + HardwareCorrupted + Bounce + X】+【Active + Inactive + Unevictable + (HugePages_Total * Hugepagesize)】...

2019-08-30 18:43:38 493

原创 linux内存计算

详细内容请看,转载http://linuxperf.com/?p=142,本篇为阅读后的理解linux内存分为三部分,内核,进程,cachelinux内核:内核所用内存的静态部分,比如内核代码、页描述符等数据在引导阶段就分配掉了,并不计入MemTotal里,而是算作Reserved(在dmesg中能看到)【Slab+VmallocUsed+ PageTables + Ker...

2019-06-23 11:30:16 813

原创 基于linux的Hostap实现wifi热点分享

基于linux的Hostap实现wifi热点分享 一、无线网卡信息查看工具:ifconfig,WirelessToolslspci          判断网卡型号Ifconfig     可以看到是否有无线网卡硬件识别,一般为wlan0ethtool     查看网卡驱动类型iw list        命令查看是否支持AP模式 二、开源hostapd如何开启AP模式,利用hostapd软件1, ...

2018-04-20 17:33:07 3053

原创 多进程共享内存续篇-大锁

读写锁,就是多人可以同时访问,但是同时只有一个人可以修改的规则。由于锁本身的申请和释放,对于性能有很大的消耗,那么一般写只发生在特殊情况,也就是很少发生。读锁常在就是性能的优化方案,只有在申请写锁的时候,才会释放读锁。和之前有什么不一样呢,例如,连续的在不同地方的100次读,以前是要100次读锁的申请和释放,现在只有初始的一次申请读锁,中间完全没有别的消耗。代码如何实现呢?过程

2017-06-24 15:02:56 1616

原创 学习笔记(一)防火墙认识

网络的功能是实现通信,那么通信就意味着有来有往,会有欺骗和勒索等威胁类似于现在的手机业务,防火墙就是一个可以用来保护通信的工具。既然是对通信保护,也就是说要在通信过程中进行检测。防火墙一般是集合了路由功能,一个接口连外网,几个接口连通内网1,例如:外卖和快递的电话,我们手机软件有些是可以识别出来的,那么可以选择直接拒接。起初,防火墙保护的方法是对源和目的进行连接防护,防护的五元组:源i

2017-06-04 17:46:15 2367

原创 ipv4-ipv6-mask

ipv4是2的4次方,32位数据,42亿多个ipv6是2的6次方,128位数据,很多很多个ip地址的表示方式字符串一般为点分十进制表示,又有ip地址,ip段,ip掩码方式192.168.1.1192.168.1.100-192.168.1.200192.168.1.1/24192.168.1.1 255.255.255.0当然掩码方式也是ip段的一种

2017-06-03 15:32:57 1624

原创 c语言json的使用

http://www.json.org/为官网地址json是一种轻量级的数据交换格式,主要建立在两个结构上1,键、值 对的集合,可以被看作是对象,记录,字典,散列表等2,有序列表,实现为数组,向量或列表格式如下:对象:{string:value,string1:value1,string2:value2}数组:{string:[{value},{value1},{v

2017-06-03 15:06:10 2704 1

原创 共享内存-锁

锁就是你的函数在某种条件下才可以继续执行条件变量,条件成立唤醒执行信号量,自旋锁,互斥锁,读写锁对于锁的理解:设置一个标志表示可访问的状态,相当于有多少把钥匙,同时只能一个人拿到这个钥匙,或者多个人多把钥匙,拿不到就等着有以下问题:等着是什么呢? 睡眠或返回或死等保证得到锁,空出锁的原子性操作? 寄存器,唯一性操作malloc

2017-05-16 14:35:34 2240

原创 pcap和tcp/ip协议

抓包工具有wireshark,tcpdump等,原理是在链路层,也就是经过驱动处理得到二进制数据后,旁路通信通道,进行监测,都是基于pcap工具包,pcap工具其实也是一种socket程序,具体过程:找网络设备建立接口连接获取数据并存储获得的数据是要根据网络协议具体分析的,网络协议是一种通信规则,游戏有了规则,大家才能一起玩,不然只能各玩各的首先是数据的格式:写信需要信封,

2017-04-06 11:09:09 1519

原创 MemAvailable

linux mem available 计算方式

2023-01-09 17:34:56 855

原创 openvswitch 中的conjunction

CONJUNCTION 联合字段一个单独的OpenFlow流只能匹配某个字段的一个值。然而,多有需求需要匹配一个或多个字段中的一组值。为将单个字段与一个范围进行匹配,这很简单,向流表添加多个流,每个流一个值。例如,可以使用以下流,匹配发送IP源地址为a、b、c或d的数据包到OpenFlow控制器:ip,ip_src=a actions=controllerip,ip_src=b actions=controllerip,ip_src=c actions=controllerip,ip_src=

2021-03-05 17:31:09 836

原创 ovs qinq

网络拓扑h1 -- eth1- s3 -eth2 -- eth1- s4 -eth2 -- h2h1-eth0<->s3-eth1 (OK OK) dot1q-tunnel tag=100s3-eth2<->s4-eth1 (OK OK) trunk=100 trunk=100s4-eth2<->h2-eth0 (OK OK) dot1q-tunnel tag=100dpctl add-flow action=normalovs-vsctl set p

2021-01-08 17:12:35 637

原创 ovs agent的 monitor调用 火焰图 函数关系图

#ovs agent的 monitor调用daemon_loop #返回一个轮询管理单元 polling.get_polling_manager 根据传参minimize_polling,建立接口轮询 InterfacePollingMinimizer super(InterfacePollingMinimizer, self).__init__ #实际创建一个SimpleInte...

2020-11-26 20:23:07 238

原创 git 命令总结

git操作1、仓库 本地到远程 $ git init 远程到本地 $ git clone 查看远程地址 $ git remote -v 设置名称 $ git config --global user.name "Your Name" $ git config --global user.email "[email protected]" 查询名称 $ git config user.name $ git con...

2020-11-01 12:47:46 55

原创 python vim plug backup

call plug#begin('~/.vim/plugged')"语法检查Plug 'scrooloose/syntastic'"添加nerdtree插件,目录树插件Plug 'scrooloose/nerdtree'" NerdTree文件类型高亮Plug 'tiagofumo/vim-nerdtree-syntax-highlight'" 显示文件类型图标Plug 'ryanoasis/vim-devicons'" 更换主题,这个插件拥有更多主题可选,而且远程和本机操作均有效Pl

2020-10-31 01:56:08 155

原创 ISO镜像

ISO文件加载过程 类似grub,ISO有个引导程序ISOLinux.bin 启动menulist,寻找isolinux.cfg配置文件 ISO安装过程 ks.cfg是安装过程的配置文件,可以通过图形工具 system-config-kickstart 来定制 也可以熟悉 kickstart 语法的可以直接编写 ks.cfg 配置文件 ks.cfg 配置文件放在光盘的根目录即可,然后修改 isolinux/isolinux.cfg 文件, 设置内核...

2020-06-05 10:21:37 1004

原创 易懂的7种排序算法解析和理解

找最值每次确定一个最值位置,找最值,就是一个全局遍历过程,交换找最大值,中间可能有序对比找最大值,必须全部找出交换找最大值,保留中间状态bubble 对比交换,遍历0-i可以确定第i+1位置,最值 1,最外层循环是从len-1-->1,i是要确定最值需要的下标 2,二层是0-->i,相邻交换,确定i+1...

2019-09-20 19:34:01 124

原创 进程栈调用

进程的虚拟内存中的标准内存段布局4G 0xffff ffff kernel space, user code write or read segmentation fault3G 0xbfff ffff random stack offset rlimit_stack, 8M ...

2019-09-17 15:41:02 293

空空如也

空空如也

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

TA关注的人

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