DeathWhispers

25 张图,一万字,拆解 Linux 网络包发送过程

25 张图,一万字,拆解 Linux 网络包发送过程 原创张彦飞allen开发内功修炼2021-05-12 08:28 收录于话题#开发内功修炼之网络篇30个 大家好,我是飞哥! 半年前我以源码的方式描述了网络包的接收过程。之后不断有粉丝提醒我还没聊发送过程呢。好,安排! 在开始今天的文章之前,我先来请大家思考几个小问题。 问1:我们在查看内核发送数据消耗的 CPU 时,是...

SocketIO通信

SocketIO通信 传统BIO编程 网络编程的基本模型是C/S模型,也就是两个进程直接进行相互通信,其中服务端提供配置信息(绑定的IP地址和监听端口), 客户端通过连接操作向服务端监听的地址发起连接请求,通过三次握手建立连接,如果连接成功,则双方即可以进行通信 服务器端在accpet()处阻塞,每有一个新的客户端接入时,就会new 一个 线程 三次握手和四次挥手:http://b...

MySQL 一键巡检脚本!再也不用自己梳理了

MySQL 运维很关键!了解数据库基本配置和性能状态,是确保其稳定运行的重要环节。深入知晓 MySQL 配置项、连接数、Binlog、GTID、InnoDB 等关键参数,能更好掌握运行情况,提前发现潜在问题。 本文介绍用一系列 SQL 查询语句快速获取 MySQL 基本配置、连接数、Binlog 和 GTID 配置以及 InnoDB 配置信息和监控指标。还提供简便脚本,一键获取所有信息,为...

MySQL 的锁机制

锁分类 从性能上分为乐观锁(用版本对比来实现)和悲观锁对数据库操作类型分为读锁和写锁(都属于悲观锁) 读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会相互影响写锁(排他锁):当前写操作没有完成之前,它会阻断其他写锁和读锁从对数据操作的粒度分为表锁和行锁 表锁 每次操作锁住整张表。开销小,加锁快;不会出现死锁;锁定粒度大,发生冲突的概率最高,并发度最低 间隙锁 但我们使...