技术沉淀分享

Thinking will not overcome fear but action will.

df和du的区别

df和du的区别

写这篇文章的目的是: 可能有不少人都了解df和du不一致,可能是有deleted文件但fd还在的问题,但具体df和du是怎么统计磁盘分区大小的呢?你知道吗? 所以写下这篇文章,和大家一起分享下具体逻辑。 从一个简单的示例开始吧,我们使用/data0分区作为整篇文章的实验分区。 写入前,df查看/data0分区avial还有93G可用 现在在/data0分区下创建一个大小为1G的文...

网卡收包软中断下内核内存分配逻辑

网卡收包软中断下内核内存分配逻辑

这篇文章的背景是有次业务反馈服务丢包的问题,TX给出的分析报告是由于业务请求有微突发,导致网卡接收数据包之后分配内存失败,分配内存失败的原因是因为网卡收到数据包,通过软中断转成SKB,由于转SKB需要通过alloc_pages分配物理内存,但由于微突发(毫秒级别包量很大)的时候,物理内存不足,导致alloc_pages失败,内核抛出trace log。带着疑惑去查看内核代码。本文根据trac...

windows下vscode+go mod开发环境搭建

windows下vscode+go mod开发环境搭建

写这篇文章的根因是:1、公司没有购买JetBrains;2、最近破解JetBrains比较困难,尤其是获取激活码,猜测应该是国外公司对盗版打击力度变大,从而导致国内一些破解方式和获取激活码方式无效;3、给其他使用go开发的朋友们提供快速搭建指引,减少采坑耗时。 折腾了半天,实在没法,只能用vscode进行开发了。接下来就说下如何使用vscode进行go项目开发,主要是使用gomod方式。(...

muduo网络库架构

muduo网络库架构

很久之前剖析的muduo网络库https://github.com/chenshuo/muduo

linux内核协议栈之TCP四次挥手

linux内核协议栈之TCP四次挥手

上一篇剖析了TCP三次握手过程,这次看下TCP四次挥手过程,相关内核代码和TCP三次握手有重复地方,所以会粗略截图。 先看下tcp四次挥手抓包情况: 从抓包可以看出: 172...9首先向172...10发送FIN+ACK包(以下简称9和10) 1、9给10回一个FIN+ACK报文 2、10给9回一个ACK报文 3、10给9又回一个FIN+ACK报文 4、9给10回一个ACK...

linux内核协议栈之TCP三次握手

linux内核协议栈之TCP三次握手

搞IT开发和运维的基本上都知道TCP三次握手和四次挥手,但你知道TCP三次握手里每一次握手内核都做了什么事情吗?本文将带你从内核协议栈了解TCP三次握手的逻辑。 看这篇文章之前还是要先对linux系统调用有一定的了解,可参考之前的文章说一说linux的系统调用 客户端调用connect通过系统调用__x64_sys_connect arch/x86/entry/syscalls/sys...

说一说linux的crontab执行逻辑

说一说linux的crontab执行逻辑

很多时候都要使用到crontab定时执行任务,但你知道crontab到底是怎么执行的吗?接下来就给大家讲解一下crontab执行逻辑。 首先我们把源码clone下来。https://github.com/cronie-crond/cronie是crond的源码 首先我们找台机器,ps看下当前系统的cron进程信息 面有两个crond进程,其中pid=1118的父进程号是1,即syste...

linux内核端口分配策略

linux内核端口分配策略

TCP端口分配策略: 具体在什么时候、谁调用tcp_v4_connect?是在发起客户端发起connect的时候通过系统调用访问tcp_v4_connect的。具体系统调用可以参考我之前的文章—-说一说linux的系统调用 其中port_offset是个随机数,初始化为0,如果sk->inet_num为0,即没有分配端口号,则将port_offset分配一个随机数。分配随机数的...

linux下通过二进制搭建K8S集群

K8S搭建

本文使用三台机器作为搭建过程 角色 ip 主机名 Master+Node1 10...82 zy-k8s-01 Node2 10...91 ...

K8S源码剖析之statefulset

statefulset源码

在微服务盛行时代,不深入了解下K8S怎么行! 上一章我们已经通过二进制方法搭建出了一个K8S集群。本章将通过剖析statefulset controller源码,了解statefulset过程。【网上也有对statefulset的分析,不过都是别人的,自己分析一遍比较过瘾】 学习之前,先介绍下statefulset,statefulset是K8S其中一种控制器(controller),K...