searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

性能排查-进程上下文切换

2024-11-27 09:37:37
1
0
  • 查看上下文切换
    A context switch (also sometimes referred to as a process switch or a task switch) is the switching of the CPU (central processing unit) from one process or thread to another.
    • 引起上下文切换原因
      • 当前任务的时间片用完之后,系统CPU正常调度下一个任务;
      • 当前任务碰到IO阻塞,调度线程将挂起此任务,继续下一个任务;
      • 多个任务抢占锁资源,当前任务没有抢到,被调度器挂起,继续下一个任务;
      • 用户代码挂起当前任务,让出CPU时间;
      • 硬件中断;
    • LMbench 是带宽(读取缓存文件、内存拷贝、读写内存、管道等)和反应时间(上下文切换、网路、进程创建等)的评测工具;
    • micro-benchmark contextswitch 可以测试不同的CPU在最少多少ns可以进行一次上下文件切换,再转化为秒,我们可以确认该处理器每可以进行的上下文件切换数 ,该工具的使用可以参看tsuna的blog。
    • sar -w ,这个只是能看出主机上总的上下文件切换的情况
      • proc/s Total number of tasks created per second.
      • cswch/s Total number of context switches per second.
    • pidstat -w 每个进程的context switching情况
    • pidstat -wt 细分到每个threads
    • grep ctxt /proc/$pid/status
      • voluntary_ctxt_switches: 41 #自愿的上下文切换
      • nonvoluntary_ctxt_switches: 16 #非自愿的上下文切换
      • cswch/s: 每秒任务主动(自愿的)切换上下文的次数,当某一任务处于阻塞等待时,将主动让出自己的CPU资源。
      • nvcswch/s: 每秒任务被动(不自愿的)切换上下文的次数,CPU分配给某一任务的时间片已经用完,因此将强迫该进程让出CPU的执行权。
    • cat /proc/stat|grep ctxt
      
      
0条评论
0 / 1000
lll
4文章数
0粉丝数
lll
4 文章 | 0 粉丝
原创

性能排查-进程上下文切换

2024-11-27 09:37:37
1
0
  • 查看上下文切换
    A context switch (also sometimes referred to as a process switch or a task switch) is the switching of the CPU (central processing unit) from one process or thread to another.
    • 引起上下文切换原因
      • 当前任务的时间片用完之后,系统CPU正常调度下一个任务;
      • 当前任务碰到IO阻塞,调度线程将挂起此任务,继续下一个任务;
      • 多个任务抢占锁资源,当前任务没有抢到,被调度器挂起,继续下一个任务;
      • 用户代码挂起当前任务,让出CPU时间;
      • 硬件中断;
    • LMbench 是带宽(读取缓存文件、内存拷贝、读写内存、管道等)和反应时间(上下文切换、网路、进程创建等)的评测工具;
    • micro-benchmark contextswitch 可以测试不同的CPU在最少多少ns可以进行一次上下文件切换,再转化为秒,我们可以确认该处理器每可以进行的上下文件切换数 ,该工具的使用可以参看tsuna的blog。
    • sar -w ,这个只是能看出主机上总的上下文件切换的情况
      • proc/s Total number of tasks created per second.
      • cswch/s Total number of context switches per second.
    • pidstat -w 每个进程的context switching情况
    • pidstat -wt 细分到每个threads
    • grep ctxt /proc/$pid/status
      • voluntary_ctxt_switches: 41 #自愿的上下文切换
      • nonvoluntary_ctxt_switches: 16 #非自愿的上下文切换
      • cswch/s: 每秒任务主动(自愿的)切换上下文的次数,当某一任务处于阻塞等待时,将主动让出自己的CPU资源。
      • nvcswch/s: 每秒任务被动(不自愿的)切换上下文的次数,CPU分配给某一任务的时间片已经用完,因此将强迫该进程让出CPU的执行权。
    • cat /proc/stat|grep ctxt
      
      
文章来自个人专栏
oio
4 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0