查询与进程调度(CFS)相关信息
目录
查询与进程相关的调度信息
查看CFS调度信息
CPU相关的信息
CFS就绪队列的总运行时间
实时队列与deadline调度的相关信息
所有进程相关的信息
查询与进程相关的调度信息
进程的nice值,优先级,调度策略,vruntime等信息。在proc目录下,以下是查询147号进程的调度信息。
cat /proc/3675/sched
update-notifier (3675, #threads: 4) //进程名称,ID:3675 以及线程数4
-------------------------------------------------------------------
se.exec_start : 26628458.370080 //进程总执行时间
se.vruntime : 89527.417357 //虚拟运行时间
se.sum_exec_runtime : 142.850903 //总运行时间
se.nr_migrations : 9 //发生9次迁移,
nr_switches : 727 //727次上下文切换
nr_voluntary_switches : 648 //主动调度次数
nr_involuntary_switches : 79 //被抢占次数
se.load.weight : 1048576//进程权重
se.runnable_weight : 1048576//
se.avg.load_sum : 58
se.avg.runnable_load_sum : 58
se.avg.util_sum : 59392
se.avg.load_avg : 0//量化负载
se.avg.runnable_load_avg : 0
se.avg.util_avg : 0 //进程的量化能力
se.avg.last_update_time : 26628458370048
se.avg.util_est.ewma : 9
se.avg.util_est.enqueued : 0
policy : 0//调度策略 SCHED_NORMAL
prio : 120//优先级
clock-delta : 14
mm->numa_scan_seq : 0
numa_pages_migrated : 0
numa_preferred_nid : -1
total_numa_faults : 0
current_node=0, numa_group_id=0
numa_faults node=0 task_private=0 task_shared=0 group_private=0 group_shared=0
root@ubuntu:/home/wy/release#
调度相关的统计 需要配置CONFIG_SCHEDSTATS
先执行 echo 1 > /proc/sys/kernel/sched_schedstats
再次查看,多出来好多statistics信息
cat /proc/3675/sched
update-notifier (3675, #threads: 4)
-------------------------------------------------------------------
se.exec_start : 26666000.266305
se.vruntime : 48799.679246
se.sum_exec_runtime : 144.183408
se.nr_migrations : 11se.statistics.sum_sleep_runtime : 0.000000
se.statistics.wait_start : 0.000000
se.statistics.sleep_start : 0.000000
se.statistics.block_start : 0.000000
se.statistics.sleep_max : 0.000000
se.statistics.block_max : 0.000000
se.statistics.exec_max : 0.000000
se.statistics.slice_max : 0.000000
se.statistics.wait_max : 0.000000
se.statistics.wait_sum : 0.000000
se.statistics.wait_count : 0
se.statistics.iowait_sum : 0.000000
se.statistics.iowait_count : 0
se.statistics.nr_migrations_cold : 0
se.statistics.nr_failed_migrations_affine : 0
se.statistics.nr_failed_migrations_running : 0
se.statistics.nr_failed_migrations_hot : 0
se.statistics.nr_forced_migrations : 0
se.statistics.nr_wakeups : 0
se.statistics.nr_wakeups_sync : 0
se.statistics.nr_wakeups_migrate : 0
se.statistics.nr_wakeups_local : 0
se.statistics.nr_wakeups_remote : 0
se.statistics.nr_wakeups_affine : 0
se.statistics.nr_wakeups_affine_attempts : 0
se.statistics.nr_wakeups_passive : 0
se.statistics.nr_wakeups_idle : 0
avg_atom : 0.194579
avg_per_cpu : 13.107582
nr_switches : 741
nr_voluntary_switches : 662
nr_involuntary_switches : 79
se.load.weight : 1048576
se.runnable_weight : 1048576
se.avg.load_sum : 98
se.avg.runnable_load_sum : 98
se.avg.util_sum : 100391
se.avg.load_avg : 0
se.avg.runnable_load_avg : 0
se.avg.util_avg : 0
se.avg.last_update_time : 26666000266240
se.avg.util_est.ewma : 8
se.avg.util_est.enqueued : 1
policy : 0
prio : 120
clock-delta : 15
mm->numa_scan_seq : 0
numa_pages_migrated : 0
numa_preferred_nid : -1
total_numa_faults : 0
current_node=0, numa_group_id=0
numa_faults node=0 task_private=0 task_shared=0 group_private=0 group_shared=0
查看CFS调度信息
Sched Debug Version: v0.11, 5.4.0-26-generic #30-Ubuntu
ktime : 2270227.937775
sched_clk : 2270675.741916
cpu_clk : 2270509.286495
jiffies : 4295459310
sched_clock_stable() : 1sysctl_sched.sysctl_sched_latency : 18.000000.sysctl_sched_min_granularity : 2.250000.sysctl_sched_wakeup_granularity : 3.000000.sysctl_sched_child_runs_first : 0.sysctl_sched_features : 2059067.sysctl_sched_tunable_scaling : 1 (logarithmic)
- 和调度相关的sysctl_sched的值
- 调度周期sysctl_sched_latency为 18ms.
- 调度最小粒度为2.25ms
- 唤醒最小粒度 3ms
- fork调用完成之后,禁止子进程先运行
CPU相关的信息
cpu#0, 2904.003 MHz.nr_running : 1.nr_switches : 360530.nr_load_updates : 0.nr_uninterruptible : 3.next_balance : 4295.459320.curr->pid : 11123.clock : 2270510.005225.clock_task : 2270510.005225.avg_idle : 1000000.max_idle_balance_cost : 500000
- nr_running 有1个进程在就绪队列里
- nr_switches 就绪队列发生进程切换的次数
- nr_load_updates 就绪队列里的cpu_load[]平滑负载更新的次数。
- next_balance 下一次做负载均衡的时间。
- curr->pid,正在运行的PID
- clock和clock_task:当前系统采样的时刻。
CFS就绪队列的总运行时间
cfs_rq[0]:/system.slice/containerd.service.exec_clock : 0.000000.MIN_vruntime : 0.000001.min_vruntime : 820.991457.max_vruntime : 0.000001.spread : 0.000000.spread0 : -127322.729964.nr_spread_over : 0.nr_running : 0.load : 0.runnable_weight : 0.load_avg : 0.runnable_load_avg : 0.util_avg : 0.util_est_enqueued : 0.removed.load_avg : 0.removed.util_avg : 0.removed.runnable_sum : 0.tg_load_avg_contrib : 0.tg_load_avg : 0.throttled : 0.throttle_count : 0.se->exec_start : 2270382.435692.se->vruntime : 57637.719433.se->sum_exec_runtime : 1692.348700.se->load.weight : 1048576.se->runnable_weight : 2.se->avg.load_avg : 0
- exec_clock :CFS就绪队列的总运行时间;
- min_vruntime:表示CFS就绪队列的红黑树中最左边节点的 vruntime;
- max_vrunrime:CFS就绪队列的红黑树中最右边节点的vruntime;
- nr_running :CFS就绪队列中的进程数
- load:CFS就绪队列的总权重
- runnable_weight:CFS就绪队列中可运行状态的进程总权重
- load_avg:调度队列中的量化负载,这是CFS就绪队列中所有进程的量化负载之和
- runnable_load_avg:CFS就绪队列里所有可运行状态下的进程总量化负载
- util_avg:CFS就绪队列当前的量化计算能力
实时队列与deadline调度的相关信息
rt_rq[0]:/system.slice/cups-browsed.service.rt_nr_running : 0.rt_nr_migratory : 0.rt_throttled : 0.rt_time : 0.000000.rt_runtime : 0.000000dl_rq[0]:.dl_nr_running : 0.dl_nr_migratory : 0.dl_bw->bw : 996147.dl_bw->total_bw : 0
所有进程相关的信息
runnable tasks:S task PID tree-key switches prio wait-time sum-exec sum-sleep
-----------------------------------------------------------------------------------------------------------S kthreadd 2 127693.921719 338 120 0.000000 61.877558 0.000000 0 0 /I rcu_gp 3 14.125023 2 100 0.000000 0.003748 0.000000 0 0 /I rcu_par_gp 4 16.125400 2 100 0.000000 0.002300 0.000000 0 0 /I kworker/0:0H 6 3901.743231 7 100 0.000000 0.123376 0.000000 0 0 /I mm_percpu_wq 9 21.695937 2 100 0.000000 0.003137 0.000000 0 0 /S ksoftirqd/0 10 127884.405645 1528 120 0.000000 55.672180 0.000000 0 0 /S migration/0 12 0.000000 744 0 0.000000 28.640041 0.000000 0 0 /S idle_inject/0 13 0.000000 3 49 0.000000 0.005038 0.000000 0 0 /S cpuhp/0 14 9840.872379 10 120 0.000000 0.317368 0.000000 0 0 /I kthrotld 154 2441.635038 2 100 0.000000 0.033174 0.000000 0 0 /S irq/26-pciehp 157 0.000000 3 49 0.000000 0.215568 0.000000 0 0 /S irq/30-pciehp 161 0.000000 3 49 0.000000 0.140429 0.000000 0 0 /S irq/34-pciehp 165 0.000000 3 49 0.000000 0.190453 0.000000 0 0 /S irq/38-pciehp 169 0.000000 3 49 0.000000 0.139489 0.000000 0 0 /S irq/42-pciehp 173 0.000000 3 49 0.000000 0.139024 0.000000 0 0 /S irq/46-pciehp 177 0.000000 3 49 0.000000 0.177426 0.000000 0 0 /S irq/50-pciehp 181 0.000000 3 49 0.000000 0.086663 0.000000 0 0 /S irq/54-pciehp 185 0.000000 3 49 0.000000 0.122572 0.000000 0 0 /I scsi_tmf_1 192 2450.674661 2 100 0.000000 0.040843 0.000000 0 0 /Ivfio-irqfd-clea 194 2450.675783 2 100 0.000000 0.078805 0.000000 0 0 /Icharger_manager 227 2589.239305 2 100 0.000000 0.035306 0.000000 0 0 /I mpt/0 297 3102.875515 2 100 0.000000 0.134915 0.000000 0 0 /Ikworker/u256:28 365 128003.470404 5326 120 0.000000 333.547859 0.000000 0 0 /I kworker/0:1H 377 127827.693809 1669 100 0.000000 242.858239 0.000000 0 0 /Svmware-vmblock- 492 1.857542 5 120 0.000000 0.497505 0.000000 0 0 /system.slice/run-vmblock\x2dfuse.mountS loop6 494 7943.387963 84 100 0.000000 21.071145 0.000000 0 0 /S loop8 497 22417.738300 78 100 0.000000 16.332343 0.000000 0 0 /
相关文章:
查询与进程调度(CFS)相关信息
目录 查询与进程相关的调度信息 查看CFS调度信息 CPU相关的信息 CFS就绪队列的总运行时间 实时队列与deadline调度的相关信息 所有进程相关的信息 查询与进程相关的调度信息 进程的nice值,优先级,调度策略,vruntime等信息。在proc目录下…...
07对MVC的理解
MVC是一种设计模式,用于将应用程序的不同方面分离开来,以便更容易地管理和维护应用程序。MVC代表模型-视图-控制器,它将应用程序分为三个主要组件:模型(Model):负责管理应用程序的数据和业务逻辑…...

WebSocket与Socket、TCP、HTTP的关系
目录:1、名词解析;2、WebSocket简介与原理;3、WebSocket和Http的关系和异同点;4、WebSocket与Socket的区别;5、Socket和TCP/IP;6、一个应用程序的通信链路;1、基础名词解析:…...

音频基础知识简述 esp-sr 上手指南
此篇博客先对音频基础知识进行简要叙述,然后帮助读者入门 esp-sr SDK。 1 音频的基本概念 1.1 声音的本质 声音的本质是波在介质中的传播现象,声波的本质是一种波,是一种物理量。 两者不一样,声音是一种抽象的,是声…...

Flex弹性布局一文通【最全Flex教学】
文章目录一.Flex布局1.1 传统布局和flex布局1.1.1 传统布局1.1.2 flex弹性布局1.2 flex初步体验1.3 布局原理二.常见Flex属性2.1 常见父项属性2.2 flex-direction主轴的方向2.3 justify-content设置主轴上的子元素排列方式2.4 设置子元素是否flex-wrap换行2.5 align-itmes设置侧…...

Navicat使用教程
Navicat:一个可以对别人的数据库进行操作的软件(需要与如mysql等数据库配套使用) 1. 下载mysql MySQL :: Download MySQL Community Server (Archived Versions) 下载上面那个版本 下载下来是个压缩包,解压 2.配置mysql (1)在…...

35岁测试人该何去何从?10年工作经验的我,只不过是一年的工作经验用了10年......
如果到了这个年龄,还是初级测试,或者只会一些简单的自动化测试,那么真的是不好干了。 35的年龄,企业对员工是有另一层面的考量。 简单来说,就是年龄上去了,能力也要上去,要么是技术专家&#…...

SpringBoot 项目中集成 Prometheus 和 Grafana
项目上线后,除了能保障正常运行以外,也需要服务运行的各个指标进行监控,例如 服务器CPU、内存使用占比,Full GC 执行时间等,针对一些指标出现异常,可以加入一些报警机制能及时反馈给开发运维。这样…...
红队APT——反朔源流量加密CSMSF证书指纹C2项目CDN域前置
目录 0x01 背景交代 0x02 常见红蓝对抗中红队面临问题 0x03 蓝队发现处置情况...

Linux环境下实现并详细分析c/cpp线程池(附源码)
一、线程池原理 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 线程池是一种多线程处理形式,处理过程中将任务添加到…...

移动web(三)
her~~llo,我是你们的好朋友Lyle,是名梦想成为计算机大佬的男人! 博客是为了记录自我的学习历程,加强记忆方便复习,如有不足之处还望多多包涵!非常欢迎大家的批评指正。 媒体查询 目标:能够根据…...

macbook怎么运行exe文件 mac打开exe文件的三大方法
exe文件是Windows系统的可执行文件,虽然Mac系统上无法直接打开exe文件,但是你可以在Mac电脑上安装双系统或者虚拟机来实现mac电脑上运行exe文件。除了这两种方法之外,你还可以在Mac电脑上使用类虚拟机软件打开exe文件,这三种方法各…...
GoldenGate(OGG)高可用XAG部署
前言: 本文档主要描述通过Oracle Grid Infrastructure Agents (XAG)基于Oracle RAC实现GoldenGate(OGG)软件高可用的实施操作 环境信息: 源端 目标端 节点一IP 节点二IP 192.168.1.84 192.168.1.86 节点一IP 节点二IP 192.168.1.200 192.168.1.210 VIP 192.…...

如何使用Docker容器部署O2OA(翱途)开发平台与OnlyOffice的集成版本?
O2OA(翱途)开发平台[下称O2OA平台或者O2OA]默认可以和OnlyOffice进行集成来实现在线文档编辑以及流程集成。开发者可以直接安装O2OA官网的OnlyOfficeO2Server的Docker版本用于体验。本文将详细介绍如何安装O2OA OnlyOffice的Docker版本。OnlyOffice Docs Sever可以单独安装,O2…...

springboot复习(黑马)(持续更新)
学习目标基于SpringBoot框架的程序开发步骤熟练使用SpringBoot配置信息修改服务器配置基于SpringBoot的完成SSM整合项目开发一、SpringBoot简介1. 入门案例问题导入SpringMVC的HelloWord程序大家还记得吗?SpringBoot是由Pivotal团队提供的全新框架,其设计…...

K_A16_001 基于STM32等单片机驱动HX711称重模块 串口与OLED0.96双显示
K_A16_001 基于STM32等单片机驱动HX711称重模块 串口与OLED0.96双显示一、资源说明二、基本参数参数引脚说明三、驱动说明对应程序:四、部分代码说明1、接线引脚定义1.1、STC89C52RCHX711称重模块1.2、STM32F103C8T6HX711称重模块五、基础知识学习与相关资料下载六、视频效果展…...

单例模式之饿汉式
目录 1 单例模式的程序结构 2 饿汉式单例模式的实现 3 饿汉式线程安全 4 防止反射破坏单例 5 总结 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。所谓单例就是在系统中只有一个该类的实例,并且提供一个访问该实例的全局…...

软件测试培训三个月,找到工作了11K,面试总结分享给大家
功能方面:问的最多的就是测试流程,测试计划包含哪些内容,公司人员配置,有bug开发认为不是 bug怎么处理,怎样才算是好的用例,测试用例设计方法(等价类,边界值等概念方法)&…...

Hbase备份与恢复工具Snapshot的基本概念与工作原理
数据库都有相对完善的备份与恢复功能。备份与恢复功能是数据库在数据意外丢失、损坏下的最后一根救命稻草。数据库定期备份、定期演练恢复是当下很多重要业务都在慢慢接受的最佳实践,也是数据库管理者推荐的一种管理规范。HBase数据库最核心的备份与恢复工具——Sna…...

RTOS中事件集的实现原理以及实用应用
事件集的原理 RTOS中事件集的实现原理是通过位掩码来实现的。事件集是一种用于在任务之间传递信号的机制。在RTOS中,事件集通常是一个32位的二进制位向量。每个位都代表一个特定的事件,例如信号、标志、定时器等。 当一个任务等待一个或多个事件时&…...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...

边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...

LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...

Linux部署私有文件管理系统MinIO
最近需要用到一个文件管理服务,但是又不想花钱,所以就想着自己搭建一个,刚好我们用的一个开源框架已经集成了MinIO,所以就选了这个 我这边对文件服务性能要求不是太高,单机版就可以 安装非常简单,几个命令就…...
绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化
iOS 应用的发布流程一直是开发链路中最“苹果味”的环节:强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说,这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发(例如 Flutter、React Na…...
webpack面试题
面试题:webpack介绍和简单使用 一、webpack(模块化打包工具)1. webpack是把项目当作一个整体,通过给定的一个主文件,webpack将从这个主文件开始找到你项目当中的所有依赖文件,使用loaders来处理它们&#x…...