删除所有非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 /...
Docker/Containerd/Harbor 配置代理
记录一下 Docker Daemon / Containerd 配置代理的步骤,尽管能用的时候不太多。 Update - 2023-07-10 Add Harbor. Docker创建文件12]$ mkdir -pv /etc/systemd/system/docker.service.d]$ touch /etc/systemd/system/docker.service.d/proxy.conf 写入内容1234[Service]Environment="HTTP_PROXY=socks5://<-->:<-->/"Environment="HTTPS_PROXY=socks5://<-->:<-->/"Environment="NO_PROXY=localhost,127.0.0.1" 重启DockerDaemon1]$ sudo systemctl daemon-reload && sudo systemctl restart dock...
完全隔离CPU的方法
完全隔离CPU, 并排空CPU所有的进程,分配指定的任务到CPU上。 当前的情况下, 我有CPU 0 - 3, 我希望隔离出CPU3 来进行指定的任务运行(方法是传递内核参数并重启) 123456vim /etc/default/grubGRUB_CMDLINE_LINUX='................isolcpu=3 nohz_full=3'grub2-mkconfig -o /boot/grub2/grub.cfgsync && systemctl reboot 重启之后,CPU3 就已经从CFS的调度列表上面拿掉了, 可以通过如下的参数证明。 12345# 查看设置是否已经正确的生效, 分离的CPU会表示为序号, 一般是: 0-2 , 3 。 这两种表示方式。cat /sys/devices/system/cpu/isolated3cat /sys/devices/system/cpu/nohz_full3 关于nohz_full这个参数, 需要编译内核的时候就启用这个功能。 1234# 需要启用的参数如下:CON...
Cilium 踩坑总结
测试环境 KVM - hayden@HaydenArchDesktop ~> virsh version Compiled against library: libvirt 8.6.0 Using library: libvirt 8.6.0 Using API: QEMU 8.6.0 Running hypervisor: QEMU 7.0.0 VM OS: root@fedora ~# cat /etc/os-release NAME=”Fedora Linux” VERSION=”36 (Thirty Six)” ID=fedora VERSION_ID=36 KVM 虚拟机两台 Master: hostname: fedora Node: hostname: knode1 kubernetes 版本: v1.24.3 kubernetes 安装方式: kubeadm docker版本: docker://20.10.17 NOTE: (尝试使用Co...
如何配置kubelet的节点自动回收资源
配置Node节点按照磁盘阈值回收空间 https://aws.amazon.com/cn/premiumsupport/knowledge-center/eks-worker-nodes-image-cache/ 修改Kubelet参数 Kubelet默认提供了GC的参数 12--image-gc-high-threshold 参数用于定义触发映像垃圾收集的磁盘使用百分比。默认值为 85%。--image-gc-low-threshold 参数用于定义映像垃圾收集尝试释放的磁盘使用百分比。默认值为 80%。 如果是自己管理的Node,最好的方式是直接配置kubelet命令行的参数,将上面的参数指定需要的阈值,然后重启kubelet即可。配置文件一般在 : /etc/kubernetes/kubelet.config12"imageGCHighThresholdPercent": 70, "imageGCLowThresholdPercent": 50,
由 CPU Steal Time 指标解释
观察vmstat命令输出的内容, 或者 top 命令 最上面输出的内容。可以看到Stealtime增加,大部分时候都是因为虚拟机的超卖, 总结来说st指示了vCPU的繁忙程度。 进程相关参数的说明https://www.kernel.org/doc/html/latest/scheduler/sched-stats.html schedstats also adds a new /proc//schedstat file to include some of the same information on a per-process level. There are three fields in this file correlating for that process to:1 time spent on the cpu2 time spent waiting on a runqueue3 # of timeslices run on this cpu 执行命令的输出结果12hayden@VM-16-6-ubuntu /p/372047...

