1. 前言:容器技术的架构分层 容器管控客户端 例如 kubectl,docker cli 容器管控服务端 例如 k8s 的管控面(含 kubelet),dockerd 上层(High-Level)容器运行时 负责管理容器的完整生命周期、镜像管理、调用底层运行时来创建和运行容器 支持一些 web API 、容器网络管理等高级功能 可以遵循 CRI,…
1. 术语 cgroup : A cgroup is a collection of processes that are bound to a set of limits or parameters defined via the cgroup filesystem. subsystem: 用于限制 cgroup 中进程的资源和行为,例如控制 C…
内核中的两个存放连接信息的队列。存放的连接元数据,四元组、MSS、window scale 等。 其用途简单来说: 收到 SYN 以后放进 SYN queue(半连接队列) 收到 ACK 以后放进 Accept Queue(全连接队列) 用户进程调用 accept() 以后,从 Accept Queue 中取出 1. SYN Queue 溢出时行为…
1. .service 文件 主要分为三个部分 [Unit] 服务的元信息(描述、依赖关系等)。 [Service] 服务的运行参数与生命周期 [Install] 服务的安装目标(说人话:在什么情况下启动,命令行 or GUI) 1.1. 案例 [Unit] Description=frp auto start After=network.targ…
1. brk/sbrk syscall 要介绍 brk,需要先引入 program break 这一概念。它可以直接理解为是虚存中的一个指针,指向堆的终点。进程初始化时,由于堆大小为 0,故 program break 直接指向 .bss 段的终点。 brk/sbrk syscall 的作用就是移动 program break 的位置。如果向高地址…
1. ipvsadm LVS 的管理命令,详见 man 2. syslog 在路径 /var/log 下。 Debian 系: syslog ker.log RedHat 系: messages
1. TCP_NODELAY 和 TCP_QUICKACK 1.1. Nagle's Algorithm 现代的 Linux kernel 的网络协议栈中默认启用的算法,也是粘包产生的原因之一。 根据算法文档,原版的 Nagle 算法可以简要表达为: If a TCP has less than a full-sized packet to tra…
1. +trace 不带有 +trace 的 dig 则是直接向 local dns 服务器发起查询。 带有 +trace 的 dig 命令是走的迭代查询,即先获取根 dns 服务器地址,然后向其发起查询获取对应的顶级域名 dns 服务器地址,如此循环下去直到最终查到结果。 举个实测对 cococat.top 进行查询的例子: dig 向 loca…
1. 排序+统计 sort | uniq -c 注意 uniq -c 只能统计临近的重复行,因此需要 sort 2. grep -v 排除 -E 正则 3. awk 3.1 NF 与循环 NF 是 awk 语法内置变量,代表 field 的个数。 可以配合循环使用,例如: echo "a bb ccc" | awk '…
1. 引子 今天在工作中用 ldd 检查 tengine 的可执行文件时,出于好奇看了一下里面涉及的 ld-linux-x86-64.so.2 动态链接库,然后查到了这样一个神奇的问答: https://unix.stackexchange.com/questions/400621/what-is-lib64-ld-linux-x86-64-so-…