自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(739)
  • 收藏
  • 关注

原创 ARP协议

但是从层次来看,ARP基于Ethernet协议,IP协议基于Ethernet协议,它们在Ethernet协议里面有独立的Type类型,前者是0x0806,后者是0x0800,既然ARP和IP协议"平起平坐",那么IP是网络层,ARP难道就不是网络层?这里需要特别关注ARP请求包的内容,在上面的图解里面,ARP请求包的完整信息是:我的IP地址是IP1,MAC地址是MAC1,请问谁是PC2,你的IP2对应的MAC地址是多少?所以在局域网的通信中,不仅需要源目IP地址的封装,也需要源目MAC的封装。

2023-04-28 22:24:13 534 2

原创 在DOCKER DESKTOP 底下搭建K8S 环境搭建

这个V2.5.1的版本一直有问题,最后没办法我就重新换了版本:“https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta5/aio/deploy/recommended.yaml”,这里我没用使用。所以此处我就没用这了(我个人查了下yaml文档,自己估计应该是版本的问题)这里一直starting 的情况,有时候是网络的问题,人确实得多等下,大多数请款下还是镜像包不够造成的,这个玩意折腾了我好几天,

2023-04-28 16:58:18 827

原创 k8s集群环境搭建

一台master节点和多台node节点,搭建简单,但是有单机故障风险,适合用于测试环境。

2023-04-28 16:48:18 384

原创 TCP建立连接的相关问题

一个旧的SYN报文比最新的SYN报文早到达服务端;那么此时服务端就会回送一个SYN+ACK报文给客户端;客户端收到后根据自身上下文,判断这是一个历史连接(序列号过期或超时),那么客户端就会发送一个RST报文给服务端,表示中止这一次连接。如果是两次握手的话,就不能判断当前连接是否是历史连接,三次握手可以在客户端准备发送第三次报文时,有足够的上下文来判断当前连接是否是历史连接:1> 如果是历史连接,则第三次握手发送的报文是RST报文,中止连接;

2023-04-27 17:36:49 294

原创 TCP的基本认识

TCP是面向连接、可靠的、基于字节流的传输层通信协议。面向连接:一定是一对一的才能够连接,不能像UDP协议可以一个主机同时向多个主机发送消息,也就是说一对多是不能做到的;可靠的:无论网络链路中出现了怎样的链路变化,TCP都可以保证一个报文一定能够到达接收端;字节流:消息是没有边界的,所以无论我们消息有多大都是可以进行传输的,并且消息是有序的,当前一个消息没有收到的时候,即使它先收到了后面的字节,也不能扔给应用层去处理。

2023-04-27 17:34:46 172

原创 Nginx全面配置

Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。性能是 Nginx 最重要的考量,其占用内存少、并发能力强、能支持高达 5w 个并发连接数,最重要的是, Nginx 是免费的并可以商业化,配置使用也比较简单。Nginx中文文档同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。

2023-04-26 20:48:11 5044

原创 I/O 多路复用底层原理前篇 - 五种IO模型 _

现代计算机服务器操作系统大部分都是基于linxu实现,为处理高并发而采取NIO的模型,对于支持异步IO模型的系统持有不确定因素。BIO、NIO、AIO总结同步:发起一个fn的调用,需要等待调用结果返回,该调用结果要么是期望的结果要么是异常抛出的结果,可以说是原子性操作(要么成功要么失败返回)异步:发起一个fn调用,无需等待结果就直接返回,只有当被调用者执行处理程序之后通过“唤醒”手段通知调用方获取结果(唤醒的方式有回调,事件通知等)同步和异步关注的是程序之间的通信。

2023-04-26 20:41:03 139

原创 Docker 入门指南

Docker是基于Go开发的应用容器引擎,属于 Linux 容器的一种封装,提供简单易用的容器使用接口。

2023-04-25 19:50:15 278

原创 docker应用、搭建、container、image、搭建私有云docker registry、容器通信、端口映射、多机多容器通信、数据持久化、docker部署wordpress、docker co

l 官网:https://docs.docker.com/l Docker 提供了两个版本:社区版 (CE) 和企业版 (EE)

2023-04-25 17:38:17 346

原创 利用SPDK改善NVMe存储I/O性能

