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...
Epoll vs select vs poll vs io_uring
select方式:使用fd_set结构体告诉内核同时监控那些文件句柄,使用逐个排查方式去检查是否有文件句柄就绪或者超时。该方式有以下缺点:文件句柄数量是有上限的,逐个检查吞吐量低,每次调用都要重复初始化fd_set。 poll方式:该方式主要解决了select方式的2个缺点,文件句柄上限问题(链表方式存储)以及重复初始化问题(不同字段标注关注事件和发生事件),但是逐个去检查文件句柄是否就绪的问题仍然没有解决。 epoll方式:该方式可以说是C10K问题的killer,他不去轮询监听所有文件句柄是否已经就绪。epoll只对发生变化的文件句柄感兴趣。其工作机制是,使用”事件”的就绪通知方式,通过epoll_ctl注册文件描述符fd,一旦该fd就绪,内核就会采用类似callback的回调机制来激活该fd, epoll_wait便可以收到通知, 并通知应用程序。而且epoll使用一个文件描述符管理多个描述符,将用户进程的文件描述符的事件存放到内核的一个事件表中, 这样数据只需要从内核缓存空间拷贝一次到用户进程地址空间。而且epoll是通过内核与用户空间共享内存方式来实现事件就绪消息传递的...
关于内核Config中的参数 CONFIG_NO_HZ
关于Tick, Tickless的研究。 https://www.kernel.org/doc/html/latest/timers/no_hz.html 这几个参数的最终意义都和 Jitter 相关, 设置的参数含义是 : CPU时钟中断的周期, 如果是 100HZ , 那么1s的时间内CPU会中断100次。目前最新的内核支持 NOHZ , 也就是在没有任务的时候处于节能的考虑不进行中断。当有需要运行的业务时还是会正常的触发CPU中断。NOHZ主要的功能时省电, 调整这个参数的意义就是让CPU处在合理的中断次数。过多的中断会导致相关的任务被打断。 git://git.kernel.org/pub/scm/linux/kernel/git/frederic/dynticks-testing.git
Nginx Performance Test
写在最前面, 这个问题还在研究中, 我目前还没有合适的模型用来研究这个问题, Pending…. Nginx 性能测试与压力计算使用al2023 + 默认的yum仓库软件版本, 具体信息记录如下: 按照下面的配置, 在Nginx上面发布一个目录, 其中放了一个Fedora镜像, 大小大约2.3GB, 固定Nginx处理请求的大小, 控制大部分的因素来尝试获取精确的结果。 OS Version 12345678910111213[root@ip-172-31-53-146 ~]# cat /etc/os-releaseNAME="Amazon Linux"VERSION="2023"ID="amzn"ID_LIKE="fedora"VERSION_ID="2023"PLATFORM_ID="platform:al2023"PRETTY_NAME="Amazon Linux 2023"ANSI_COLOR="0;33"C...
OOM行为
关于OOM行为的思考 以及Kswapd的动作和行为。http://evertrain.blogspot.com/2018/04/oom.html更详细的打分算法见源码 https://github.com/torvalds/linux/blob/master/mm/oom_kill.c 发生之后OOM killer会将kill的信息记录到系统日志/var/log/messages,检索相关信息就能匹配到是否触发。 1grep 'Out of memory' /var/log/messages 也可以通过dmesg 1dmesg -Tx | egrep -i 'killed process' 查看分数最高的进程1234567#!/bin/bashfor proc in $(find /proc -maxdepth 1 -regex '/proc/[0-9]+'); do printf "%2d %5d %s\n" \ "$(cat $pro...
Perf 命令的Performance分析
https://blog.gmem.cc/perf 一个非常详细的博客, 太强啦。 使用perf进行性能的简单输出12345678910111213141516root@ip-172-31-11-235:~|⇒ perf stat htop -d 1 Performance counter stats for 'htop -d 1': 181.764747 task-clock (msec) # 0.055 CPUs utilized 52 context-switches # 0.286 K/sec 0 cpu-migrations # 0.000 K/sec 320 page-faults # 0.002 M/sec <not supported> cycles <no...


