- 博客(50)
- 收藏
- 关注
原创 IO性能篇(一):文件系统是怎么工作的
VFS Virtual File System:索引节点、目录项、逻辑块、超级块构成了linux文件系统的四大基本要素,但是为了支持各种不同的文件系统,linux内核在用户进程和文件系统的中间,引入了抽象层,也就是虚拟文件文件系统VFS。目录项,也叫 dentry,用来记录文件的名字、索引节点指针以及与其他目录项的关联关系,多个关联的目录项,就构成了文件系统的目录结构。不同于索引节点,目录项是由内核维护的一个内存数据结构,索引通常也被叫做目录项缓存。
2025-09-07 15:41:38
779
原创 网络性能篇(一):网络性能指标
全连接:是指服务器收到了客户端的ACK,完成了TCP三次握手,然后就会把这个连接挪到全连接队列中,这些全连接中的套接字,还需要被accept()系统调用取走,服务器才可以开始真正处理客户端的请求。半连接:是指还没有完成TCP三次握手的连接,连接只进行了一半。服务器收到客户端的SYN包后,就会把这个连接放到半连接队列中,然后在向客户端发送SYN+ACK包。ifconfig和ip只显示网络接口收发数据包的统计信息,在实际性能问题中,网络协议栈中的统计信息,也需要关注。iproute2 软件包中的ip命令。
2025-09-05 13:48:28
450
原创 内存性能篇(三):内存性能指标
同 CPU 性能分析一样,我的经验是两个不同维度出发,整理和记忆:为了迅速定位内存问题,我通常会先运行几个覆盖面比较大的性能工具,比如 free、top、vmstat、pidstat 等,具体的分析思路主要有这几步:常见的优化思路有这么几种:
2025-09-05 13:44:18
641
原创 内存性能篇(二):为什么系统的swap变高了
NUMA (Non-Uniform Memory Access):在 NUMA 架构下,多个处理器被划分到不同 Node 上,且每个 Node 都拥有自己的本地内存空间,而同一个 Node 内部的内存空间,实际上又可以进一步分为不同的内存域(Zone),比如。剩余内存落在页最小阈值和页低阈值中间,说明内存压力比较大,剩余内存不多了。剩余内存落在页低阈值和页高阈值中间,说明内存有一定压力,但还可以满足新内存请求。剩余内存大于页高阈值,说明剩余内存比较多,没有内存压力。a. 页最小阈值(pages_min)
2025-09-04 13:48:12
1037
原创 内存性能篇(一):内存是怎么工作的
OOM(Out of Memory):是内核的一种保护机制。它监控进程的内存使用情况,并且使用 oom_score 为每个进程的内存使用情况进行评分。linux内核给每个进程都提供了一个独立的虚拟地址空间,并且这个地址空间是连续的,这样进程可以很方便的访问内存,确切的说是访问虚拟内存。内存主要是用来存储系统和应用程序的指令、数据、缓存等。Linux提供了两种机制,解决页表项过多的问题。DRAM 动态随机访问内存。
2025-09-04 13:44:10
851
原创 CPU性能篇(四):CPU性能指标和性能优化
从应用程序的角度来说,降低 CPU 使用率的最好方法当然是,排除所有不必要的工作,只保留最核心的逻辑。从系统的角度来说,优化 CPU 的运行。
2025-09-03 14:23:48
1047
原创 CPU性能篇(三):怎么理解软中断
中断的含义:中断是系统用来响应硬件设备请求的一种机制,他会打断进程的正常调度和执行,然后调用内核中的中断处理程序来响应设备的请求。中断处理程序在响应中断时,还会临时关闭中断,这就会导致上一次中断处理完成之前,其他中断都不能响应,也就是说中断可能会丢失。为了减少对正常进程进行调度的影响,中断处理程序就需要尽可能快的运行。中断其实是一种异步的事件处理机制,可以提高系统的并发处理能力。ps 的输出中,名字括在中括号里的,一般都是内核线程。
2025-09-03 14:19:14
406
原创 CPU性能篇(二):上下文切换
自愿上下文切换变多了,说明进程都在等待资源,有可能发生了 I/O 等其他问题非自愿上下文切换变多了,说明进程都在被强制调度,也就是都在争抢 CPU,说明 CPU 的确成了瓶颈中断次数变多了,说明 CPU 被中断处理程序占用,还需要通过查看 /proc/interrupts 文件来分析具体的中断类型。
2025-09-02 16:08:32
1656
原创 CPU性能篇(一):平均负载
平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数,所以,它不仅包括了正在使用CPU的进程数,还包括等待CPU和等待IO的进程。:是指处于内核态关键流程中的进程,并且这些进程是不可打断的 也就是D状态的进程。:是指正在使用CPU或者正在等待CPU的进程 也就是处于R状态的进程。当平均负载高于CPU数量的70%时,应该分析排查负载高的问题。不可终断状态实际上是系统对进程和硬件设备的一种保护机制。的平均进程数,也就是平均活跃进程数。:是指单位时间内,系统处于。
2025-09-02 15:15:15
431
原创 路由控制(二):路由策略和策略路由
路由策略可以在路由协议发布、接收和引入路由时配置使用,也可以用于过滤路由和改变路由属性。路由策略的工具主要包括filter-policy和router-policy,更多在控制平面对路由进行控制。:策略路由是一种依据制定的策略而进行路由选择的机制,可应用于安全、负载分担等,他改变数据包的路由查找方式,影响数据平面的转发。策略路由:是一种依据用户指定的策略进行路由选择的机制。
2025-08-31 14:13:00
227
原创 路由控制(一):ACL
华为ACL过滤数据包时,没有被匹配到的数据包,默认允许通过,高级ACL不能用于匹配路由,只能用于过滤数据包,基本ACL可以用于匹配路由,也可以过滤数据包。ACL是一组顺序排列的过滤器,每条过滤器由匹配的条件和动作组成,动作可以时允许或者拒绝。通配符中用二进制0精确匹配对应的地址位,用1来模糊匹配对应的地址位。通配符:也成为反掩码,使用全255减去正掩码得出的就是反掩码。3. 基于接口的ACL 编号范围 1000-1999。ACL 访问控制列表,用于定义匹配规则的过滤器列表。
2025-08-31 13:54:08
1063
原创 防火墙技术(三):状态检测和会话机制
用户查询SQL数据库服务器上的数据时,查询操作的时间间隔可能会远大于SQL数据库业务的会话老化时间,防火墙上该业务的会话老化之后,就会出现用户访问SQL数据库变慢或者无法继续查询的问题。会话是动态生成的,但不是永远存在的。UDP不同于TCP,他没有连接状态协议,对于UDP,防火墙收到UDP报文后,无论状态检测功能是处于开启还是关闭,只要防火墙配置的规则允许UDP报文通过,防火墙就会就会建立会话。当收到报文的回应报文时,防火墙会把回应报文的信息和会话中的信息进行比对,如果信息匹配,则直接允许回应报文通过。
2025-08-30 20:42:26
1123
原创 防火墙技术(二):安全区域
具体来说,防火墙会把原始报文中的源地址假设成目的地址,然后通过查找路由表来确定这个目的地址的报文将要从哪个接口出发,该接口所属的安全区域是报文将要去往的安全区域。备注:Local区域不能添加任何接口,但防火墙上所有接口本身都隐含属于Local区域,也就是说,报文通过接口去往某个网络时,目的安全区域是该接口所在的安全区域;3. 防火墙收到的是封装报文,将报文解封装后得到原始报文,然后通过查找路由表来确定目的安全区域,报文将要从哪个接口出发,该接口所属的安全区域就是报文的目的安全区域。
2025-08-30 20:32:21
1491
原创 防护墙技术(一):NAT
源NAT转换的过程如图4-1所示,当私网用户访问Internet的报文到达防火墙时,防火墙将报文的源IP地址由私网地址转换为公网地址;NAT地址池是一个虚拟概念,他形象的把公网IP地址的集合比喻成一个放IP地址的池子或容器,当火枪进行地址转换时,从NAT地址池中选择一个公网IP地址,然后对私网IP地址进行转换(选择公网IP地址是随机的)源NAT技术对IP报文的源地址进行转换,将私有IP地址转换为公网IP地址,使大量私网用户可以利用少量公网IP地址访问internet,大大减少对公网IP的消耗。
2025-08-30 20:26:56
512
原创 BGP路由协议(四):工作原理
一般情况下,只有BGP选择路由的规则前8个属性完全相同,且AS_PATH属性也相同时,BGP路由之间才能相互等价,实现负载分担。在把这条路由通告给eBGP邻居之前,该路由器需要验证内部的可达性,首先检查该目标前缀,了解通往下一跳路由器的路由是否存在,然后检查IGP中是否存在该目标前缀。BGP同步是指BGP路由器必须与IGP同步,AS内的路由器不仅要通过BGP学习到此路由,而且要从IGP协议学习到该路由,AS内的路由器才会认为该路由在AS内完全可达。出现在BGP表中的路由,主要通过以下几种方式进入路由表。
2025-08-30 20:17:06
942
原创 BGP路由协议(三):路径属性
在BGP中部署路由汇总后,原来被BGP通告出去的明细路由将被汇总路由取代,而汇总路由可能已经丢失了明细路由所携带的路径信息,这对于网络而言是存在问题的,因为路径信息(尤其是AS_Path属性)的丢失有可能会带来包括路由环路在内的各种隐患。Cluster_List是路由经过RR反射时由RR添加的一个集群列表,记录路由经过的Clutser_ID,如果路由反射器在接收到路由的Cluster_List中发现了自己的集群ID,就说明存在环路,该路由将会被丢弃。该属性值的取值的范围是0~65535,该。
2025-08-30 14:44:59
967
原创 BGP路由协议(二):报文的类型和格式
当两台需建立对等体关系的BGP路由器完成配置后,双方需首先建立TCP连接,TCP连接建立完成后双方开始交换Open报文,如果一方认可对方发送过来的Open报文,则使用Keepalive报文进行回应。如果路由器收到了BGP对等体发来的、用于确认自己先前发送的Open报文的Keepalive报文,这意味着对方已经认可了自己所发的Open报文中的相关参数,则该路由器认为已经与对方完成了BGP对等体关系建立,此时双方便可以开始交互Update报文,而Update报文中便包含路由器所通告的路由信息。
2025-08-29 14:11:36
854
原创 BGP路由协议(一):基本概念
BGP-4 RFC1771 1994年BGP-4 RFC4271 2006年AS Autonomous System 自治系统:由一个单一的机构或者组织所管理的一系列IP网络及其设备所构成的集合根据工作范围的不同,动态路由协议可以分两类:a. IGP Interior Gateway Protocol 内部网关协议ⅰ. RIPⅱ. OSPFⅲ. IS-ISb. EGP Exterior Gateway Protocol 外部网关协议ⅰ. BGP。
2025-08-28 20:52:05
1042
原创 路由基础(三):静态路由、动态路由、默认路由
默认路由的优先级是最低的,只有当路由器没有发现匹配报文目的IP的任何路由之后,才会使用默认路由转发数据。静态路由:管理员使用手工方式为路由器添加路由。基于协议算法不同,可以将动态路由协议分为两类。
2025-08-27 20:02:20
302
原创 路由基础(二):路由表和FIB表
路由:当一台路由器收到一个IP报文时,它会在自己的路由表(Routing Table)中执行路由查询,寻找匹配该报文的目的IP地址的路由条目(或者说路由表项),如果找到匹配的路由条目,路由器便按照该条目所指示的出接口及下一跳IP地址转发该报文;如果没有任何路由条目匹配该目的IP地址,则意味着路由器没有相关路由信息可用于指导报文转发,因此该报文将会被丢弃,上述行为就是路由。
2025-08-27 19:56:55
343
原创 OSPF协议(四)
NSSA禁止来自Area0的Type-5 LSA进入,这使得该区域内泛洪的LSA在一定程度上减少了,当然,这也有助于减小NSSA中路由器的路由表规模,从而减小设备负担,而ABR为了让NSSA内的路由器能通过骨干区域访问被过滤掉的Type-5 LSA所描述的外部路由,会向NSSA中发布一条默认路由(使用Type-7 LSA描述)对于Router LSA而言,LSA头部中的“链路状态类型”字段的值为1,“链路状态ID”字段的值是产生这个Type-1 LSA的路由器的Router-ID。
2025-08-24 21:19:20
1188
原创 OSPF协议(三)
OSPF的区域ID是一个32bit的非负整数,按点分十进制的形式(与IPv4地址的格式一样)呈现,例如Area0.0.0.1。Virtual Link是一种逻辑的链路,并非一条真实的链路,您可以将它理解为骨干区域的一个延伸,通过搭建一条Virtual Link,可以将原本没有与骨干区域直接相连的区域和后者连接起来。OSPF要求域中的所有非骨干区域(区域ID不为0的区域)都必须与Area0相连。OSPF的每一个区域都有一个编号,不同的编号表示不同的区域,这个区域编号也被称为区域ID(Area-ID)
2025-08-24 19:32:29
291
原创 OSPF协议(二)
LSA Headers LSA头部列表 OSPF通过LSA头对收到的完整LSA做确认,一份LSAck可以对多份LSU中的LSA做确认。
2025-08-24 16:49:45
816
原创 OSPF协议(一)
但这只是一个开头,一系列的报文交互和邻居状态的切换会在接下来的过程中继续发生,两台路由器会开始交互空的DD报文协商Master/Slave,再交互包含LSA头部的DD报文以便描述自己的LSDB,然后通过LSR及LSU报文交互双方的LSA。考虑一种最简单的网络拓扑:两台路由器通过网线直连,在双方互联的接口上激活OSPF,路由器的接口激活OSPF后开始发送及侦听Hello报文,在通过Hello报文发现彼此并确认双向通讯后,这两者便形成了。关于OSPF,有两个概念需要特别说明:邻居关系和邻接关系。
2025-08-24 15:14:55
1318
原创 STP协议
STP和RSTP中用到了Hello、Forward Delay、Max Age这三个计时器。{根桥ID,累计根路径开销,发送者BID,发送端口ID}STP是一个用于局域网中消除环路的协议。
2025-08-24 14:34:06
496
原创 VLAN的概念
当多台主机相连接到同一个交换机时,他们可以直接进行通信(需配置相同网段的IP地址),而无需借助路由器设备,这种通信行为被称为二层通信。IEEE 802.1Q标准定义了VLAN,使得VLAN能够跨交换机实现,802.1Q标准也常被称为Dot1Q。:它能够将一个物理的LAN在逻辑上划分成多个广播域。:指的是一个广播数据所能达到的范围。
2025-08-23 16:59:53
162
原创 二层交换基础
目前的网络设备都可以兼容这两种格式的帧,但 Ethernet II 格式的帧使用得更加广泛些。通常,承载了某些特殊协议信息的以太帧才使用IEEE 802.3格式,而绝大部分的以太帧使用的都是Ethernet II格式。MAC地址,长度为48bit,其中前24位为OUI(Organizationally-Unique Identifier),表示制造商,后24位由制造商自己确定。局域网指的是在一个局部的地理范围内,将个人计算机、服务器、网络设备等各种电子设备连接起来的通信网络。
2025-08-23 16:29:35
287
原创 监控夜莺-categraf
categraf是一个监控采集agent,采用的ALL-in-one的设计,不但支持指标采集,也希望支持日志和调用链路的数据采集categraf的github地址:https://github.com/flashcatcloud/categraf。
2023-04-20 22:00:41
520
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人