向后通过对块设备的抽象可以适配各类型的存储设备。为了减少存储产品面临的传统共性问题,如频繁的系统调用和上下文切换、多次的数据拷贝、过高的协议栈开销、复杂的并发互斥等痛点问题,在用户态化实现的过程中,引入了 Intel 的 DPDK/SPDK作为关键基础技术来进行集成和开发。当前的实现中,一方面,增加了对请求所属的监听是否当前 subsystem 所允许的合法性判断,同时也对同一个主机,通过同一个 port(主机侧的 port 和 Target 侧的监听均一样)来进行重复建链(建立控制链接)的情况的限制。

2023-04-24 21:49:16 564

原创 软件和硬件数据交互接口的的演进

如图1(e),进一步的,随着带宽和内存的增加,导致数据频繁的在用户态应用程序、内核的堆栈、驱动以及硬件之间交互,并且缓冲区也越来越大,这些都不可避免的增加系统消耗,并且带来更多的延迟;如图6(b),DPDK最核心的功能是提供了用户态的轮询模式驱动,为了加速网络IO,DPDK允许传入的网络数据包直通到用户空间而没有内存复制的开销,不需要用户空间和内核空间切换时的上下文处理。更确切一些的说,软硬件接口包括交互的驱动软件、硬件设备的接口部分逻辑,也包括内存中的共享队列,还包括传输控制和数据信息的总线。

2023-04-24 21:37:23 563

原创 redis配置文件详解

④、no-appendfsync-on-rewrite:在aof重写或者写入rdb文件的时候,会执行大量IO,此时对于everysec和always的aof模式来说,执行fsync会造成阻塞过长时间,no-appendfsync-on-rewrite字段设置为默认设置为no。可能丢失30秒数据。另外需要注意的时,如果将此配置写在redis.conf 文件的开头,那么后面的配置会覆盖引入文件的配置,如果想以引入文件的配置为主,那么需要将 include 配置写在 redis.conf 文件的末尾。

2023-04-24 19:58:23 468

原创 linux 查看端口连接数

主动关闭的一方在发送最后一个ack后,就会进入TIME_WAIT状态停留2MSL(max segment lifetime)时间,这个是TCP/IP必不可少的,也就是“解决”不了的。也就是TCP/IP设计者本来是这么设计的。表示Apache能够处理1388个并发请求,这个值Apache可根据负载情况自动调整。统计httpd进程数,连个请求会启动一个进程,使用于Apache服务器。对比httpd.conf中MaxClients的数字差距多少。3)统计已连接上的,状态为“established。

2023-04-22 22:29:33 1601

原创 查看linux中的TCP连接数

初步认为是服务器资源不足了,但经反复测试,一旦连接上,不断点击同一个页面上不同的链接,都能迅速打开,这种现象就是说明apache最大连接数已经满了,新的访客只能排队等待有空闲的链接,而如果一旦连接上,在keeyalive 的存活时间内(KeepAliveTimeout,默认5秒)都不用重新打开连接,因此解决的方法就是加大apache的最大连接数。约8K个进程,支持2W人同时访问应该是没有问题的(能保证其中8K的人访问很快,其他的可能需要等待1、2秒才能连上,而一旦连上就会很流畅)然后wc -l统计。

2023-04-22 22:15:49 357

原创 Docker 网络管理--网络创建和通信

2、当容器网络堆栈不应与Docker主机隔离但又希望隔离容器的其他方面(cgroup,unix file system)时,使用主机网络模式(host)是最佳选择。连接到同一桥接网络的容器可以互相通信,对不同桥接网络的容器则无法直接相互通信。3、主机网络模式(host):如果某个容器需要访问主机的某个服务,那么需要配置主机网络模式,该模式直接占用主机的网络端口和网卡资源。2、覆盖网络模式(overlay):覆盖网络模式可以将不同的Dockerd守护进程连接在一起,该网络模式支持集群容器之间相互通信,

2023-04-22 20:00:11 308

原创 网络性能测试工具:iperf3

