Network 相关知识不知道放那儿
Origin Version:https://datatracker.ietf.org/doc/html/rfc1180 Chinese Version:http://arthurchiao.art/blog/rfc1180-a-tcp-ip-tutorial-zh/ Tuning initcwnd for optimum Performance: https://www.cdnplanet.com/blog/tune-tcp-initcwnd-for-optimum-performance/ https://www.kawabangga.com/posts/5217 Other Linux Network Stack Explaination:https://www.clockblog.life/article/2023/7/4/44.html Linux内核网络https://www.clockblog.life/article/2023/7/4/44.html https://blogs.runsunway.com/
buffer/cache 无法释放
问题看到了一个案例, 这个案例的问题是: 为什么我的buffer/cache在echo 3 之后, 还是不能回收, 内存的占用很大。 命令如下: 12345678910111213root@ip-172-31-47-174 ~# free -h total used free shared buff/cache availableMem: 7.5Gi 1.3Gi 3.5Gi 2.1Gi 2.6Gi 3.8GiSwap: 0B 0B 0Broot@ip-172-31-47-174 ~# echo 3 > /proc/sys/vm/drop_cachesroot@ip-172-31-47-174 ~# free -h total used free shared buff/cache a...
RDS QPS 下降引发的网络流控分析记录
找到了另一个大佬对于TCP在linux内核的分析和测试: Link Topic 1 现象看到一个朋友的问题, 由 RDS QPS 下降引发的网络问题分析: 引用原文的问题描述: 这个问题一开始是在进行RDS实验的时候发现的。最初的情景是,多台机器同时对数据库进行select和insert操作时,会发现insert操作会造成select操作qps大幅下降,且insert操作结束之后select操作的qps仍不能回升。起初以为是RDS的问题,但是在复现问题、监控RDS之后发现RDS的压力其实很小。于是开始怀疑是网络的问题,在简化了场景和操作之后,发现能在过去做tcp实验的机器上复现,于是用这个更简单的场景进行问题复现和分析。 正确答案以及复盘: https://yishenggong.com/2023/05/06/why-does-my-network-speed-drop-cn/ 感谢大佬@plantegg 提供的这个案例和知识星球, tcp协议和 os 网络系统的分析我之前真是一句都说不出来, 这次确实完整的走了一遍网络的部分。 下面是我的一些思路和资料整理: 看完了问...
将ArchLinux作为节点加入EKS UnmanagedNode
添加一个自管理的节点添加这个自管理的节点是直接添加进入集群的, 并未使用EKS节点组的概念, 所以这个节点是可以被重启, 或者健康检查失败的, 并不具有任何的扩展或者弹性管理的能力。 创建集群,启动一个新的 EC2, 登录到已经启动的 EKS 优化 OS 内,准备复制一些脚本过来。 添加EC2的标签: kubernetes.io/cluster/clusterName owned 配置EC2的Instance Profile 控制台获取 Kubernetes APIServer的Endpoint URL 获取 apiserver b64 CA : cat ~/.kube/config 这个文件里面可以找到 ,或者是通过EKS的控制台上面, 找到 Base64 的 CA。 编辑 userdata, 或者 ssh 登录到ec2上面创建一个bash脚本用来调用 bootstrap.sh 12345678910mkdir ~/eks; touch ~/eks/start.sh---#!/bin/bashset -exB64_CLUSTER_CA=API_...
Linux OS 网络流量控制测试
内核参数的说明对于 TCP 来说,会遇到如下的几个参数。 如果我们需要查看一下当前 OS 内与 tcp 相关的 Kernel 参数, 命令如下: 1]$ sysctl -a | egrep "rmem|wmem|tcp_mem|adv_win|moderate" 其中主要需要关注的是: 12net.ipv4.tcp_rmem = 4096 131072 6291456net.ipv4.tcp_wmem = 4096 16384 4194304 这两个参数表示的是当前内核预留的 Socket Buffer, 单位是Bytes, 也是具体指 内存 的大小。具体的说明我找到 Kernel文档的说明如下: 123456789101112131415161718192021222324252627282930313233343536tcp_rmem - vector of 3 INTEGERs: min, default, max min: Minimal size of receive buffer used by TCP sockets. It is guar...
删除所有非Running状态的Pod
背景 如果所有的节点上面都有Taint, 然后这个没有Taint的节点磁盘满了, 会导致当前的节点上面留下许多状态不正常的Pod, 这些Pod大概率是停留在了Evicted状态, 或者是Completed, 甚至是 Unknown 。 这种状态的Pod Deployment默认的情况下不会自动回收, 所以需要人工操作一下。 Knowledge Source 处理方法记录一个命令来处理这个类型的Pod。 1kubectl delete pod --field-selector="status.phase==Failed" 测试方法 集群内两个节点, 其中一个节点Taint 1kubectl taint nodes ip-172-31-60-181.cn-north-1.compute.internal app=grafana:NoSchedule 启动30个Grafana 登录到节点上面, 创建一个巨大的文件, 触发DiskPressure。 1fallocate -l 72G ./large.file 等待节点的DiskPressure...
bpftrace 使用tracepoint 追踪 tcp 状态变化
入门教程大佬的博客, 入门教程: http://arthurchiao.art/blog/bpf-advanced-notes-1-zh/ 记录基础的bpftrace使用方法单行程序的使用方法 1[root@localhost-live ~]# bpftrace -e 'tracepoint:syscalls:sys_enter_execve { printf("%s %s\n", comm, str(args->filename));}' Tracepoint如何获取可用参数的解释1234567891011121314151617181920[root@localhost-live sys_enter_execve]# pwd/sys/kernel/tracing/events/syscalls/sys_enter_execve[root@localhost-live sys_enter_execve]# grep -ri .format:name: sys_enter_execveformat:ID: 742...
诗词收集
收集一些自己平时见到的诗句: Update 2018-12-24 邻人焉有许多鸡,乞丐何曾有二妻。当时尚有周天子,何事纷纷说魏齐。 算不尽芸芸众生微贱命,回头看五味杂陈奈何天。 何时杖策相随去,任性逍遥不学禅。 百无一用是情深,万般奈何为情困。 桃李春风一杯酒,江湖夜雨十年灯。 杀人放火金腰带,修桥补路无尸骸。 残雪凝辉冷画屏,落梅横笛已三更,更无人处月胧明。我是人间惆怅客,知君何事泪纵横,断肠声里忆平生。 纳兰性德《浣溪沙·残雪凝辉冷画屏》 曾经沧海难为水,除却巫山不是云。取次花丛懒回顾,半缘修道半缘君。 人生到处应何似,应似飞鸿踏雪泥。 山有木兮木有枝,心悦君兮君不知。 嫦娥应悔偷灵药,碧海青天夜夜心。 满堂花醉三千客,一剑霜寒十四州。 早岁读书无甚解,晚年省事有奇功。 车遥遥,马憧憧。君游东山东复东,安得奋飞逐西风。愿我如星君如月,夜夜流光相皎洁。月暂晦,星常明。留明待月复,三五共盈盈。 范成大《车遥遥篇》 一身诗意千寻瀑,万古流芳四月天。 未曾相逢先一笑,初会便已许平生。 三千年读史不过功名利禄,九万里悟道终归诗酒田园。 君埋泉下泥销骨,我寄人间雪满头。 伤心桥下春波...
制作一个可用的malloc image
写一个melloc的C程序123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960#include <stdio.h>#include <stdlib.h>#include <string.h> #include <signal.h>#include <unistd.h> #define SIGTERM_MSG "SIGTERM received.\n" void sig_term_handler(int signum, siginfo_t *info, void *ptr){ write(STDERR_FILENO, SIGTERM_MSG, sizeof(SIGTERM_MSG));} void catch_sigterm(){ static struct sigaction _sigact;...
Nginx性能调整(不一定对
Nginx 性能优化看了不少的文档和说明, 尝试调整一下Nginx,看看与默认的设置性能表现能有多大的差距,顺便记录一下步骤,不记录的话自己会忘记的。 Sysctl 参数12345678~]$ cat /etc/sysctl.d/99-hayden.cofnet.ipv4.tcp_wmem = 8192 4194304 8388608net.ipv4.tcp_rmem = 8192 4194304 8388608net.core.somaxconn = 262144net.core.default_qdisc=fqnet.ipv4.tcp_congestion_control=bbr Nginx Config123456789101112131415~]$ cat /etc/nginx/nginx.confuser nginx;worker_processes 1;worker_cpu_affinity 10;# error_log /var/log/nginx/error.log;pid /run/nginx.pid;# Load dynamic modules. See /...


