CPU亲和性指定CPU绑定进程,此举可以减少上下文切换,隔离关键任务
比如内存密集型进程限制为一个或两个cpu,可以增加缓存命中的机会从而提升性能
cgroup+systemd设置现在systemd还没有集成cpuset工具
常规就是通过在service下设置CPUAffinity
也可以通过executepost中进行设置
123456[Service]CPUAffinity=0 2 # 绑定到核心 0 和 2(用空格分隔)# 或CPUAffinity=0-3 # 绑定到核心 0 到 3(连续范围)# 或CPUAffinity=0,2 ...
在Linux中,调度器根据分配给每个线程或进程的”调度策略”和”调度优先级”控制执行顺序。
基础概念静态优先级静态优先级是在新进程创建时设置的默认优先级,不能更改。使用”实时策略”的进程优先级的值在1(最低)到99(最高)之间,被称为”实时优先级”。调度程序在一个自平衡的二叉搜索树中维护一个可运行进程列表。要确定哪些进程下一个获得CPU时间,调度器查找具有最高静态优先级或实时优先级的进程。调度策略只确定具有相同静态优先级的进程在运行队列中的顺序。使用非实时策略的进程不使用静态优先级,静态优先级设置为0。
动态优先级当CPU不足时,进程优先级会被重置,因为优先级更高的进程会被优先调度。在此...
systemtapSystemTap 是一种动态追踪和分析工具,允许用户通过编写脚本实时监控内核及用户空间程序的运行状态,常用于性能调优、故障排查和内核行为分析
核心组件
SystemTap 工具链:包含 stap(脚本编译器)、staprun(内核模块加载器)等工具。
内核支持:依赖 kernel-devel、kernel-debuginfo 包(提供内核符号和调试信息)。
脚本库(Tapsets):预定义的探针和函数库,简化脚本编写(如 syscall.* 表示系统调用探针)。
工作流程
编写脚本:用户编写 .stp 脚本,定义探针和触发动作(如记录数据、统计计数)。
编译脚本:s...
perf收集系统性能Linux性能计数器(PCL)是一个基于内核的子系统,它为收集和分析性能数据提供了一个框架。在Red Hat Enterprise Linux 8中包含了PCL和PERF。
PERF是一个功能强大的分析基础设施,它提供了一套用户空间工具用来分析收集到的性能数据
perf stat12345678910111213141516171819202122yum install -y perfyum -y install kernel-debug# 查看当前可追踪的性能事件perf list# 追踪具体性能时间perf statperf stat dd if=/dev/zer...
Tuned 是 Linux 系统中的一个动态调优服务,能够根据系统负载和应用场景自动调整内核参数、硬件配置(如 CPU、磁盘、网络)和电源管理策略,以优化性能或节能。
也可以通过自定义调优配置文件的规则来满足需求
功能
描述
预定义调优策略
提供多种预设配置文件(Profiles),如 throughput-performance(高吞吐)、powersave(节能)。
动态适应负载
根据实时负载(如 CPU 使用率、磁盘 I/O)自动切换策略(需启用 dynamic tuning 模式)。
自定义调优规则
允许用户创建或修改配置文件,针对特定硬件或应用(如...
ulimitulimit实际上是一种已经快被淘汰的资源限制工具,因为仅用于一些传统业务的机器的调优,现在都上云了
机制:
进程级限制:ulimit 是传统的 Unix/Linux 资源限制工具,主要针对单个进程或用户会话(如 Shell 启动的进程)设置资源上限,例如文件描述符数量、CPU 时间、内存等。
局限性:其限制是“继承式”的,父进程的限制会传递给子进程,但无法对一组进程进行统一管理。
内核接口:通过 setrlimit 系统调用实现,属于内核的 RLIMIT_* 机制
局限性:
功能单一:ulimit 仅支持少数资源类型(如 nproc 进程数、nofile 文...
/proc文件系统/proc 是 Linux 系统中的一个特殊目录,被称为 虚拟文件系统(Virtual File System)。它不占用物理磁盘空间,而是由内核动态生成,用于提供 系统运行时信息 和 内核参数配置 的接口
动态系统信息:实时反映硬件状态(如 CPU、内存、设备)、进程状态、内核行为等。
内核参数调整:通过修改 /proc/sys 下的文件,动态调整内核行为(如网络、文件系统、内存管理)。
调试与监控:开发者和管理员可直接读取文件或工具(如 top、ps)间接使用 /proc 数据。
1234567891011121314151617(1) 系统...
dmesg查看内核消息
查看硬件引导信息
查看硬件驱动信息
排查硬件相关错误信息
12345678910111213141516171819202122232425262728293031323334353637383940414243使用方法:dmesgjournalctl -k建议使用journalctl -k默认持久化、直接显示时间,依赖于systemd和journalddmesg | grep -i "dma"[ 0.008423] ACPI: DMAR 0x0000000045B8C000 000088 (v02 LENOVO CB-01 00...
在k8s集群中,往往需要方便的拉取服务所需镜像,但镜像仓库账密铁铁是机密,肯定不能明文存储
那么如何将镜像仓库账号密码,以dockerconfigjson形式存储在Secret中,使服务可以使用imagePullSecrets的形式方便的进行引用呢?
创建Secret
12345678910111213141516171819202122232425262728kubectl create secret docker-registry <secret-name> \ --docker-server=<registry-url> \ --docker-usern...
故障现象:
修改了jenkins从节点numExecutors字段(并发构建数)后
节点从列表中消失,无法分配任务,并且访问{JENKINS_URL}/computer/{NODE_NAME}/config.xml也报404,无法再通过api对节点进行操作
以下是引发该问题的脚本
123456789101112131415161718192021222324def adjust_executors(target_num): """调整节点并发执行器数量""" config_ur...