iperf3是一个网络性能测试工具(iperf3下载地址iperf可以测试TCP和UDP带宽质量。iperf可以测量最大TCP带宽,具有多种参数和UDP特性。iperf可以报告带宽,延迟抖动和数据包丢失。iperf3是一种用于主动测量IP网络上可实现的最大带宽的工具。它支持调整与时序、缓冲区和协议(TCP、UDP、带有 IPv4 和 IPv6 的 SCTP)相关的各种参数。对于每次测试,它都会报告带宽、损耗和其他参数。这是一个新的实现,它不与原始iperf共享代码,也不向后兼容。服务器端挂起。

2023-04-18 22:21:15 3979

原创 c++11新特性实战:智能指针

重点理解三种智能指针的使用场景,unique_ptr性能高,没有特殊要求的话可以直接用来取代raw pointer(原始指针)。shared_ptr开销大,在前者不能满足的场景例如需要多个智能指针同时拥有同一个控件的所有权的时候使用。weak_ptr不单独使用,通常用来配合shared_ptr使用,避免循环引用的问题。优点:不用手动管理内存,尤其是根本不知道释放时机的时候缺点:shared_ptr的内存占用高(多了一个引用计数),对多线程不友好(对引用计数的操作要原子性)写起来麻烦转自。

2023-04-18 22:15:29 143

原创 DevOps流水线设计的最佳实践

谈到到DevOps,持续交付流水线是绕不开的一个话题,相对于其他实践,通过流水线来实现快速高质量的交付价值是相对能快速见效的,特别对于开发测试人员,能够获得实实在在的收益。很多文章介绍流水线,不管是jenkins,gitlab-ci, 流水线,还是drone, github action 流水线, 文章都很多,但是不管什么工具,流水线设计的思路是一致的。

2023-04-18 22:12:39 425

原创 Go的网络编程详解

互联网的逻辑实现被分为好几层。每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持。用户接触到的只是最上面的那一层,根本不会感觉到下面的几层。要理解互联网就需要自下而上理解每一层的实现的功能。如上图所示,互联网按照不同的模型划分会有不用的分层,但是不论按照什么模型去划分,越往上的层越靠近用户,越往下的层越靠近硬件。在软件开发中我们使用最多的是上图中将互联网划分为五个分层的模型。接下来我们一层一层的自底向上介绍一下每一层。

2023-04-17 22:26:13 393

原创 TCP参数参数调优

可以通过上述的概念的描述,我们可以发现, Latency 和 Bandwidth 决定了网络性能,但是在绝大部分场景下,影响传输性能的最关键的因素是 Latency。因为就算带宽再高,我们也无法绕过由于物理距离带来的高延迟问题。因此,减少延迟就作为了一个非常核心的优化指标。TCP三次握手增加了整整一次往返时间TCP慢启动将被应用到每个新连接TCP流量及拥塞控制会影响所有连接的吞吐量TCP的吞吐量由当前拥塞窗口大小控制在大多数情况下,TCP 性能的瓶颈都是延迟,而非带宽。

2023-04-17 22:13:04 614

原创 Linux系统中如何查看TCP连接数

初步认为是服务器资源不足了,但经反复测试,一旦连接上,不断点击同一个页面上不同的链接,都能迅速打开,这种现象就是说明apache最大连接数已经满了,新的访客只能排队等待有空闲的链接,而如果一旦连接上,在keeyalive 的存活时间内(KeepAliveTimeout,默认5秒)都不用重新打开连接,因此解决的方法就是加大apache的最大连接数。然后wc -l统计。net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

2023-04-17 22:08:40 2674

原创 Linux HugePage

使用AMM的情况下,所有的SGA 内存都是在/dev/shm 下分配的,因此在分配SGA时不会使用HugePage。这也是AMM 与HugePage不兼容的原因。HugePages_Surp: “surplus”的缩写形式,表示池中大于/proc/sys/vm/nr_hugepages 中值的 HugePages 数量。HugePages_Free – HugePages_Rsvd 这部分是没有被使用到的内存,如果没有其他的oracle instance,这部分内存也许永远都不会被使用到,也就是被浪费了。

2023-04-17 21:27:51 1225

原创 vector容器+模拟实现

vector的本质其实是一个顺序表的结构,也可以说是数组存储,与顺序表的结构很相似,vector的接口更为完善。vector容器是一个单口的容器,从头部或者中间插入元素需要向后移动大量元素,是不是和栈很相似啊。vector容器数据结构:连续存储空间迭代器:随机迭代器,提供读写操作,并能在数据中随机移vector容器动态增长原理:当存储空间不够的时候,会另外开辟一块更大的空间,把数据拷贝过去,然后销毁原来的空间申请的空间,会比用户需求大一点重新分配空间,那么原来的迭代器就会失效(★)

2023-04-17 20:45:29 137

原创 Vector底层实现

解引用能赋值 ==_start+0 == 这里先让原先的_finish-_start==0 再+上0 因为_start已经更新过了 所以需要在开头记录_size的大小。解引用能赋值 ==_start+0 == 这里先让原先的_finish-_start==0 再+上0 因为_start已经更新过了 所以需要在开头记录_size的大小。//× 结果为空 解引用无地址 赋值会崩溃 ==_start+(_finish-_start) 这里的_finsih最后是等于空。

2023-04-17 20:28:45 109

原创 Docker容器配置和资源限制

容器的主进程负责管理它启动的所有进程。

2023-04-17 20:09:58 689

原创 Docker容器自动启动、网络类型、容器互联、容器跨宿主机通信、docker-compose使用

1.2 方法2,在配置文件添加参数2. Docker网络类型2.1 四种网络类型2.2 查看docker网络类型3. 容器互联4. Docker跨主机容器之间的通信(macvlan)这个演示至少要需要两台虚拟机,这里使用docker01和docker024.2 创建macvlan网络4.3 测试5. Docker跨宿主机容器通信之overlay该模式需要三台机器,两台docker,一台consul5.1 启动consul容器

2023-04-17 19:53:20 529

原创 如何清理 Docker 占用的磁盘空间

Docker 很占用空间,每当我们运行容器、拉取镜像、部署应用、构建自己的镜像时,我们的磁盘空间会被大量占用。如果你也被这个问题所困扰,咱们就一起看一下 Docker 是如何使用磁盘空间的,以及如何回收。转存失败重新上传取消TYPE最后的是可回收大小。下面就分别了解一下这几个类型。

2023-04-17 19:41:15 1338

原创 怎样编写正确、高效的 Dockerfile

多阶段构建指在Dockerfile中使用多个FROM语句,每个FROM指令都可以使用不同的基础镜像,并且是一个独立的子构建阶段。使用多阶段构建打包Java/GO应用具有构建安全、构建速度快、镜像文件体积小等优点。

2023-04-15 22:27:27 137

原创 纯干货!Docker Dockerfile指令大全

除此之外,ADD还支持使用TAR文件和URL路径,并且会将tar压缩文件(gzip, bzip2以及 xz格式)解压缩,如果指定的是url,会从指定的url下载文件放到目录中( 如果url下载的文件为tar文件,则不会展开)。在Dockerfile文件中,WORKDIR指令可出现多次,其路径也可以为相对路径,不过,它的路径是相对此前一个WORKDIR指令指定的路径。,这时执行新镜像的 Dockerfile 构建时候,会执行 test-build 的 Dockerfile 里的 ONBUILD 指定的命令。

2023-04-15 22:10:11 2724

原创 Dockerfile 如何编写与构建?

Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。以上面我自己的一个镜像。

2023-04-15 22:06:40 176

原创 DPDK-流分类与多队列

多队列与流分类技术基本被应用到所有DPDK网关类项目中,比如开源的DPVS,美团的四层网关等等,利用多队列及分流技术可以使得网卡更好地与多核处理器,多任务系统配合,从而达到更高效IO处理的目的。这章节以英特尔的网卡为例,介绍多队列和流分类是如何合工作的 ,各种分类方式适合哪些场景,DPDK怎么利用这些网卡特性。

2023-04-15 22:01:43 397

原创 面试官喜欢问的项目——DPVS

的最终目的IP,浏览器用这个IP发送http请求,发到了CDN厂商的服务器上,服务器不是一台设备,是一个大机房,公用一个IP,到底那个机器提供服务就取决于负载均衡算法。决定出给小白服务的机器,请求也就到了那个机器上,这个机器可以理解成一个缓存硬盘,发现有。LVS的中文译文是Linux虚拟服务器,是中国前阿里程序员写的,内核代码里能找到,可见他的牛逼之处。公司的服务器,这个服务器根据小白的源IP地址,确定了小白的地理位置在北京市海淀区,用的是电信宽带,根据算法取一个离小白最近的机房的IP返回给了浏览器作为。

2023-04-15 21:41:41 194

原创 LVS的原理

互联网主流可伸缩网络服务有很多结构,但是都一个共同的特点,它们都需要一个前端的负载调度器(或者多个进行主从备份)。实现虚拟网络服务的主要技术指出IP负载均衡技术是在负载调度器的实现技术中效率最高的。已有的IP负载均衡技术中,主要有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/NAT技术(Virtual Server via Network Address Translation)。

2023-04-15 21:05:10 154

原创 dpvs入门实践1--概念及编译安装

DPVS是一种基于DPDK的高性能四层负载均衡器。它来源于Linux Virtual Server LVS及其修改后的alibaba/LVS. 那LVS是什么呢?Linux Virtual Server是构建在实服务器集群上的高度可伸缩和高可用的服务器,负载平衡器运行在Linux操作系统上。服务器集群的架构对最终用户是完全透明的,用户之间的交互就好像它是一个高性能的虚拟服务器。

2023-04-15 20:46:12 266

原创 TCP/IP协议栈介绍

我们在设置DHCP server的时候,IP分配的起始地址是192.168.0.1,这个地址一般都是应用给网关的,最常见的网关就是路由器,当给新的DHCP客户端分配IP地址的时候是按顺序来的。TCP和UDP最简单也最根本的区别就是TCP是确保传输数据的可靠性的,而UDP是没有的。,我们可能对某些协议比较熟悉,比如在网页数据也就是超文本数据的传输我们所用到的HTTP协议,还有为HTTP协议提供服务的TCP协议,但是有一些协议我们有用到但可能知道地不是很清楚,比如ARP协议,DHCP协议还有DNS协议等等。

2023-04-15 17:25:02 507

原创 图解HTTP权威指南(二)| 连接管理

TCP/IP是全球计算机及网络设备都在使用的一种常用的分组交换网络层协议分层协议集。客户端应用程序可以打开一条TCP/IP连接,连接到可能运行在世界任何地方的服务器应用程序。一旦连接建立起来,在客户端和服务器的计算机之间的交换的报文就永远不会丢失、受损或失序。

2023-04-14 17:59:58 74

原创 TCP/IP协议栈在Linux内核中的运行时序分析

Linux中使用socket结构描述套接口,代表一条通信链路的一端,用来存储与该链路有关的所使用的协议的状态信息(包括源地址和目标地址),到达的连接队列数据缓存和可选标志等等使用socket结构描述套接口示意图如下所示:其中最关键的成员是sk和ops,sk指向与该套接口相关的传输控制块,ops指向特定的传输协议的操作集。下图详细展示了socket结构体中的sk和ops字段,以TCP为例:常见APIsocket()

2023-04-14 17:47:01 397

原创 TCP/IP 网络设备与基础概念

为了确保 IP 数据包在网络上具有有限的生存期,所有 IP 数据包都有一个 8 位的 TTL(IPv4)或 Hop Limit(IPv6)报头字段和值,当一个路由器接收到一个数据包时,它会将 TTL 或 Hop Limit 减 1,然后再将数据包转发到下一个路由器。MAC 地址是硬件地址,与设备的网卡绑定,二层交换机通过学习连接的每个终端的 MAC 地址,将数据发送给对应的目 的终端上,避免将数据发送到无关端口,提供了网络利用率。在一个广播域内的任意两台主机之间可以任意通信,通信数据有被窃取的风险。

2023-04-14 17:32:27 153

原创 网络IO-TCPIP协议栈

这个文档就是针对概念记录具体的跟踪过程。

2023-04-14 17:30:14 189

原创 TCP/IP 协议是一个“有层次的协议栈”

两个协议的另一个重要区别在于数据的形式。TCP/IP 当初的设计者真的是非常聪明,创造性地提出了“分层”的概念,把复杂的网络通信划分出多个层次,再给每一个层次分配不同的职责,层次内只专心做自己的事情就好,用“分而治之”的思想把一个“大麻烦”拆分成了数个“小麻烦”,从而解决了网络通信的难题。但下层的传输过程对于上层是完全“透明”的,上层也不需要关心下层的具体实现细节,所以就 HTTP 层次来看,它不管下层是不是 TCP/IP 协议,看到的只是一个可靠的传输链路,只要把数据加上自己的头,对方就能原样收到。

2023-04-14 17:26:29 120

空空如也

空空如也

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

TA关注的人

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